Как заставить Wayland работать на графических картах Nvidia

Nvidiawayland Card

Хотя Nvidia теоретически предоставляет полную поддержку Wayland с момента выпуска своих драйверов в конце 2021 года, путь к этому не был гладким. Все еще остается много работы по взаимодействию с компонентами, которые используют большинство людей, такими как XWayland. Это требует установки переменных как в пользовательской среде, так и в ядре для корректной навигации по вашей системе и кликов по элементам интерфейса.

Но это не означает, что процесс не стоит того, когда вы заставите Wayland работать на графических картах Nvidia. Если вы следуете этому руководству, ваш опыт использования Nvidia будет почти таким же плавным, как и в X.

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

Содержание

  • Не удаляйте Xorg
    1. Настройте вашу среду
    1. (Arch Linux) Соберите ваш начальный ramdisk
    1. Включите менеджер прямого рендеринга
  • Поддержка Wayland в вашей дистрибутиве
  • Часто задаваемые вопросы

Не удаляйте Xorg

Во-первых, не удаляйте Xorg или любые окружения рабочего стола, которые его используют! Чтобы сделать ваш опыт проще и с минимальными неудобствами, всегда хорошо иметь безопасный вариант, на который можно вернуться. Рассматривайте X как свой “безопасный режим” на случай, если что-то пойдет не так в процессе. То, что мы будем делать в этом руководстве, не повлияет на Xorg.

1. Настройте вашу среду

Существует несколько переменных окружения, чтобы заставить Wayland работать на графических картах Nvidia. Поскольку здесь нет единого стандарта, мы будем очень общими в настройках, чтобы убедиться, что Nvidia не будет на вас сердиться.

Nvidiawayland Environment

Следуйте этим шагам, чтобы настроить среду:

  1. Создайте резервную копию вашей среды в вашем домашнем каталоге:
sudocp/etc/environment ~/environment.bak
  1. Откройте ваш универсальный файл окружения:
sudonano/etc/environment
  1. Если вы собираетесь использовать приложения Qt (вы, как правило, будете иметь несколько), добавьте эту строку в любом месте файла:
QT_QPA_PLATFORMTHEME="wayland;xcb"
  1. Добавьте следующие переменные окружения, чтобы заставить Nvidia использовать бэкенд GBM (совместимый с большинством окружений Linux) и включить несколько других функций, которые могут вам понадобиться, даже если они еще не установлены:
GBM_BACKEND=nvidia-drm  
__GLX_VENDOR_LIBRARY_NAME=nvidia  
ENABLE_VKBASALT=1  
LIBVA_DRIVER_NAME=nvidia
  1. Поскольку рендеринг аппаратного курсора может не работать в некоторых окружениях, есть еще одна необязательная переменная. Она нужна только в случае, если, когда вы наконец протестируете Wayland, вы не увидите курсор на вашем экране.

Тем не менее, нет ничего страшного в том, чтобы добавить ее и удалить позже, чтобы протестировать все без нее:

WLR_NO_HARDWARE_CURSORS=1

Полезно знать: Вы можете исправить проблемы с Wayland GDM в Fedora с помощью нашего руководства.

2. (Arch Linux) Соберите ваш начальный ramdisk

Большинство популярных дистрибутивов загрузятся с “начальным ramdisk” (initramfs), который загружает временную файловую систему в вашу оперативную память (отсюда и термин “ramdisk”), чтобы инициализировать процесс загрузки и подготовить ядро к работе.

Nvidiawayland Mkinitcpio

Внутри этого начального ramdisk мы должны загрузить различные компоненты Nvidia, включая способ загрузки разрешения экрана в ядре. Это важно, поскольку Wayland упрощает буфер кадров и общается ближе к ядру.

В популярных дистрибутивах, таких как Ubuntu и Fedora, Nvidia не должна сталкиваться с проблемами, поскольку системы уже настроены так, что initramfs менее разборчив, какие модули загружать. Однако очень модульная структура Arch требует ручной загрузки конкретных модулей.

Этот процесс не так страшен, как звучит. Просто следуйте этим шагам внимательно:

  1. Отредактируйте вашу конфигурацию начального ramdisk (обязательно создайте резервную копию сначала):
sudonano/etc/mkinitcpio.conf
  1. Под строкой MODULES=() добавьте следующее:
nvidia nvidia_modeset nvidia_uvm nvidia_drm

Если в скобках уже есть другие модули, не указанные здесь, добавьте эти модули в конец. Если вы уже видите некоторые модули Nvidia, заключенные в скобки, добавьте недостающие из списка.

  1. Пересоздайте ваш начальный ramdisk для всех изображений initramfs (для этого нужен флаг -P):
