Debian не загружается после установки nvidia

Обновлено: 08.07.2024

Недавно я построил новый ПК, на котором я установил Ubuntu 18.04.2 LTS вместе с Windows (двойной загрузки). После попытки обновить драйвер Nvidia с помощью следующей команды:

sudo apt-get install nvidia-331

который я нашел здесь, у меня был черный экран при попытке загрузить Ubuntu с тех пор (сразу после меню GRUB).

Моя проблема в том, что я не могу пройти первый шаг, чтобы опробовать любое из этих решений, а именно возможность доступа к терминалу.

Я пробовал несколько вещей, которые я собрал из разных постов (например, здесь):

  • Ctrl + Alt + F1 Ничего не случилось.
  • Выделите опцию Ubuntu и нажмите E. Добавить nouveau.modeset=0 до конца строки, начинающейся с linux. Нажмите F10 для загрузки: после F10 я получил вспышку (примерно на секунду) командного терминала сверхнизкого разрешения (с очень быстрыми последовательными командами), затем он стал черным.
  • Аналогично замените quiet splash с nomodeset и загрузка с F10: тот же результат.

Любые идеи о том, что еще я могу попытаться показать терминал?

Или мне нужно переустановить Ubuntu, если ни один из этих вариантов не работает? Если это так, любые ссылки на материалы, которые объясняют, как это сделать (мне никогда не приходилось удалять его раньше).

Немного информации о моих характеристиках ПК, если это поможет:

  • Процессор: Ryzen 7 2700X
  • Материнская плата: Asus ROG STRIX X470-F GAMING
  • Графический процессор: NVidia Geforce RTX 2070

4 ответа

Я отправляю ответ на свой вопрос, поскольку мне удалось решить проблему (спасибо сообществу AskUbuntu). Это может быть не совсем общий ответ, но я объясню шаги, которым я следовал, если это поможет кому-то еще. Вот как я это сделал:

1. Подключение к терминалу

Я следовал инструкциям по редактированию команд перед загрузкой, а именно замене quiet splash с nomodeset а затем нажав F10 или же Ctrl+X для загрузки (инструкции приведены здесь). После загрузки я нажал Ctrl+Alt+F1 , Ctrl+Alt+F6 а также Ctrl+Alt+F7 неоднократно один за другим. После нескольких попыток (пришлось перезагрузить компьютер и повторить попытку несколько раз), я в итоге получил терминал со сверхнизким разрешением, где мне пришлось вводить свои логин и пароль, что я и сделал.

2. Деинсталляция неправильного драйвера Nvidia

Я использовал команду, предоставленную Marmayogi, чтобы удалить неправильный драйвер Nvidia:

sudo apt-get purge nvidia*

В следующий раз, когда я перезагрузил Ubuntu, я смог получить доступ к странице входа и графическому интерфейсу в сверхнизком разрешении, как до того, как я установил неправильный драйвер Nvidia.

3. Установка правильного драйвера Nvidia

Здесь я следовал инструкциям, предоставленным Мармайоги в своем комментарии к моему вопросу, за исключением команды установки драйвера Nvidia, которая была неправильной, поскольку она изменилась (подробности см. В ответе Керри Кобаши в этом посте):

  1. sudo add-apt-repository ppa:graphics-drivers/ppa
  2. sudo apt-get update
  3. sudo apt-get install nvidia-driver-410 (это новая команда, сначала проверьте номер версии драйвера!)
  4. Перезагружать.

После перезагрузки графический интерфейс был в нормальном разрешении (кроме GRUB, который все еще был в низком разрешении, но это меньше проблем). Чтобы убедиться, что все прошло хорошо, я выполнил следующую команду: lsmod | grep nvidia и был вывод, поэтому установка прошла успешно.

Дискретные видеокарты компании Nvidia являются одними из самых распространённых. Они предлагают максимальную производительность при незначительно более высокой цене по сравнению с другими производителями. По умолчанию в Debian для карт Nvidia стоит драйвер nouveau с открытым исходным кодом.

