Вопрос или проблема
Нынешняя проблема
У меня есть ноутбук с процессором AMD и графическим процессором Nvidia, и я использую Ubuntu. Эта конфигурация доставила мне много проблем, потому что поддержка AMD для Linux, по-видимому, работает не очень хорошо. Но недавно возникла новая проблема, и вот шаги:
- ПК работает нормально, драйвер Nvidia установлен и работает, и я могу использовать графический процессор для разработки.
- Я перезагружаю ПК.
- Теперь Nvidia больше не работает.
Вот где я сейчас нахожусь. Когда я запускаю nvidia-smi
, я получаю следующее сообщение:
NVIDIA-SMI не удалась, потому что не удалось связаться с драйвером NVIDIA. Убедитесь, что установлен и работает последний драйвер NVIDIA.
Но когда я открываю панель “Дополнительные драйверы” в “Программном обеспечении и обновлениях”, то мне показывают это в качестве активного драйвера:
o Используя метапакет драйвера NVIDIA из nvidia-driver-535 (проприетарный, протестированный)
Я также могу выполнить lspci | grep VGA
для этого вывода:
01:00.0 VGA совместимый контроллер: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)
09:00.0 VGA совместимый контроллер: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] (rev c7)
Наконец, я могу выполнить sudo apt search nvidia-driver-535
для этого вывода:
...
nvidia-driver-535/lunar-updates,lunar-security,lunar,now 535.54.03-0ubuntu0.23.04.2 amd64 [установлен]
Метапакет драйвера NVIDIA
...
xserver-xorg-video-nvidia-535/lunar-updates,lunar-security,lunar,now 535.54.03-0ubuntu0.23.04.2 amd64 [установлен, автоматический]
Бинарный драйвер NVIDIA для Xorg
...
И да, я только что удалил (т.е. sudo apt purge nvidia*)
драйвер с ПК и переустановил его. Та же проблема по-прежнему. И я также заставил gdm3 использовать X11, отредактировав файл /etc/gdm3/custom.conf
. Потому что он не работает с Wayland.
Попытка отладки
Мои навыки в отладке внутренностей Linux довольно ограничены, но я получил несколько сообщений, запустив sudo journalctl -S -1h
:
modprobe: СЕРЬЕЗНАЯ ОШИБКА: Модуль nvidia не найден в директории /lib/modules/6.2.0-25-generic
[...]
systemd[1860]: Запущен app-gnome-nvidia\x2dsettings-7946.scope - Приложение, запущенное gnome-shell.
nvidia-settings.desktop[7946]: ОШИБКА: Драйвер NVIDIA не загружен
nvidia-settings[7946]: g_object_unref: утверждение 'G_IS_OBJECT (object)' не выполнено
nvidia-settings[7946]: ctk_powermode_new: утверждение '(ctrl_target != NULL) && (ctrl_target->h != NULL)' не выполнено
nvidia-settings.desktop[7946]: ОШИБКА: nvidia-settings не удалось найти файл ключа реестра или сервер X недоступен. Этот файл должен был быть установлен вместе с этим драйвером по адресу /usr/share/nvidia/nvidia-application-profiles-key-documentation. Профили приложений будут продолжать работать, но значения не могут быть предварительно заполнены или проверены, и не будут перечислены в текстах справки. Пожалуйста, смотрите README для возможных значений и описаний.
nvidia-settings[7946]: PRIME: Нет необходимости в выгрузке. Прерывание
nvidia-settings[7946]: PRIME: поддерживается ли это? нет
Вывод
ПК может читать графический процессор. Драйвер NVIDIA правильно установлен. Но почему-то, случайным образом, после перезагрузки драйвер отключается. Или что-то в этом роде.
Что происходит? У меня абсолютно нет идеи, как это исправить.
Предложение временного решения
После быстрой перезагрузки, похоже, это теперь работает – но я оставлю вопрос открытым на случай, если у кого-то возникнет та же проблема или она снова появится. “Исправление” заключалось в том, чтобы открыть BIOS при запуске и отключить Secure Boot. Без понятия, почему – где-то увидел это предложенным – и теперь nvidia-smi
работает, как и должно.
По каким-то странным причинам, мне пришлось:
sudo apt-get install nvidia-dkms-535
Я думал, что это было установлено ранее как зависимость для nvidia-driver-535
… потому что это работало до того, как я выполнил apt-get upgrade
и перезагрузил.
В любом случае, драйвер теперь отображается в моем /lib/modules/
каталоге для всех установленных версий ядра.
Та же проблема произошла с мной 2 дня назад после обновления ядра. Я исправил это, отключив безопасную загрузку.
Это необычно, потому что до обновления я мог нормально использовать драйверы даже с включенной безопасной загрузкой.
У меня обновилось ядро до 6.2.0.25 с 24. Оно загрузилось, но рабочего стола не было. Не в первый раз с 23.04. Я запустил tty и выключил. При перезагрузке запустил меню grub и вернулся к 6.2.0.24. Затем изменил grub, чтобы загружаться только из моего выбора, а не обновления. Мой тестовый компьютер работает с отключенной безопасной загрузкой. У меня есть 10 SSD, которые я могу переключать для тестирования различных дистрибутивов. Материнская плата – Asus Z77. Debian, Ubuntu 23.04, 22.04, Linux Mint, Manjaro не работают с включенной безопасной загрузкой.
В моем случае переустановка, отключение Secure Boot и prime-select, а также перезагрузка не помогают.
Я вынужден устанавливать пакет nvidia-dkms через sudo apt install nvidia-dkms-YOUR-VERSION
, который отсутствует в рекомендуемом способе установки в официальной документации (https://ubuntu.com/server/docs/nvidia-drivers-installation). Пакет nvidia-dkms упоминается только в методе ручной установки.
Ответ или решение
Проблема с драйверами NVIDIA после перезагрузки в Ubuntu 23.04
Введение
Ваша проблема с драйверами NVIDIA на Ubuntu 23.04 довольно распространена, особенно когда в системе используются гибридные графические решения, такие как процессоры AMD в сочетании с видеокартами NVIDIA. В данной статье мы разберём основные причинно-следственные связи возникновения проблемы и предложим возможные пути её решения.
Проблема
Ваша система работает нормально, но после перезагрузки драйвер NVIDIA перестаёт функционировать, и команда nvidia-smi
выдает ошибку: "NVIDIA-SMI не удалось, поскольку не удалось установить связь с драйвером NVIDIA". В то же время в панели "Дополнительные драйверы" отображается, что драйвер NVIDIA установлен корректно.
Согласно журнала регистрации (journalctl
), вы заметили, что модуль nvidia
не найден в каталоге /lib/modules/6.2.0-25-generic
, что может указывать на проблему с загрузкой драйвера.
Причины
-
Безопасная загрузка (Secure Boot): Включение функции Secure Boot может блокировать загрузку подписанных драйверов, что объясняет, почему после отключения этой функции драйвер снова заработал. Некорректно подписанные модули могут не подгружаться, и в этом случае необходимо либо отключить Secure Boot, либо убедиться, что драйверы correctamente сконфигурированы.
-
Версия ядра: При обновлении ядра системы может произойти несоответствие между загруженными модулями и используемым ядром. Вы можете обнаружить, что драйверы NVIDIA не были перекомпилированы для новой версии ядра, что и является причиной их недоступности.
-
PKG nvidia-dkms: Как показало ваше исследование и опыты других пользователей, пакет
nvidia-dkms
часто необходимо устанавливать отдельно. Он отвечает за динамическую компиляцию драйверов NVIDIA для любого установленного ядра. -
Обновления системы: Обновление системы (через
apt-get upgrade
) могло привести к несоответствию версий драйверов и ядра. Это является общепринятой причиной подобных проблем.
Решения
Для решения вашей проблемы предлагается следующий набор действий:
-
Отключение безопасной загрузки:
- Перейдите в BIOS вашего компьютера и отключите функцию Secure Boot.
-
Установка пакета nvidia-dkms:
- После установки драйвера NVIDIA выполните команду:
sudo apt-get install nvidia-dkms-535
Ваша ошибка с отсутствующим модулем
nvidia
в каталоге/lib/modules/
должна исчезнуть.
- После установки драйвера NVIDIA выполните команду:
-
Проверка версии ядра:
- Проверьте, что у вас установлены модули для всех запущенных версий ядра. Вы можете посмотреть доступные модули командой:
ls /lib/modules/
Если модуль для вашей версии ядра отсутствует, попробуйте вручную его установить или перекомпилировать.
- Проверьте, что у вас установлены модули для всех запущенных версий ядра. Вы можете посмотреть доступные модули командой:
-
Настройка GRUB:
- Если проблема возникает при каждом обновлении ядра, вы можете настроить GRUB, чтобы он всегда запускал конкретную версию, пока не решите проблемы с драйверами.
-
Обновление системы:
- Убедитесь, что у вас установлены последние версии драйверов и kernels. Это можно сделать с помощью:
sudo apt update && sudo apt upgrade
- Убедитесь, что у вас установлены последние версии драйверов и kernels. Это можно сделать с помощью:
-
Логи системы:
- Всегда полезно проверять логи с помощью
journalctl
для выявления возможных ошибок при загрузке.
- Всегда полезно проверять логи с помощью
Заключение
Данная проблема с драйверами NVIDIA под управлением Ubuntu 23.04 может иметь множество причин, но, следуя приведённым рекомендациям, вы сможете устранить большинство из них. Если проблема всё ещё сохраняется после выполнения указанных действий, рекомендуется искать специфические конфликты в логах или рассмотреть возможность обращения в техническую поддержку. Важно внимательно следить за обновлениями и состоянием ядра и драйверов, чтобы избежать подобных ситуаций в будущем.