Nvidia GPU - andyceo/documentation GitHub Wiki
Основной источник: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html#debian-installation
Инструкция и пояснения от Debian: https://wiki.debian.org/NvidiaGraphicsDrivers
Установить gcc
: sudo apt isntall gcc
Загрузить ключ в /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-*
Создать файл /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
Для закрытых драйверов потребуется: nvidia-drm.modeset=1
В случае, если подключаешь несколько видеокарт, а они глючат после настройки (определенное сообщение в логах при подключении драйвера), то может помочь эта настройка? pci=realloc=off
Штатная утилита (доступна, если установлены драйверы 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
позволяет ядру изменять области. Источник
Если при загрузке ядра в логах есть ошибки вида:
amdgpu: sdma_v3_0: Failed to load firmware polaris10_sdma.bin
то это скорее всего значит что нужно установить пакет firmware-amd-graphics
:
sudo apt install firmware-amd-graphics
После этого, видеокарта от AMD должна заработать корректно.