Этот драйвер не поддерживает тонкую настройку видеокарты, а также, как правило, имеет более низкую производительность. Тем не менее, вы всегда можете установить проприетарный драйвер. В этой статье мы рассмотрим как установить драйвер Nvidia Debian 10.

Установка драйвера Nvidia в Debian

1. Как узнать какая версия драйвера нужна

Для того, чтобы просмотреть установлен ли у вас поприетарный драйвер выполните:

lspci -k | grep -EA2 "VGA|3D|Display"

uploaded-post-1586336549_html_bee9dc05c8904e69.jpg

Утилита nvidia-detect позволяет посмотреть информацию о видеокарте компании Nvidia и определить рекомендуемую версию драйвера для этой модели. Устанавливается утилита с помощью следующей команды:

sudo apt -y install nvidia-detect

uploaded-post-1586336549_html_26f3f05779ce1a21.jpg

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

uploaded-post-1586336549_html_f8a5afa8127d7680.jpg

Если вы не хотите устанавливать эту утилиту, вы можете посмотреть официальный сайт Nvidia или воспользоваться следующими рекомендациями:

2. Подготовка к установке видеодрайвера

Прежде чем будет выполнена установка драйвера Nvidia в Debian 10, устанавливаем заголовочные файлы ядра:

sudo apt install linux-headers-$(uname -r|sed 's/[^-]*-[^-]*-//')

uploaded-post-1586336549_html_b6a38b341568465.jpg

3. Установка драйвера из репозитория Debian

Открываем файл с репозиториями sources.list в mcedit и добавляем туда ветки contrib и non-free:

sudo mcedit /etc/apt/sources.list

uploaded-post-1586336549_html_7187e532b6f85e75.jpg

Сохраняем изменения в sources.list с помощью нажатия клавиши F2. Выходим из текстового редактора, нажав клавишу F10.

uploaded-post-1586336549_html_3aa341f0e1f2455.jpg

Обновляем список пакетов системы:

sudo apt update

uploaded-post-1586336549_html_f9f33d5420d0d5e1.jpg

Для установки последней стабильной версии драйвера из репозиториев выполните:

sudo apt install nvidia-driver

Для видеокарт серии 400-500 надо установить драйвер не выше версии 390:

sudo apt install nvidia-legacy-390xx-driver

Для установки драйвера Nvidia Debian 10 версии 340 для очень старых видеокарт выполните команду:

sudo apt install nvidia-legacy-340xx-driver

uploaded-post-1586336549_html_c8597c6caba0b356.jpg

Если вы устанавливали драйвер версии 340, то, возможно, к нему понадобиться отдельно установить nvidia-xconfig:

sudo apt install nvidia-xconfig

uploaded-post-1586336549_html_f2b7b2e66145031.jpg

Запускаем пакет nvidia-xconfig для автоматического создания конфигурационного файла:

uploaded-post-1586336549_html_93508f06177830a8.jpg

uploaded-post-1586336549_html_9178992201471b0b.jpg

4. Установка драйвера из testing репозитория

В данный момент последней версией драйвера является 430.64. Данный пакет можно использовать для видеокарт GeForce 600-й и выше серий. Драйвер ещё не включён в основную ветку репозиториев.

При установке используется репозиторий buster-backports — официальный репозиторий пакетов из веток testing и unstable, предназначенных для работы в стабильной версии ОС, например, патчей безопасности. Этот репозиторий предоставляет наиболее свежие версии пакетов. Сначала добавляем репозиторий buster-backports в /etc/apt/sources.list:

sudo mcedit /etc/apt/sources.list

uploaded-post-1586336549_html_892f435126444fbb.jpg

Сохраняем изменения в sources.list с помощью нажатия клавиши F2. Выходим из текстового редактора, нажав клавишу F10. Затем обновляем пакеты системы:

sudo apt update

