Проприетарный драйвер 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.