Вопрос или проблема
Сегодня я установил Ubuntu 21.10 на свой ноутбук, но на экране входа в систему я все еще не вижу возможности использовать Wayland вместо X11. Я действительно ждал GNOME 40 с поддержкой мультитач.
Насколько я понимаю, Ubuntu 21.10 должна обеспечивать поддержку Wayland на компьютерах с драйверами NVIDIA (у меня версия 470.74). Кто-нибудь знает, как добавить эту функциональность?
Я вижу в файле “/lib/udev/rules.d/61-gdm.rules”, что есть несколько вещей, которые могут помешать выбору Wayland на экране входа (GDM):
- система работает на ПК с чипсетом Hi1710
- модесет ядра отключен
- модесет “nvidia-drm” отключен
- версия драйвера NVIDIA системы ниже 470
В процессе ручного тестирования я определил, что моя проблема заключалась в том, что модесет “nvidia-drm” был отключен. Лучший способ, который я нашел до сих пор для решения этой проблемы, это добавить следующее в файл “/etc/default/grub”:
GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
Наконец, выполните “sudo update-grub”, чтобы записать изменения в конфигурационный файл GRUB вашей системы (/boot/grub/grub.cfg), и перезагрузите.
Примечание: Чтобы действительно использовать Wayland, вам нужно вручную выбрать его, если он уже не является стандартным на вашей системе. В Ubuntu это можно сделать на экране входа, выбрав сначала нужного пользователя, а затем кликнув на значок шестеренки в правом нижнем углу экрана. Если значок шестеренки не виден, Wayland недоступен на вашей системе в текущей конфигурации. Если это так, проверьте, чтобы ни одной из проблем, перечисленных выше, не было в списке.
Хотя шаги, описанные выше, были всем, что требовалось, чтобы запустить аппаратно-ускоренный Wayland на моем ноутбуке, позже я обнаружил, что отдельная установка Ubuntu на моем домашнем настольном ПК все еще использовала программный рендеринг вместо GPU-ускоренного рендеринга для программ, работающих под XWayland (например, большинство игр).
Эту проблему можно решить, добавив “universe” репозиторий в APT (так как он в настоящее время недоступен в “main”, поддерживаемом репозитории Canonical), а затем выполнив:
sudo apt install libnvidia-egl-wayland1
В моем опыте это вызвало непредсказуемое поведение некоторых приложений, но также решило мои проблемы с аппаратным рендерингом.
В моем случае ответ был:
sudo apt install libnvidia-egl-wayland1
По какой-то причине этот пакет не устанавливается автоматически, поэтому, если вы не установите его вручную, сочетание NVIDIA + Wayland не будет работать.
На экране входа нажмите на значок настроек в правом нижнем углу. Убедитесь, что выбрано “Ubuntu”, а затем войдите в систему как обычно. Это должно войти вас в Wayland, а не в x11.
Итак… Это, безусловно, хак, но если ваша цель – запускать Gnome с Wayland и Nvidia, почему бы не пропустить проверки безопасности и всегда запускать Gnome с включенным Wayland?…
В этом файле: /lib/udev/rules.d/61-gdm.rules на строке или около 84 находится логика того, что делать, если тесты не пройдены…
LABEL="gdm_disable_wayland"
RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false"
GOTO="gdm_end"
Можно изменить на “Всегда включать Wayland”, заменив ‘false’ на ‘true’:
RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable true"
Сохраните конфигурацию, перезагрузитесь, и вы должны быть в Gnome с Wayland вместо X11.
Это делает тесты/проверки всегда успешными. Вы можете сделать это без загрузки модулей, изменения параметров ядра, редактирования grub и т. д.
Это простой хак. Хорошее место для начала. “Почему нет” не следует воспринимать буквально, мне не нужен ответ о рисках… Работает отлично, гибернация, приостановка и т. д., даже не требуется вмешиваться в методы, упомянутые здесь:
https://wiki.debian.org/NvidiaGraphicsDrivers#Wayland
Также попробуйте эти методы, если хак не работает, это буквально шаги, чтобы пройти тесты…
.
Ответ или решение
Для включения поддержки Wayland на вашем Ubuntu 21.10 с графическим драйвером NVIDIA, следуйте инструкциям, изложенным ниже. Убедитесь, что вы тщательно соблюдаете каждый шаг, чтобы обеспечить наилучшие результаты.
Решение проблемы
-
Проверка интеграции NVIDIA и Wayland
Во-первых, убедитесь, что вы используете подходящую версию драйвера NVIDIA. Для этого откройте терминал и выполните команду:
nvidia-smi
Убедитесь, что версия драйвера равна или выше 470.74, так как более старые версии несут риски несовместимости с Wayland.
-
Включение режимов настройки для NVIDIA
Чтобы включить модуль nvidia-drm для работы с Wayland, отредактируйте файл
/etc/default/grub
. Для этого выполните следующую команду в терминале:sudo nano /etc/default/grub
Найдите строку, начинающуюся с
GRUB_CMDLINE_LINUX
, и добавьте параметрnvidia-drm.modeset=1
:GRUB_CMDLINE_LINUX="nvidia-drm.modeset=1"
Сохраните изменения и обновите конфигурацию GRUB:
sudo update-grub
-
Установка необходимого пакета
Если пакет
libnvidia-egl-wayland1
не установлен автоматически, добавьте репозиторийuniverse
и установите его вручную:sudo add-apt-repository universe sudo apt update sudo apt install libnvidia-egl-wayland1
-
Выбор сессии Wayland на экране входа
Перезагрузите компьютер. На экране входа выберите своего пользователя и нажмите на иконку в виде шестеренки в нижней правой части экрана. Убедитесь, что выбрана опция «Ubuntu (Wayland)».
-
Альтернативный метод принудительного включения Wayland
Если стандартные пути активации Wayland не работают, вы можете принудительно активировать его, внеся изменения в файл
/lib/udev/rules.d/61-gdm.rules
. Откройте файл с помощью редактора:sudo nano /lib/udev/rules.d/61-gdm.rules
Найдите и измените строку:
RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable false"
заменив
false
наtrue
:RUN+="@libexecdir@/gdm-runtime-config set daemon WaylandEnable true"
Заключение
Завершив данные шаги, вы получите интеграцию GNOME 40 с поддержкой multi-touch под Wayland на вашем устройстве. Если вы столкнетесь с проблемами, проверьте правильность выполнения вышеуказанных действий и при необходимости произведите диагностику совместимости вашего оборудования с Wayland. Эти инструкции помогут вам настроить систему для оптимальной работы с NVIDIA и Wayland на Ubuntu 21.10, обеспечивая плавный и эффективный пользовательский опыт.