И устанавливаем драйвер Nvidia в Debian:

sudo apt install -t buster-backports nvidia-driver

uploaded-post-1586336549_html_f3f3eac56d2c7454.jpg

uploaded-post-1586336549_html_e8caa9cb80e1f608.jpg

5. Установка драйвера Nvidia с официального сайта

Скачиваем файл с драйвером с сайта Nvidia:

uploaded-post-1586336549_html_c2267e67d42d07c2.jpg

Проверяем наличие файла в папке Загрузки:

cd Загрузки && ls

uploaded-post-1586336549_html_21fd2cbc0a3f573.jpg

Отключаем драйвер nouveau:

sudo echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf

sudo echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf

uploaded-post-1586336549_html_4a8d27420b87e595.jpg

Устанавливаем требуемые для сборки пакеты gcc и make:

sudo apt install gcc make

Деактивируем GUI для ОС после перезагрузки:

sudo systemctl set-default multi-user.target

Авторизуемся в терминале как root. Переходим в папку /home/user/Загрузки:

В процессе установки нужно будет ответить на некоторые вопросы и выполнить соответствующие вопросам действия. При этом, в зависимости от параметров вашей системы, некоторые из вопросов могут отсутствовать. Показываемая на экране информация:

The CC version check failed:

The kernel was built with gcc version 8.2.0 (Debian 8.2.0-14), but the current compiler version is cc (Debian 8.3.0-2) 8.3.0.

  • Ignore CC version check
  • Abort installation
  • Yes
  • No
  • Don't install libglvnd files
  • Install and overwrite existing filesort installation.
  • Abort installation
  • Yes
  • No

Возвращаем на место загрузку системы в графическом режиме и перезагружаемся:

sudo systemctl set-default graphical.target

sudo systemctl reboot

6. Проверка завершения установки

Проверить наличие установленного драйвера можно с помощью команды:

lspci -k | grep -EA2 "VGA|3D|Display"

uploaded-post-1586336549_html_3f5f08ec45caeeda.jpg

Удаление драйвера Nvidia из Debian

1. Удаление драйверов из репозитория

Удаляем драйвер Nvidia с помощью команды:

sudo dpkg -P $(dpkg -l | grep nvidia-driver | awk '')

uploaded-post-1586336549_html_2df7501c422cb3b1.jpg

sudo apt autoremove

uploaded-post-1586336549_html_d131c1207ff89b1d.jpg

Активируем вновь драйвер nouveau:

sudo apt install xserver-xorg-video-nouveau

uploaded-post-1586336549_html_f611f68e1977f096.jpg

uploaded-post-1586336549_html_2e31f49071809b75.jpg

2. Удаление драйверов, установленных с сайта Nvidia

Переходим в папку с пакетом, содержащим драйвер:

uploaded-post-1586336549_html_b04c6f6a122f4fa9.jpg

Затем, чтобы удалить драйвер Nvidia Debian выполните:

uploaded-post-1586336549_html_d77d82b182684e6c.jpg

В процессе удаления драйвера система спросит: восстановить конфигурацию xorg из backup? Отвечаем: Yes.

uploaded-post-1586336549_html_fa1ec2c7a75a8abd.jpg

uploaded-post-1586336549_html_849bb44936367b34.jpg

Восстанавливаем из backup конфигурацию xorg, если не сделали этого в процессе удаления драйвера:

sudo nvidia-xconfig --restore-original-backup

Активируем драйвер nouveau:

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

uploaded-post-1586336549_html_cb53fae4468cf669.jpg

uploaded-post-1586336549_html_16adb9f9424f6e78.jpg

Выводы

Сегодня мы разобрались как выполняется установка драйвера Nvidia в Debian 10. Нами были рассмотрены вопросы установки драйверов как из репозитория, так и с официального сайта Nvidia, а также особенности установки различных версий. Было проведено тестирование производительности драйверов. Также было уделено внимание процедуре удаления драйвера Nvidia из системы и порядку возврата к драйверу nouveau с открытым исходным кодом.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(11 оценок, среднее: 5,00 из 5)

