Решение вопроса с установкой и обновлением NVIDIA drivers

Доброго дня!

Намедни столкнулся с проблемой nvidia-drivers, не стартуют X. Проблема распространенная и решается в первый раз с помощью USE="-compat".
При обновлении драйвера, появляются теже симптомы, только причина уже в другом - модули ядра в initramfs.img остаются старые, а драйвер новой версии, в логах следующее:

calculate kernel: NVRM: API mismatch: the client has the version 435.21, but\x0aNVRM: this kernel module has the version 430.40. Please\x0aNVRM: make sure that this kernel module and all NVIDIA driver\x0aNVRM: components have the same version.

Решается это пересборкой initramfs командами:
mkinitrd --force /boot/initramfs-VERSION-calculate.img VERSION-calculate && grub-mkconfig
Если пересобираете initramfs для текущего ядра, то grub-mkconfig не надо. Вместо VERSION вставить версию ядра, естественно перед этим СДЕЛАТЬ БЭКАП.

З.Ы. добавляйте ваши решения с багами nvdidia-drivers

1 Like

Сработало!
“Сделать бэкап” - это значит скопировать файлы

/boot/initramfs-4.19.63-*

и

/boot/grub/grub.cfg

?

И ещё, наверное нужно выполнять

grub-mkconfig -o /boot/grub/grub.cfg

т.к. просто grub-mkconfig только выводит конфиг на экран

1 Like

В целом всю папку /boot лучше забэкапить, ну так, на всякий случай.
И да всё верно grub-mkconfig -o /boot/grub/grub.cfg, mkinitrd с ключом --force заменяет текущий initramfs ,поэтому груб-конфиг не нужон

У меня такая же белиберда.

Так помогло? Если нет, это может быть еще какой косяк

Спасибо.

equery u nvidia-drivers
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for x11-drivers/nvidia-drivers-435.21:
 U I
 + + X           : Install the X.org driver, OpenGL libraries, XvMC libraries, and VDPAU libraries
 + + abi_x86_32  : 32-bit (x86) libraries
 - - acpi        : Add support for Advanced Configuration and Power Interface
 + + compat      : Install non-GLVND libGL for backwards compatibility
 + + driver      : Install the kernel driver module
 + + gtk3        : Install nvidia-settings with support for GTK+ 3
 + + kms         : Enable support for kernel mode setting (KMS)
 + + multilib    : On 64bit systems, if you want to be able to compile 32bit and 64bit binaries
 - - static-libs : Build static versions of dynamic libraries as well
 + + tools       : Install additional tools such as nvidia-settings
 + + uvm         : Install the Unified Memory kernel module (nvidia-uvm) for sharing memory between
                   CPU and GPU in CUDA programs
 - - wayland     : Enable dev-libs/wayland backend

Теперь компат работает.

а нужен ли compat? Насколько я вижу отключен юз acpi, работает ли без него управление питанием и частотой видюхи?
Без компата у меня вроде все работает, игрухи идут как нативные так и через протон, возможно какие приложения его требуют хз.

Не знаю. Во всяком случае по умолчанию было так

- - acpi        : Add support for Advanced Configuration and Power Interface
 + + compat      : Install non-GLVND libGL for backwards compatibility

По идее достаточно после обновления ядра/дров выполнить:

cl-setup-boot -v

он создаст initramfs и grub.cfg обновит.

1 Like

Годное, расово верное решение. Хотел добавить в свое сообщение, но уже не могу редактировать.

Если имеется другой линуксовый дистр на другом винте то cl-setup-boot -v - плохое решение. В результате если я правильно выражаюсь (видимо нет) “перетирается граб” на другом линуксовом дистре, во всяком случае у меня так. Иначе говоря, у меня выбор носителя производится через F12. Выбираю диск с другим линуксом (не CL) и почему-то появляется грабовая менюшка от CL, а не родная и соответственно без нужных ядреных параметров которые необходимы для корректного запуска. Приходится переустанавливать граб.
Неважно какая очередность в биосе матплаты у винта с установленным CL.

С новой версией calculate-utils ( 3.6.7.28) уже лучше, но остается еще одна загвоздка. Как указал выше по умолчанию у меня первый на очереди винт с установленным CL. Если на этом винте выбираю запуск не CL, а другого дистра то при просмотре параметров груба в строке /boot/vmlinuz только значится /dev/sd* , а там должна быть достаточно длинная строчка с кучей опций. Так что запуск этого дистра будет проблематичным.
Если нужно создавать шаблон *.clt то это мягко говоря неудобно.