Skip to content

Nvidia GPU

andyceo edited this page Mar 15, 2026 · 6 revisions

Nvidia

Установка проприетарных драйверов Nvidia на Debian

Основной источник: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#debian-installation

Инструкция и пояснения от Debian: https://wiki.debian.org/NvidiaGraphicsDrivers

Для компиляции драйвера, надо установить заголовки Linux и компилятор gcc:

sudo apt install gcc linux-headers-amd64

Если ядро Linux ставилось из бэкпортов, то и заголовки linux-headers-amd64 тоже надо поставить из бэкпортов.

Загрузить ключ в /etc/apt/keyrings/ (ключ не должен хранится в /etc/apt/trusted.gpg.d, потому что ключи оттуда используются для любых репозиториев, у которых не указан signed-by):

curl -fsSL https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/3bf863cc.pub | sudo gpg --dearmor -o /etc/apt/keyrings/nvidia.gpg

Прописать репозиторий:

echo "deb [signed-by=/etc/apt/keyrings/nvidia.gpg] https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/ /" | sudo tee /etc/apt/sources.list.d/nvidia.list

Обновить список пакетов:

sudo apt update

Если ядро было установлено из бекпортов, то поставить и заголовки для него: sudo apt install linux-headers-$(uname -r)

Установить драйвера:

sudo apt -V install cuda-drivers  # закрытая архитектура, подойдет как правило для большинства
# sudo apt -V install nvidia-open  # открытая архитектура, для новейшего оборудования (от Turing включительно)

Перезагрузить: sudo reboot

Выполнить действия после установки и перезагрузки:

sudo systemctl restart nvidia-persistenced.service

Проверить, что все установилось и работает:

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

Удалить драйвера можно командой: sudo apt-get remove --purge nvidia-*

После можно установить CUDA Toolkit:

 sudo apt install cuda-toolkit --no-install-recommends

!Внимание! Не путать с пакетом nvidia-cuda-toolkit, который будет установлен из репозиториев Debian и потянет за собой установку драйверов из репозиториев Debian!

Установка проприетарных драйверов Nvidia на Ubuntu 24.04

Можно установить утилиту ubuntu-drivers, чтобы удобно просмотреть доступные драйвера:

sudo apt install ubuntu-drivers-common

Посмотреть, какие драйвера доступны: sudo ubuntu-drivers list

Установить с помощью этой утилиты можно, но она обычно выбирает не самый свежий драйвер: sudo ubuntu-drivers install

Надо выбрать лучший для себя драйвер, и поставить только серверный пакет, чтобы не ставились всякие интеграции с X Server: sudo apt install nvidia-driver-580-server.

Эта команда, если включена UEFI-загрузка и Secure Boot, потребует обновить MOK-ключ прошивки UEFI при перезагрузке. Если при перезагрузке, ключ не обновили (Enroll key), то драйвер не загрузится и в следующую перезагрузку окно смены ключа MOK не будет показано. Чтобы снова показать это окно при перезагрузке, выполнить: sudo mokutil --import /var/lib/shim-signed/mok/MOK.der. При перезагрузке: выбрать enroll, выбрать ключ, ввести пароль, который ввели при установке пакета (https://askubuntu.com/questions/1122855/mok-manager-nvidia-driver-issue-after-cuda-install).

Установка CUDA: sudo apt install nvidia-cuda-toolkit --no-install-recommends. Без --no-install-recommends, установит 7 Gb пакетов!

После этого, и перезагрузки и обновления MOK-ключа, можно компилировать программы с CUDA.

Фиксирование определенной версии драйвера NVIDIA

Создать файл /etc/apt/preferences.d/nvidia со следующим содержимым:

Package: nvidia-*
Pin: version 580.65.06-1
Pin-Priority: 1002

Package: libnv*
Pin: version 580.65.06-1
Pin-Priority: 1002

Package: libnvidia-*
Pin: version 580.65.06-1
Pin-Priority: 1002

Package: libcuda*
Pin: version 580.65.06-1
Pin-Priority: 1002

Package: firmware-nvidia-gsp xserver-xorg-video-nvidia libgles-nvidia1 libgles-nvidia2 libglx-nvidia0 libegl-nvidia0 libxnvctrl0
Pin: version 580.65.06-1
Pin-Priority: 1002

Параметры ядра (можно задать через GRUB)

Для закрытых драйверов потребуется: nvidia-drm.modeset=1

В случае, если подключаешь несколько видеокарт, а они глючат после настройки (определенное сообщение в логах при подключении драйвера), то может помочь эта настройка? pci=realloc=off

Мониторинг карт Nvidia

Штатная утилита (доступна, если установлены драйверы Nvidia): nvidia-smi

Также доступна утилита nvtop (также мониторит видеокарты AMD):

sudo apt install nvtop

Запустить ее:

nvtop

Также есть nvitop (интегрируется с Grafana): https://github.com/XuehaiPan/nvitop

Также можно мониторить в Jupyter Notebook: https://developer.nvidia.com/blog/gpu-dashboards-in-jupyter-lab/

Диагностика

nvidia-smi

lspci | grep -i nvidia

lspci | grep -i vga

sudo dmesg | grep NVRM

Устранение неполадок

Для карт серии RTX 50xx в Linux нужно использовать только открытые драйвера (пакет nvidia-open).

Есть неполадки с 5060 Ti 16 Gb, нужно попробовать новую версию драйвера, но ее нет в репозитории для Debian: https://bbs.archlinux.org/viewtopic.php?id=306310

Если при загрузке ядра в логах есть ошибки вида:

NVRM: This PCI I/O region assigned to your NVIDIA device is invalid:
NVRM: BAR1 is 0M @ 0x0 (PCI:0000:0b.0)

то в параметры запуска ядра нужно прописать pci=realloc, если это не помогло, то pci=realloc=off. Это очень распространённая проблема с распределением ресурсов PCI, то есть с размерами окон памяти и областями, которые требуются устройству PCI (BAR). Изначально они назначаются BIOS, но иногда неправильно или несовместимо, поэтому pci=realloc позволяет ядру изменять области. Источник

Sidebar is under construction

Clone this wiki locally