Об авторе

Имею высшее образование в сфере компьютеров. Немного разбираюсь в свободном ПО. Занимаюсь в свободное время ремонтом техники. Являюсь счастливым обладателем 3D принтера. Считаю самообразование очень важным для сегодняшнего времени.

13 комментариев

Тема NVIDIA-PRIME не раскрыта

Как на счёт ноутбуков с двойной графикой? Именно на дебиан.

Автор, интересная тема. Разовьешь? Я думаю это многим будет интересно)

О, да! 🙂 Зарегистрировался именно из-за этого вопроса. Плюс, у меня на Debian 10 не хочет загружаться драйвер nVidia. В dmesg вот такая борода:
3.699350] nvidia: loading out-of-tree module taints kernel.
[ 3.699359] nvidia: module license 'NVIDIA' taints kernel.
[ 3.704168] nvidia: module verification failed: signature and/or required key missing - tainting kernel
[ 3.713362] nvidia-nvlink: Nvlink Core is being initialized, major device number 243
[ 3.862914] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 435.21 Sun Aug 25 08:07:52 CDT 2019
[ 3.867157] [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
[ 3.867160] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
[ 10.495202] [drm] [nvidia-drm] [GPU ID 0x00000100] Unloading driver
[ 10.520509] nvidia-modeset: Unloading
[ 10.548839] nvidia-nvlink: Unregistered the Nvlink Core, major device number 243

Бьюсь с этим drm уже какой месяц. Не работает, зараза.

Сам спросил, сам ответил. Если запускать приложения через optirun - драйвер сам загружается:
717315.832913] nvidia-nvlink: Nvlink Core is being initialized, major device number 243
[717316.337094] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 435.21 Sun Aug 25 08:07:52 CDT 2019
И приложение работает.
Через какое-то время после закрытия приложения драйвер выгружается:
[717388.843654] nvidia-modeset: Unloading
[717388.876907] nvidia-nvlink: Unregistered the Nvlink Core, major device number 243

Не могу понять как сделать nvidia по дефолту и запускать все сразу на ней без optirun.

Пару дней назад запустил обновление системы, а оно говорит новая версия системы вышла и продолжать обновление не будет без моего согласия. Сразу не запускал, потому что скорее всего X server не запуститься при первом старте, так как у меня проприетарные драйвера NVidia установлены. Сегодня решился и запустил обновление. Сам пошёл за хлебом в ближайшую пекарню. Вернулся, система уже обновилась. Перезапустил и получил

Как и ожидал X Server не стартует. Надеюсь, что обойдётся переустановкой драйверов видеокарты. Сейчас проверю, что в логах написано. Открываю новый терминал комбинацией клавиш [Ctrl-Alt-F6]

NVIDIA: Failed to initialize the NVIDIA kernel module. NVIDIA: Failed to initialize the NVIDIA kernel module.

Следом за ней ошибка "no screens found". Вот и ответ. Осталось переустановить драйвер и должно заработать. Но сначала удалю всё, что связано с NVIDIA

Apt выдала мне список модулей с подписью, что модуль не установлен, поэтому не может быть удалён

Хорошо. Теперь установлю драйвер.

Пишет, что драйвер уже установлен и спрашивает продолжить или прервать. Я продолжаю. Спрашивает, что хочу ли я зарегистрировать модуль ядра? Я отвечаю "Да". Спрашивает об установке библиотек совместимости с 32-битным режимом. Я подтверждаю, пригодятся. Пишет, что драйвер уже установлен и спрашивает продолжить или прервать. Я продолжаю.

Из прошлых установок помню, что перед запуском драйверов, нужны были ещё какие-то действия. Поэтому решил залезть в руководство по установке драйверов NVIDIA от NVIDIA для Debian. Там написано, что перед запуском нужно установить заголовки ядра командой

