Вопрос или проблема
Я пытаюсь оживить старый ноутбук Lenovo Ideapad Z360 с помощью Ubuntu 20.04 LTS. Этот ноутбук имеет встроенный графический процессор Intel и дискретный графический процессор Nvidia, как показано ниже:
$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA совместимый контроллер: Intel Corporation Core Processor Integrated Graphics Controller (ревизия 18)
Подсистема: Lenovo Core Processor Integrated Graphics Controller
Драйвер ядра в использовании: i915
Модули ядра: i915
--
01:00.0 VGA совместимый контроллер: NVIDIA Corporation GT218M [GeForce 310M] (ревизия a2)
Подсистема: Lenovo GT218M [GeForce 310M]
Драйвер ядра в использовании: nvidia
Модули ядра: nvidiafb, nouveau, nvidia
На Ubuntu Mate 20.04 я могу переключаться с Nvidia GPU на Intel GPU без проблем. Я могу делать это с помощью иконки на панели (mate-optimus); или используя терминал (prime-select); или используя приложение Nvidia (nvidia-settings). Все работает, и рабочий стол загружается нормально после того, как я выхожу и вхожу снова. Опция “по требованию” не работает — на GitHub mate-optimus указано, что “NVIDIA On-Demand (известный как PRIME Render Offload) потребует драйверов NVIDIA 435”, так что, думаю, это исключает мой графический процессор (который использует драйверы NVIDIA 340), — но меня это устраивает. Я рад, что могу переключаться между Intel и Nvidia GPU по мере необходимости. На Ubuntu Mate 20.04 это работает хорошо.
Однако, на Ubuntu 20.04 (Gnome) переключение на Intel GPU не работает!!
Первое, что я заметил, это отсутствие раздела меню “PRIME Profiles” в приложении Nvidia (nvidia-settings). Я смог это исправить, установив пакет nvidia-prime (который был предустановлен в Ubuntu Mate, но не в Ubuntu Gnome).
Однако, когда я пытаюсь переключиться на Intel GPU, я не могу войти в рабочий стол после выхода (возвращает на экран приветствия gdm3). Если я перезагружаю систему, когда выбран Intel GPU, то я получаю черный экран. Чтобы это исправить, мне нужно либо переключиться обратно на Nvidia GPU (используя prime-select), либо удалить все пакеты Nvidia (и использовать драйвер nouveau вместо этого).
Так что мой вопрос: почему это работает на Ubuntu Mate, но не на Ubuntu Gnome?
У меня есть старый Alienware 11Mx3 с Optimus на Nvidia 310. Он работает отлично на Nvidia 345.21. Я могу плавно переключаться туда и обратно… Мой трюк заключается в установке, исключая “драйверы третьих сторон и…”. Это дает мне чистую установку закрытого драйвера.
После входа в систему я обновляю, улучшаю и без перезагрузки выполняю установку nvidia-driver-435. После перезагрузки все работает.
Все работает отлично, и поверьте, я уже потерял надежду на Optimus. Ранее мой Alienware собирал пыль в своей сумке… теперь он везде со мной. Я использую Ubuntu Budgie 20.04 LTS, и она работает плавно как в режиме Intel, так и в режиме Nvidia…
Я также боролся с этой проблемой и случайно обнаружил, что нужно добавить в черный список модуль ядра nouveau. Как только я это сделал, машина загружается правильно в режиме с двумя мониторами и режиме только ноутбука.
Я также обнаружил, что nouveau было проблемой с lambda стэком для машинного обучения на другой системе. Вам нужно было добавить nouveau в черный список в ядре Linux и grub.
Инструкции по добавлению nouveau в черный список можно найти здесь
Краткая форма:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
Добавление nouveau в черный список в grub:
-
измените /etc/default/grub
-
измените GRUB_CMDLINE_LINUX_DEFAULT, чтобы включить nomodeset. Например:
GRUB_CMDLINE_LINUX_DEFAULT=”nomodset”
-
выполните update-grub
-
перезагрузите
Ответ или решение
Ваш запрос касается NVIDIA Optimus на Ubuntu 20.04 и вопроса, почему переключение на интегрированную графику Intel работает на Ubuntu Mate, но не на Ubuntu Gnome. Давайте подробно разберем эту проблему и возможные решения, учитывая различные аспекты каждой операционной системы и драйверов.
Анализ ситуации
1. Различия в окружениях:
Ubuntu Mate и Ubuntu Gnome — это разные десктопные окружения, что может влиять на работу драйверов и системы в целом. Ubuntu Mate изначально может лучше поддерживать hardware-specific программы, такие как mate-optimus.
2. Драйвера NVIDIA:
На вашем устройстве используется старый драйвер NVIDIA версии 340, в то время как для полной поддержки некоторых функций Prime Render Offload требуется 435 версия драйвера. Это само по себе может создать проблемы в переключении видеокарт.
3. Отсутствие nvidia-prime:
На Ubuntu Gnome требуется ручная установка nvidia-prime, что вы уже исправили. Однако это важный шаг, который влияет на доступность настроек PRIME Profiles.
Возможные решения
1. Установка чистого драйвера:
Вы можете попробовать установку без выбора "сторонних драйверов". Это может предотвратить появление конфликтующих модулей.
sudo apt remove --purge '^nvidia-.*'
sudo apt install nvidia-driver-435
2. Блокировка модуля nouveau:
Проблема может быть связана с конфликтом между nouveau и драйвером NVIDIA. Следуйте инструкции ниже для блокировки:
sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
Редактирование GRUB:
- Откройте файл конфигурации:
/etc/default/grub
. - Измените
GRUB_CMDLINE_LINUX_DEFAULT
, добавивnomodeset
, если необходимо:GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
- Примените изменения, выполнив
sudo update-grub
. - Перезагрузите ПК.
3. Проверка конфигурации GDM3:
Проблема с зацикленной авторизацией может также быть связана с настройками дисплейного менеджера GDM3. Убедитесь, что GDM3 корректно настроен для работы с Intel драйверами.
Заключение
Проблема совместимости двух графических карт в разных окружениях может быть довольно сложной задачей, особенно на старых устройствах с устаревшими драйверами. Рекомендую тщательно следовать перечисленным выше шагам и рассмотреть возможность использования более поздней версии Ubuntu или других дистрибутивов, которые могут предлагать улучшенную поддержку вашей конфигурации оборудования.
Если ни один из предложенных способов не решает ситуацию, стоит задуматься об использовании более легкого окружения, такого как Ubuntu Mate, или об обновлении оборудования до более актуального.