Найти в Дзене
ИТ Канал

Nvidia driver и Linux kernel 6

Все мои десктопы крутятся на дистрибутиве Parrot OS (базируется на Debian), так уж повелось. Ну не люблю я индуский Kali.

Не так давно апдейтом ко мне прилетело новое ядро 6.x.x вместо 5.x.x и legacy драйвер nvidia для моей видюшки GT 730 встал раком и забрал с собой графическую подсистему.

На экране в консольке висит:

[FAILED] Failed to start Light Display Manager

Текст ошибки достаточно ясно сообщает, что LightDM не стартанул, а если посмотреть логи, то будет видно, что не стартанул он потому, что X не работает, а тот в свою очередь не запустился из-за нерабочего драйвера Nvidia.

Конечно же, переустановка драйвера не помогла, т.к. видюшка уже не самая свежая и последний legacy-драйвер, который удалось завести на ядре 5.x.x был 470.141.03, а у нас 6.x.x.

Но решение есть.

Нужно взять с сайта последнюю редакцию драйвера:

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/470.141.03/NVIDIA-Linux-x86_64-470.141.03.run

Затем распаковать это безобразие (не забыв сделать файл исполняемым):

./NVIDIA-Linux-x86_64-470.141.03.run --extract-only

а потом накачать специальные патчи и сложить их в какую-нибудь диру для удобства. Например в "patches":

wget https://sources.debian.org/data/non-free/n/nvidia-graphics-drivers-tesla-470/470.141.03-3/debian/module/debian/patches/0020-backport-get_task_ioprio-changes-from-510.85.02.patch
wget https://sources.debian.org/src/nvidia-graphics-drivers-tesla-470/470.141.03-3/debian/module/debian/patches/0021-backport-acpi-changes-from-510.85.02.patch/
wget https://sources.debian.org/src/nvidia-graphics-drivers-tesla-470/470.141.03-3/debian/module/debian/patches/0022-backport-acpi-changes-from-515.65.01.patch/
wget https://sources.debian.org/src/nvidia-graphics-drivers-tesla-470/470.141.03-3/debian/module/debian/patches/0023-backport-drm_frambuffer.h-changes-from-515.76.patch/

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

cd NVIDIA-Linux-x86_64-470.141.03/kernel

и последовательно вбиваем команды для патчинга:

patch --verbose --backup --strip=1 --input=/path_to_dir/patches/0020-backport-get_task_ioprio-changes-from-510.85.02.patch
patch --verbose --backup --strip=1 --input=/path_to_dir/patches/0021-backport-acpi-changes-from-510.85.02.patch
patch --verbose --backup --strip=1 --input=/path_to_dir/patches/0022-backport-acpi-changes-from-515.65.01.patch
patch --verbose --backup --strip=1 --input=/path_to_dir/patches/0023-backport-drm_frambuffer.h-changes-from-515.76.patch

(пути к файлам нужно свои прописать)

после это возвращаемся в корень директории с распакованным драйвером:

cd..

и запускаем установку с компиляцией всех библиотек:

./nvidia-installer

Если успешно установилось, то перезагружаемся и получаем рабочую графическую оболочку.