sudo mkinitcpio -P

Вы должны увидеть множество страшных предупреждений о “недостающем прошивке”. Игнорируйте их. Обычно это происходит и не является поводом для беспокойства. Это полезно только в нишевых случаях, когда для оборудования, которое вы не можете использовать, отсутствует пакет прошивки.

Совет: Некоторые игры могут перегружать ваш процессор, но вы можете быстро исправить высокую загрузку ЦП в Linux.

3. Включите менеджер прямого рендеринга

Менеджер прямого рендеринга (DRM) в Linux позволяет ядру работать с графическими процессорами. Чтобы Nvidia и Wayland хорошо ладили, мы должны убедиться, что ядро использует режим настройки DRM Nvidia в параметрах ядра вашего загрузчика:

  1. Отредактируйте вашу конфигурацию GRUB по умолчанию (снова, всегда убедитесь, что резервная копия существует):
sudonano/etc/default/grub
  1. Найдите строку, которая начинается с GRUB_CMDLINE_LINUX_DEFAULT. Если она не существует (например, в Fedora), создайте ее, чтобы она выглядела так: GRUB_CMDLINE_LINUX_DEFAULT="".
  2. Внутри кавычек добавьте следующее:
nvidia-drm.modeset=1
  1. Обновите конфигурацию Grub:

Во всех системах на основе Ubuntu/Debian/Mint:

sudo update-grub

В Fedora/RHEL:

sudo grub2-mkconfig -o/boot/grub2/grub.cfg

Во всех системах на основе Arch:

sudo grub-mkconfig -o/boot/grub/grub.cfg

После завершения всех действий вашей системе будет намного легче запустить Wayland на оборудовании Nvidia!

Следующие шаги: Теперь, когда Wayland работает, вы можете провести стресс-тест вашей графической карты.

Поддержка Wayland в вашей дистрибутиве

В Ubuntu, Fedora и нескольких других дистрибутивах вы можете получить рабочий Wayland на графических картах Nvidia, как только обновите свою версию программного обеспечения до последней. Ubuntu поставляет Wayland как сеанс по умолчанию для своего модифицированного рабочего стола GNOME с версии 22.04, а Fedora делает это намного дольше. Убедитесь, что вы используете последнюю версию вашего дистрибутива.

Nvidiawayland Sddm

Другие, такие как Linux Mint, будут иметь проблемы с запуском Wayland, потому что обновление рабочего стола, который они поставляют, не является приоритетом. Тем не менее, это не мешает вам установить альтернативную операционную систему. GNOME предлагает поддержку прямо из коробки, в то время как KDE Plasma может требовать дополнительных пакетов.

Системы на базе Debian/Ubuntu

Если ваша система работает под управлением GNOME, она уже поддерживает Wayland, если вы в актуальном состоянии. Чтобы установить GNOME, если у вас его нет:

sudo apt install gnome

Для KDE Plasma вам нужно будет отдельно установить как окружение рабочего стола, так и композитор Wayland:

sudo apt install kde-standard plasma-workspace-wayland

Вот и все! Wayland должен быть доступен в вашем дисплейном менеджере, как только вы перезагрузитесь.

Системы на базе Arch

Как и в любом другом дистрибутиве, который предлагает окружение рабочего стола GNOME, установка его на Arch Linux автоматически добавит поддержку Wayland:

sudo pacman -S gnome

Установка KDE Plasma также довольно проста:

sudo pacman -S plasma-meta plasma-wayland-session

Любая из этих команд добавит Wayland в ваш дисплейный менеджер (более привычно известный как экран входа).

Не забудьте также установить XWayland:

sudo pacman -S xorg-xwayland

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

Часто задаваемые вопросы

Действительно ли стоит использовать Wayland?

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

Если вы слишком разочарованы Wayland, вернитесь к X. Я рекомендую не удалять ваши пакеты Wayland, так как X каждый день признается устаревшим все большим количеством разработчиков приложений. Раз в несколько месяцев проверяйте, исчезли ли ваши проблемы.

Что делать, если мой дисплейный менеджер не показывает опции Wayland?

Хотя большинство дисплейных менеджеров должны отображать реализации протокола Wayland ваших любимых окружений рабочего стола, это не всегда происходит. Решение заключается в том, чтобы попробовать другой дисплейный менеджер. Те, которые идут в комплекте с KDE Plasma (SDDM) и GNOME (GDM), будут работать без проблем. LightDM также хорошо работает.