sudo apt -y install linux-headers-$(uname -r) build-essential

Запускаю. Установщик жалуется на "build-essential" --- убираю и запускаю снова

Думаю, что найду там подсказку. Нашёл подсказку под загаловком "Обновление Debian"

Обновление до Debian 11 с предыдущего выпуска, Debian 10 (кодовое имя buster), для большинства вариантов настройки осуществляется автоматически с помощью APT.
Для выпуска bullseye компонент с обновлениями безопасности теперь называется bullseye-security, пользователям следует изменить свои файлы источников APT соответствующим образом в ходе обновления. Если в ваших настройках APT используются закрепление или APT::Default-Release, то для этих параметров тоже скорее всего потребуются изменения. Дополнительную информацию смотрите в разделе Изменена структура архива безопасности в информации о выпуске.

Перехожу по ссылке и делаю как написано. Кроме того проверяю, чтобы в файле не упоминалась больше прежняя версия "buster" и везде была "bullseye". Готово. Запускаю

Apt выдаёт кучу ошибок связанных с установленными мною программами в прежней системе и останавливается с просьбой запустить

Что я и делаю. Всё успешно проходит. Перезапускаю систему и она успешно стартует с обновлёнными приложениями.

Мораль сей басни такова, что прежние программы то остались установленными, но с зависимостями от прежней системы. В том числе и драйвер от видеокарты. А, выше упомянутая, команда решает этот вопрос. Чем не раз меня спасала.

Самое то интересное, что я уже проделывал подобные шаги при обновлении с Debian 9 на Debian 10, но уже не помню так как это было больше 2-х лет назад.

Спасибо разработчикам APT и за опции "--fix-broken" и "--fix--missing" --- они офигенные!

5fafbc27a4043043438019.jpg

После попытки вызова полей ввода логина и пароля (Ctrl+Alt+F4) случилось такое:

То, о чем пишут в гугле о подобной ошибке: "Возможно, это проблема установки драйвера для графической оболочки realtek". Но как использовать эту информацию я не очень понимаю.

Простой 2 комментария

Вы устанавливали с графической оболочкой или без?
Нажмите ctrl+L и попробуйте ввести логин и пароль, который вы создали при установке.

Ashlis

Ищю в поисковиках, вроде как я устанавливал с графической оболочкой. ctrl+L не реагирует

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

Для исправления компьютер долежн быть подключен к Internet.

Введи свой логин, Enter, пароль (он не будет отображаться), Enter. Появится приглашение командной строки, оканчивающееся на символ $. Далее надо сделать:

sudo apt install task-XXX-desktop

Вместо XXX нужно указать желаемую оболочку: kde, gnome, xfce4. Лично я предпочитаю xfce4 за её легковесность, но gnome и kde более распространены, и в debian традиционно по умолчанию ставится gnome

У тебя спросит ещё раз твой пароль (sudo выполняет действия от пользователя root, но вводить надо свой пароль). Затем будут скачаны из интернета вагон и тележка нужных пакетов. По окончании надо перезагрузиться и должен будет появиться графический вход в систему.

dunmaksim

У вас система работает с включенным EFI. Есть два способа решения этой проблемы: отключить EFI, после чего переустановить систему, и правильный. Поскольку у меня видеокарта NVidia RTX 2070, я пишу решение под неё. Версия ядра при написании руководства была 4.18.0-8, у вас может быть другой. При необходимости внесите изменения в команды:

Обновите список пакетов и поставьте необходимый софт:

Сгенерируйте ключи, которые будут использованы для импорта в EFI в качестве доверенных. Ими же подпишите модули ядра с графическими драйверами:

Перезагрузите компьютер. При этом будет запущена специальная утилита EFI, которая позволит выполнить импорт сгенерированного ранее ключа в качестве доверенного. Буквально несколько раз подряд нажать Next.

Пересоберите ядро:
update-initramfs -u -k all

Перезагрузитесь ещё раз.

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

Читайте также: