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

Чёрный экран после обновления ядра, артефакты в GNOME или ошибка NVIDIA-SMI has failed — эти симптомы часто указывают на конфликт версий драйверов NVIDIA в Debian. Проблема усугубляется, если ранее устанавливались проприетарные драйвера через .run-файлы с сайта производителя или смешивались пакеты из репозиториев non-free и contrib. Прежде чем переустанавливать драйвера, необходимо полностью очистить систему от их следов — иначе новые пакеты наследуют старые конфигурации и ошибки.

В Debian (и производных вроде Ubuntu или MX Linux) удаление драйверов NVIDIA требует не только деинсталляции пакетов через apt, но и ручной чистки загрузочных модулей ядра, конфигурационных файлов в /etc и даже остатков в /usr/lib. Если пропустить хотя бы один шаг, после перезагрузки система может зависнуть на этапе инициализации графического сервера Xorg или Wayland. Далее — пошаговая инструкция с учётом особенностей Debian 11/12 и актуальных версий драйверов (серии 535+).

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

Перед удалением определите, какие именно пакеты NVIDIA установлены в системе. Это критично: если удалить только часть зависимостей, могут остаться "сиротые" модули ядра, которые заблокируют установку новых драйверов.

Выполните команду для поиска всех пакетов с префиксом nvidia:

apt list --installed | grep -i nvidia

Типичный вывод для системы с проприетарными драйверами:

  • 📦 nvidia-driver — основной метапакет (например, версия 535.129.03)
  • 📦 nvidia-kernel-dkms или nvidia-kernel-{версия-ядра} — модули для текущего ядра
  • 📦 libnvidia-gl-{версия} — библиотеки для OpenGL/Vulkan
  • 📦 nvidia-settings — утилита настройки
  • 📦 nvidia-prime — для гибридных графических систем (ноутбуки)

Также проверьте загруженные модули ядра:

lsmod | grep -i nvidia

Если вывод не пустой (например, отображаются модули nvidia_drm, nvidia_modeset), это означает, что драйвера активно используются системой. Их придётся отключать вручную перед удалением.

2. Удаление пакетов через APT

Начните с деинсталляции всех пакетов NVIDIA через менеджер пакетов. Используйте команду с флагом --purge, чтобы удалить и конфигурационные файлы:

sudo apt purge ~nnvidia

Символ ~n перед nvidia гарантирует удаление всех пакетов, имена которых начинаются с nvidia. Альтернативный вариант — явное перечисление:

sudo apt purge nvidia- libnvidia-

После удаления выполните автоочистку зависимостей:

sudo apt autoremove
⚠️ Внимание: Если в системе установлены драйвера через .run-файл с сайта NVIDIA, пакетный менеджер их не увидит. В этом случае переходите к ручной чистке.

Создайте резервную копию конфигураций (cp -r /etc/X11/xorg.conf.d ~/xorg_backup)|Проверьте вывод dkms status на наличие модулей NVIDIA|Отключитесь от графического сеанса (перейдите в tty2 сочетанием Ctrl+Alt+F2)|Убедитесь, что в /etc/modprobe.d нет файлов с блокировкой nouveau

-->

3. Ручное удаление остатков драйверов

Даже после apt purge в системе могут оставаться:

  • 📁 Файлы модулей ядра в /lib/modules/$(uname -r)/kernel/drivers/
  • 📄 Конфигурационные файлы в /etc/X11/ (например, xorg.conf)
  • 🗑️ Кэш шейдеров в ~/.local/share/nvidia/ (для пользовательских профилей)
  • 🔧 Правила udev в /etc/udev/rules.d/

Удалите их вручную:

sudo rm -rf /etc/X11/xorg.conf*

sudo rm -rf /etc/modprobe.d/nvidia*

sudo rm -rf /etc/udev/rules.d/nvidia

sudo rm -rf /usr/lib/xorg/modules/drivers/nvidia*

sudo rm -rf /usr/lib/xorg/modules/extensions/libglxserver_nvidia*

Для чистки модулей ядра сначала определите текущую версию:

uname -r

Затем удалите папку с драйверами (замените 5.10.0-26-amd64 на вашу версию ядра):

sudo rm -rf /lib/modules/5.10.0-26-amd64/kernel/drivers/nvidia/
⚠️ Внимание: Если вы используете DKMS для автоматической сборки модулей, выполните sudo dkms remove nvidia/{версия} --all до ручного удаления файлов. Иначе при следующем обновлении ядра модули восстановятся.

4. Отключение модулей ядра и блокировка nouveau

После удаления файлов необходимо запретить загрузку модулей NVIDIA и разблокировать открытый драйвер nouveau (если он был отключён ранее). Создайте файл конфигурации:

sudo nano /etc/modprobe.d/blacklist-nvidia-nouveau.conf

Добавьте в него:

blacklist nvidia

blacklist nvidia-drm

blacklist nvidia-modeset

Разрешаем nouveau (если нужен)

options nouveau modeset=1

Обновите инициализацию модулей:

sudo update-initramfs -u

Если nouveau не требуется (например, планируется установка новых проприетарных драйверов), замените modeset=1 на modeset=0 и добавьте:

