Как установить драйверы NVIDIA в Ubuntu: ubuntu-drivers, apt и откат

Как установить драйверы NVIDIA в Ubuntu: ubuntu-drivers, apt и откат

Проприетарный драйвер NVIDIA в Ubuntu нужен, когда открытого Nouveau уже не хватает: игры, CUDA, несколько мониторов, нормальная работа Wayland. Canonical сама собирает драйверы NVIDIA и, как сказано в документации Ubuntu, рекомендует ставить их утилитой ubuntu-drivers. Ниже этот способ, ручная установка через apt, проверка и откат, если после перезагрузки чёрный экран.

Подготовка

Сначала обновите систему и ядро и перезагрузитесь, чтобы модули драйвера встали под актуальное ядро:

sudo apt update && sudo apt upgrade
sudo reboot

Модель видеокарты:

lspci | grep -i nvidia

В Ubuntu есть два вида пакетов NVIDIA. Обычные (UDA) для компьютера, игр и графики. С суффиксом -server (ERD) для серверов и вычислений. У новых карт рядом ещё есть варианты с суффиксом -open, это драйвер с открытыми модулями ядра.

Способ 1: Дополнительные драйверы

На десктопе проще всего открыть «Программы и обновления», вкладку «Дополнительные драйверы», выбрать рекомендованный драйвер NVIDIA, применить и перезагрузиться. Под капотом там та же логика, что у ubuntu-drivers.

Способ 2: ubuntu-drivers в терминале

Список подходящих драйверов для вашей карты:

sudo ubuntu-drivers list
# для серверов и вычислений
sudo ubuntu-drivers list --gpgpu

Старая команда ubuntu-drivers devices тоже работает и сразу показывает, какой драйвер рекомендован. Вот как это выглядит на моей старой GeForce GT 710: рекомендована ветка 470, это последняя ветка для карт поколения Kepler.

Поставить драйвер, который Ubuntu считает лучшим для вашей карты, или выбрать ветку самому (номер берите из вывода list):

sudo ubuntu-drivers install
# или конкретную ветку
sudo ubuntu-drivers install nvidia:535
# на сервере
sudo ubuntu-drivers install --gpgpu nvidia:535-server
sudo apt install nvidia-utils-535-server

Раньше писали sudo ubuntu-drivers autoinstall, в документации теперь install. Главный плюс ubuntu-drivers в Secure Boot: по умолчанию он ставит готовые модули, подписанные ключом Canonical, и их не нужно подписывать самому. Если у вас стоял другой драйвер NVIDIA, который конфликтует с выбранным, утилита сначала его удалит.

Способ 3: вручную через apt

Вручную ставят сначала модули ядра, потом сам драйвер. Готовые подписанные модули для ядра generic и ветки 535 выглядят так:

sudo apt install linux-modules-nvidia-535-generic
sudo apt install nvidia-driver-535

Вариант с DKMS (nvidia-dkms-535 и linux-headers) Canonical советует только для своих ядер, под которые готовых модулей нет. DKMS-модули не подписаны ключом Canonical, и при Secure Boot придётся заводить свой ключ MOK.

PPA graphics-drivers

Если нужна ветка новее, чем в репозиториях Ubuntu, раньше подключали PPA graphics-drivers. Он жив, там собираются свежие ветки драйвера, но сами авторы пишут, что PPA в тестовом режиме. А Ubuntu предупреждает, что драйверы из сторонних источников могут перезаписать пакеты ubuntu-drivers и сломать Secure Boot. Так что PPA только если очень надо:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo ubuntu-drivers list

Проверка

После перезагрузки:

nvidia-smi
cat /proc/driver/nvidia/version

Две частые ошибки. Failed to initialize NVML: Driver/library version mismatch значит, что пакеты драйвера обновились, а в памяти ещё старый модуль ядра: лечится перезагрузкой. No devices were found часто значит, что загружен Nouveau. Тогда его отключают и пересобирают initramfs:

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot

Чёрный экран и откат

Если после перезагрузки графика не стартует, зайдите в консоль (Ctrl+Alt+F3) или в recovery и удалите драйвер. Ubuntu советует посмотреть, какие пакеты NVIDIA ставились вручную, удалить их и подчистить зависимости:

apt-mark showmanual | grep nvidia
sudo apt --purge remove '*nvidia*535*'
sudo apt autoremove
sudo reboot

Номер ветки подставьте свой. После этого система загрузится на Nouveau, и можно попробовать другую ветку, обычно помогает рекомендованная вместо самой свежей. Если apt ругается на зависимости, sudo apt --fix-broken install.

В итоге для большинства машин хватает одной команды sudo ubuntu-drivers install и перезагрузки: Ubuntu сама подберёт ветку и поставит подписанные модули, которые работают с Secure Boot. Ручной apt, DKMS и PPA оставьте для своих ядер, новых карт и особых требований CUDA. Проверка всегда одна: nvidia-smi.

Источники и ссылки


Комментарии загружаются…