✅ Установка драйвера NVIDIA на Debian 12

🔧 1. Убедитесь, что включены репозитории non-free

Откройте файл:

sudo nano /etc/apt/sources.list

Добавьте к каждой строке main:

contrib non-free non-free-firmware

Пример:

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware

Сохраните (Ctrl+O, Enter), выйдите (Ctrl+X) и обновите:

sudo apt update

📦 2. Установите драйвер NVIDIA

sudo apt install nvidia-driver firmware-misc-nonfree

🚫 3. Отключите конфликтующий драйвер nouveau

Создайте файл:

sudo nano /etc/modprobe.d/disable-nouveau.conf

Добавьте:

blacklist nouveau
options nouveau modeset=0

Примените:

sudo update-initramfs -u

🔁 4. Перезагрузите систему

sudo reboot

🔍 5. Проверьте установку

После перезагрузки выполните:

nvidia-smi

Если вы увидите таблицу с информацией о GPU — драйвер установлен и работает.


💡 Дополнительно

Если вы планируете использовать ffmpeg с NVENC, убедитесь, что:

  • установлен nvidia-cuda-toolkit
  • ffmpeg собран с --enable-nvenc

проверить поддержку NVENC после установки драйвера или собрать ffmpeg с нужными флагами

Чтобы проверить поддержку NVENC и при необходимости собрать FFmpeg с нужными флагами на Debian 12, выполните проверку через ffmpeg -encoders, а затем — сборку с nv-codec-headers, CUDA toolkit и флагами --enable-nvenc, --enable-cuda, --enable-nonfree.


✅ Шаг 1: Проверка поддержки NVENC

После установки драйвера NVIDIA выполните:

ffmpeg -encoders | grep nvenc

Если вывод содержит строки вроде:

V..... h264_nvenc           NVIDIA NVENC H.264 encoder
V..... hevc_nvenc           NVIDIA NVENC HEVC encoder

— значит NVENC доступен и сборка FFmpeg уже поддерживает аппаратное кодирование.

Если ничего не найдено — переходите к сборке FFmpeg вручную.


🛠️ Шаг 2: Сборка FFmpeg с поддержкой NVENC

1. Установите зависимости

sudo apt update
sudo apt install build-essential yasm cmake libtool \
  libnuma-dev libx264-dev libx265-dev libvpx-dev \
  libfdk-aac-dev libmp3lame-dev libopus-dev \
  nvidia-cuda-toolkit

2. Установите заголовки NVENC

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

3. Скачайте FFmpeg

cd ~
git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg
cd ffmpeg
apt install nasm

4. Сконфигурируйте сборку

./configure \
  --enable-nonfree \
  --enable-cuda \
  --enable-cuvid \
  --enable-nvenc \
  --enable-libnpp \
  --extra-cflags=-I/usr/local/cuda/include \
  --extra-ldflags=-L/usr/local/cuda/lib64 \
  --enable-libx264 \
  --enable-libx265 \
  --enable-libvpx \
  --enable-libfdk-aac \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-gpl

5. Соберите и установите

make -j$(nproc)
sudo make install

🔍 Проверка после сборки

Проверьте:

ffmpeg -encoders | grep nvenc

Также можно протестировать:

ffmpeg -y -hwaccel cuda -i input.mkv -c:v h264_nvenc -preset fast output.mp4

Решение на случай ошибки установки CUDA на устаревший драйвер

Пакет libnpp-dev действительно отсутствует в репозиториях Debian — он не поставляется отдельно. Библиотеки libnppig.so.11 и другие libnpp* входят в состав CUDA Toolkit, и их нужно устанавливать вручную из официального .run-инсталлятора NVIDIA.


Ошибка говорит о том, что установленный драйвер NVIDIA слишком старый для текущей версии FFmpeg, которая требует NVENC API ≥ 13.0, а у вас — 12.1:

Driver does not support the required nvenc API version. Required: 13.0 Found: 12.1
The minimum required Nvidia driver for nvenc is 570.0 or newer

🧨 Что это значит

  • FFmpeg был собран с поддержкой новой версии NVENC API (13.0).
  • Ваша система использует старый драйвер NVIDIA, который предоставляет NVENC API 12.1.
  • В результате FFmpeg не может инициализировать h264_nvenc, и конвертация падает.

✅ Решение: обновить драйвер NVIDIA

🔧 1. Проверка текущей версии драйвера

nvidia-smi

Посмотри строку Driver Version. Если ниже 570.0 — нужно обновить.


📦 2. Установка актуального драйвера

На Debian 12 проще всего использовать официальный .run-инсталлятор от NVIDIA:

Шаги:

  1. Перейди на официальную страницу драйверов NVIDIA
  2. Выбери:
    • Product Series: GeForce 10 Series
    • Product: GeForce GTX 1070
    • OS: Linux 64-bit
    • Download Type: Production Branch
  3. Скачай .run-файл (например, NVIDIA-Linux-x86_64-###.run)
  4. Перейди в tty (Ctrl+Alt+F3), останови X-сервер: sudo systemctl stop gdm
  5. Установи: sudo bash NVIDIA-Linux-x86_64-*.run
  6. Перезагрузи: sudo reboot


✅ Решение: установить CUDA Toolkit вручную

🔧 Шаг 1: Скачать CUDA 11.8 (совместим с libnppig.so.11)

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run

🔧 Шаг 2: Установить CUDA Toolkit

  1. Перейди в текстовую консоль (Ctrl+Alt+F3)
  2. Останови графику: sudo systemctl stop gdm
  3. Запусти установку: sudo bash cuda_11.8.0_520.61.05_linux.run

Во время установки выбери только Toolkit, без драйвера (если он уже установлен).


🔧 Шаг 3: Добавить библиотеки в LD_LIBRARY_PATH

echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

Или временно:

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

🔍 Шаг 4: Проверить наличие libnppig.so.11

ls /usr/local/cuda/lib64/libnppig.so.11

Если файл найден — FFmpeg и ffprobe должны работать.


💡 Альтернатива: пересобрать FFmpeg без --enable-libnpp

Если ты не используешь libnpp (например, для масштабирования на GPU), можно пересобрать FFmpeg без этой опции:

./configure ... --disable-libnpp
make -j$(nproc)
sudo make install

От alex

Обучаемый.