Как мне обновить свои модули nvidia после обновления моего ядра?

16

Каждый раз, когда происходит обновление ядра, графические драйверы nvidia перестают работать, потому что нет подходящего модуля ядра.

Каким образом Ubuntu «перекомпилирует» модуль nvidia для нового ядра?

Разве это не должно быть сделано автоматически? Я страдаю от ошибки?

fazineroso
источник

Ответы:

5

Если вы установили драйвер NVIDIA в виде пакета ubuntu, он должен обновляться автоматически после каждого обновления ядра.

Вы можете установить упакованный драйвер, используя Additional Driversинструмент на панели инструментов, или установить пакет nvidia-current.

Если вы установили драйвер nvidia непосредственно с их веб-сайта, возможно, имеет смысл удалить его перед установкой этого пакета - я не уверен, насколько он будет полезен при обнаружении конфликта.

Если вы установили пакет из репозиториев Ubuntu, вы можете попробовать перенастроить его, dpkg-reconfigureно я подозреваю, что сборка модуля nvidia запускается при установке нового ядра, и я не уверен, как это вызвать в противном случае. Традиционная деинсталляция и переустановка могут хорошо работать ( sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current).

chronitis
источник
Я установил драйвер nvidia через пакет Ubuntu. Но обновление ядра не вызвало перекомпиляцию моего модуля nvidia. Спасибо за ваши советы в любом случае.
fazineroso
4

Для меня dpkg -conconfigure перестраивает драйвер Nvidia с последним ядром. Затем для вступления в силу требуется перезагрузка. Мой пример ниже использует более старые nvidia-304-updates.

sudo dpkg-reconfigure nvidia-304-updates

РЕДАКТИРОВАТЬ: мне удалось автоматизировать это, написав скрипт, zz-dkpg-reconfigure-nvidiaкоторый запускается после обновления ядра

#!/bin/bash
#
# Reconfigure nvidia driver

DRIVER=nvidia-304-updates

dpkg-reconfigure $DRIVER > /var/log/dpkg-reconfigure-nvidia.log 2>&1

exit 0

Я установил вышеуказанный скрипт, запустив

sudo install zz-dkpg-reconfigure-nvidia /etc/kernel/postinst.d

Работает на моем ядре Ubuntu 14.04 с версии 3.13.0-29 до 3.13.0-36.

user424174
источник
4

Когда вы установили двоичный драйвер NVIDIA, вы, вероятно, не установили пакет dkms. Dkms гарантирует, что при каждом обновлении ядра модули, которые его поддерживают, перекомпилируются:

sudo apt-get install dkms

После этого вам, вероятно, потребуется переустановить двоичные драйверы NVIDIA и разрешить использовать DKMS во время установки, так как она должна быть зарегистрирована в нем.

Карел Ленк
источник
Я столкнулся с той же проблемой и только что понял, что не установил dkmsпосле прочтения этого ответа.
Яобин
3

Если вы хотите пересобрать только модули ядра, то вы можете просто выполнить

sudo apt-get install --reinstall nvidia-current

если у вас установлен nvidia-current, или если у вас установлен nvidia-331, то это должно сделать эту работу:

sudo apt-get install --reinstall nvidia-331

не нужно добавлять репо или устанавливать новое программное обеспечение :-)

Стальной мозг
источник
1

Обратите внимание, что не рекомендуется устанавливать обновление ядра или драйверы из официально неподдерживаемых репозиториев! Следуйте этим инструкциям на свой страх и риск и только если вы знаете, что делаете!

Если вы установили ядро, которое опережает текущие официальные репозитории Ubuntu (например, ядро ​​3.4 или 3.5), у вас может не получиться просто переустановить драйверы nvidia.

До сих пор я нашел единственный способ заставить nvidia-drivers работать снова, добавив следующий ppa в свои репозитории. В терминале типа:

sudo add-apt-repository ppa:xorg-edgers/ppa

После этого сделайте sudo apt-get updateи sudo apt-get install nvidia-current.

Это должно делать свое дело. Если нет, запустите дополнительный sudo apt-get upgrade.

FuzzyQ
источник