Установка NVIDIA‑драйвера на DebianНа веб-странице NVIDIA можно найти драйвера под нужную карту и ОС. Для Linux там есть run-файлы, а для Debian бывают deb-пакеты. В этой статье я покажу установку deb-пакета версии 580, потому что это последняя версия поддерживает карты Ampere и более старые архитектуры Pascal, Turing и это именно те драйвера, на которых у меня завелись RTX 3090 (Ampere) и Tesla P40 (Pascal) и Tesla V100 (Turing) одновременно.
Изначально, я нашел deb-пакет на сайте NVIDIA через поиск по ссылке выше, но столкнулся с неочевидными проблемами, которые раскрываю ниже.
В любом случае поглядывать в официальную инструкцию будет хорошим тоном, сэр.
Для начала проверим есть ли PCI-устройства NVIDIA в системе:
$ sudo lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
Как видно, в моей системе есть одна RTX 3090, значит для нее можно установить драйвера.
Если Secure Boot включён, драйвер не подпишет модуль; отключите его в BIOS/UEFI.
Если действия происходят на виртуалке, то в загрузчике grub можно выбрать UEFI Firmware Settings:

Найти Secure Boot и убрать галку, F10 - сохранить.

Сначала установим заголовки ядра, иначе потом установщик драйвера не завершит свою работу и нам придется вручную собирать:
$ sudo apt install linux-headers-$(uname -r)
Перед скачиванием
deb-пакетавсе-таки лучше найти более свежую версию на сайте NVIDIA, но если лень, то можно взять что есть, возможно когда-то я обновлю ссылку здесь.
Скачать deb-пакет локального репозитория с сайта NVIDIA и установить его можно так:
$ wget https://us.download.nvidia.com/tesla/580.82.07/nvidia-driver-local-repo-debian12-580.82.07_1.0-1_amd64.deb
$ sudo dpkg -i nvidia-driver-local-repo-debian12-580.82.07_1.0-1_amd64.deb
$ sudo cp /var/nvidia-driver-local-repo-*/nvidia-driver-local-*.gpg /usr/share/keyrings/
$ sudo apt update
Теперь при вводе этих команд будет список пакетов, которые можно установить:
$ apt-cache policy nvidia-driver
$ apt-cache policy nvidia-driver-libs
$ apt-cache policy nvidia-driver-cuda
Устанавливаем эти пакеты:
$ sudo apt install -y nvidia-driver nvidia-driver-libs nvidia-driver-cuda
После установки dkms status должен показывать что-то типа такого:
$ sudo dkms status
nvidia/580.82.07, 6.1.0-41-amd64, x86_64: installed
Если dkms status показывает что-то отличное от installed, то нужно до собрать:
$ sudo dkms build -m nvidia -v 580.82.07
Драйвера установлены, теперь их нужно запустить.
При вызове nvidia-smi может быть такое:
$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
Это потому что в ядро загружены опенсорсные модули NVIDIA типа Nouveau. Нужно добавить открытый драйвер в черный список /etc/modprobe.d/blacklist.conf чтобы он никогда не грузился (если файла нет то его надо создать):
blacklist nouveau
options nouveau modeset=0
Затем обновляем initramfs и перезагружаемся:
$ sudo update-initramfs -u
$ sudo reboot now
После перезагрузки проверяем какие модули ядра загружены можно так:
$ sudo lsmod | grep nvidia
# здесь будет ответ
$ sudo lsmod | grep nouveau
# а здесь должно быть пусто
После установки может быть такая ситуация:
$ nvidia-smi
bash: nvidia-smi: command not found
А если попытаться установить пакет nvidia-smi напрямую, то можно обнаружить что он вообще транзитный:
$ apt-cache search nvidia-smi
nvidia-smi - Transitional dummy package
Транзитный пакет - это пустой пакет‑посредник, который ставится в систему только для того, чтобы облегчить переход от старой версии пакета к новой.
nvidia-smi может прятаться в пакетах *cuda*, чтобы найти в каком именно нужно каждый просканировать на предмет упоминания в нем nvidia-smi. Для начала найдем все пакеты cuda:
$ sudo apt search nvidia | grep -i cuda
cuda-drivers/unknown 580.82.07-1 amd64
CUDA Driver meta-package, branch-agnostic
cuda-drivers-580/unknown 580.82.07-1 amd64
CUDA Driver meta-package, branch-specific
libcuda1/unknown,now 580.82.07-1 amd64 [installed,auto-removable]
NVIDIA CUDA Driver Library
libcudadebugger1/unknown,now 580.82.07-1 amd64 [installed,auto-removable]
NVIDIA CUDA Debugger Library
NVIDIA CUDA Video Decoder runtime library
Vulkan/CUDA/HIP/OpenCL Fast Fourier Transform library
nvidia-driver-cuda/unknown 580.82.07-1 amd64
NVIDIA driver CUDA integration components
Переходим в директорию с распакованными пакетами с самого начала статьи, берем первый и сканируем (и находим):
$ cd /var/nvidia-driver-local-repo-debian12-580.82.07/
$ dpkg -c nvidia-driver-cuda_580.82.07-1_amd64.deb | grep nvidia-smi
-rwxr-xr-x root/root 1218080 2025-08-27 21:05 ./usr/bin/nvidia-smi
-rw-r--r-- root/root 38489 2025-08-28 05:48 ./usr/share/man/man1/nvidia-smi.1.gz
А теперь устанавливаем этот пакет с nvidia-smi:
$ sudo apt install nvidia-driver-cuda
На Debian 13 не удалось прокинуть видеокарты в контейнеры, а здесь есть обсуждение этой проблемы. Поэтому на начало 2026 года работаю в Debian 12.
Для использования GPU в Docker-контейнерах нужно по этой инструкции установить NVIDIA Container Toolkit.
После установки нужно сконфигурировать рантайм и перезагрузить Docker:
$ sudo nvidia-ctk runtime configure --runtime=docker
$ sudo systemctl restart docker
Протестировать проброс всех видеокарт в контейнер можно так:
$ docker run --rm --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi
В следующих статьях я планирую показать, как развернуть локальную модель ИИ на этом же сервере, используя установленный драйвер и GPU. Мы пройдём путь от установки драйвера к загрузке модели ИИ, настройке окружения и запуску локального инференса, чтобы продемонстрировать полную цепочку от низкоуровневой подготовки системы до работы с реальными нейросетями локально.