Сейчас я обновляю драйвер NVIDIA (с номерами от 470.239.06 до 470.256.02, как указано на http://www.nvidia.com/object/unix.html) вручную, переключившись на уровень выполнения 3, а затем запустив NVIDIA-Linux-x86_64-470.256.02 .run.
Эта процедура работает нормально, и следующее подтверждает это:
Код: Выделить всё
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.256.02 Thu May 2 14:37:44 UTC 2024
GCC version: gcc version 13.3.1 20240522 (Red Hat 13.3.1-1) (GCC)
cat /sys/module/nvidia/version
470.256.02
dkms status
nvidia/470.256.02, 6.9.7-100.fc39.x86_64, x86_64: installed
Все указывает на успешную установку драйвера и запуск startx, как и ожидалось, я перехожу в графический режим. Все хорошо.
Однако после перезагрузки графический режим не достигается, мне предлагается войти в консоль, и dmesg сообщает мне:< /p>
Код: Выделить всё
NVRM: API mismatch: the client has the version 470.256.02, but this kernel module has the version 470.239.06
Код: Выделить всё
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 470.239.06 Sat Feb 3 06:03:07UTC 2024
GCC version: gcc version 13.3.1 20240522 (Red Hat 13.3.1-1) (GCC)
cat /sys/module/nvidia/version
470.239.06
dkms status
nvidia/470.256.02, 6.9.7-100.fc39.x86_64, x86_64: installed
Кроме того, дата /sys/module/nvidia/version теперь 11:59 (время перезагрузки ). (А также /proc/driver/nvidia/version), а не 11:41 который был после обновления драйверов и до перезагрузки.
Другой факт - при включении вышеописанный сбой. Я запускаю сценарий оболочки (из консоли), чтобы загрузить старый драйвер. В сценарии оболочки я получаю типичный вопрос о том, что, похоже, установлен другой драйвер, хочу ли я продолжить, бла-бла. Ничего не отвечая, он переходит в графический режим (поскольку он все еще находится на уровне выполнения 5, а gdm продолжает проверять, можно ли запустить X-сервер). Итак, кажется, что запуск сценария оболочки, но без указания ему что-либо делать, он исправляет версии, например. /sys/module/nvidia/version на новый драйвер.
Но это нестабильно, поскольку после очередной перезагрузки происходит возврат обратно.
Временное решение — установить старый драйвер. При этом все работает нормально и версии не меняются.
Кто-нибудь знает, кто и почему меняет версии драйверов, но оставляет dkms нетронутым?
Подробнее здесь: https://stackoverflow.com/questions/787 ... ack-to-old