blacklist nouveau
Как проверить, загружен ли nouveau после перезагрузки

Выполните команду lsmod | grep nouveau. Если вывод пустой, модуль заблокирован. Чтобы принудительно загрузить его для теста, используйте sudo modprobe nouveau и перезагрузите X-сервер (sudo systemctl restart gdm).

5. Восстановление после удаления: что делать, если система не грузится

Если после перезагрузки вы видите чёрный экран или ошибки Failed to start X Server, причины могут быть следующими:

СимптомВероятная причинаРешение
Чёрный экран после логотипа BIOS Остались загруженные модули nvidia в initramfs Загрузиться в recovery mode, повторить update-initramfs -u
Ошибка no screens found в Xorg.0.log Отсутствует конфигурация для nouveau или modesetting Удалить /etc/X11/xorg.conf, пересоздать через nvidia-xconfig (если устанавливаете драйвера заново)
Артефакты или низкое разрешение Активирован llvmpipe (программный рендеринг) Проверить glxinfo | grep "OpenGL renderer", установить mesa-utils

Для восстановления:

  1. Перейдите в tty (например, Ctrl+Alt+F3).
  2. Удалите оставшиеся файлы конфигурации (см. раздел 3).
  3. Переустановите xserver-xorg-core и mesa-utils:
sudo apt install --reinstall xserver-xorg-core mesa-utils

Если проблема сохраняется, проверьте логи Xorg:

cat /var/log/Xorg.0.log | grep -i EE

Через apt purge|Ручное удаление файлов|Переустановка системы|Никогда не удалял

-->

6. Проверка чистоты системы перед новой установкой

Перед установкой новых драйверов убедитесь, что система полностью очищена. Выполните проверки:

  1. Пакеты: dpkg -l | grep -i nvidia — вывод должен быть пустым.
  2. Модули ядра: find /lib/modules/$(uname -r) -name "nvidia" — не должно быть файлов.
  3. Конфигурации Xorg: grep -r "nvidia" /etc/X11/ — не должно быть ссылок.
  4. Блокировки: cat /etc/modprobe.d/* | grep -i nvidia — только ваши ручные правки.

Если всё чисто, можно приступать к установке новых драйверов. Для Debian рекомендуется использовать пакеты из репозиториев non-free:

sudo apt install nvidia-driver firmware-misc-nonfree
⚠️ Внимание: Если вы устанавливаете драйвера с сайта NVIDIA (через .run), предварительно установите заголовки ядра и dkms:

sudo apt install linux-headers-$(uname -r) dkms

Иначе модули не соберутся, и после перезагрузки графический интерфейс не загрузится.

7. Частые ошибки и их решения

Ошибка 1: ERROR: Unable to find the kernel source tree при установке .run-файла.

Решение: Установите заголовки ядра для текущей версии:

sudo apt install linux-headers-$(uname -r)

Ошибка 2: После удаления драйверов система загружается в низком разрешении (640x480).

Решение: Удалите /etc/X11/xorg.conf и переустановите xserver-xorg-video-nouveau:

sudo apt install xserver-xorg-video-nouveau

Ошибка 3: dkms: install failed при попытке переустановить драйвера.

Решение: Полностью удалите старые модули DKMS:

sudo dkms remove --all

sudo apt purge dkms

Ошибка 4: При загрузке висит сообщение A start job is running for /dev/dri/card0.

Решение: Отредактируйте /etc/default/grub, добавив параметр nomodeset в GRUB_CMDLINE_LINUX_DEFAULT, затем обновите GRUB:

sudo update-grub

FAQ: Ответы на частые вопросы

Можно ли удалить драйвера NVIDIA без перезагрузки?

Технически да, но это крайне не рекомендуется. Модули ядра nvidia.ko остаются загруженными в память, и их принудительное удаление (rmmod -f) может привести к краху системы. Всегда перезагружайтесь после деинсталляции.

Как узнать, какие драйвера были установлены ранее?

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

grep -i nvidia /var/log/apt/history.log

Или проверьте версию через dmesg:

dmesg | grep -i nvidia
Нужно ли удалять CUDA и cuDNN при деинсталляции драйверов?

Нет, CUDA и cuDNN — отдельные пакеты. Они зависят от драйверов, но не наоборот. Однако если вы планируете полную переустановку, удалите их явным образом:

sudo apt purge cuda cudnn
Почему после удаления драйверов не работает 3D-ускорение?

Скорее всего, активировался программный рендерер llvmpipe. Проверьте:

glxinfo | grep "OpenGL renderer"

Если вывод содержит llvmpipe, установите mesa-utils и перезагрузитесь:

sudo apt install mesa-utils libgl1-mesa-dri
Как удалить драйвера NVIDIA на Debian с Wayland?

Процесс не отличается от Xorg, но после удаления может потребоваться переключиться на X11 временно. Для этого отредактируйте файл конфигурации дисплейного менеджера (например, /etc/gdm3/custom.conf) и раскомментируйте строку:

WaylandEnable=false

Затем перезагрузите gdm3:

sudo systemctl restart gdm3