Arch Linux: GDM по умолчанию использует X11 вместо Wayland. Что не так с моей конфигурацией?

Вопрос или проблема

Я был под впечатлением, что мой компьютер под управлением Arch Linux работает на Wayland, поскольку GDM якобы по умолчанию использует его. Однако, проверив XDG_SESSION_TYPE сегодня утром, похоже, что я использую X11. Это совпадает с указанным типом сессии в loginctl.

Я следовал различным руководствам, чтобы правильно настроить свою конфигурацию (в частности, Wiki Arch), но GDM продолжает выбирать X11.

У меня видеокарта Nvidia Geforce 1050 Ti с установленным драйвером Arch nvidia и стандартным GNOME (поэтому мой WM — Mutter).

Мой /etc/environment приведен ниже:

GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia

Ниже представлен вывод systemctl status gdm.service, ни одна из обычных ошибок, которые могли бы заставить GDM выбрать X11, не зафиксирована в логах.

Jul 10 12:07:48 … gdm-password][966]: pam_systemd_home(gdm-password:auth): Новое sd-bus соединение (system-bus-pam-systemd-home-966) открыто.
Jul 10 12:07:52 … gdm-password][985]: pam_ecryptfs: Файл пароля зашифрован
Jul 10 12:07:53 … gdm-password][966]: gkr-pam: не удалось найти файл управления демоном
Jul 10 12:07:53 … gdm-password][966]: gkr-pam: сохраненный пароль будет использован позже в открытой сессии
Jul 10 12:07:53 … gdm-password][966]: pam_unix(gdm-password:session): сессия открыта для пользователя willow(uid=1000) пользователем willow(uid=0)
Jul 10 12:07:53 … gdm-password][966]: pam_systemd(gdm-password:session): Новое sd-bus соединение (system-bus-pam-systemd-966) открыто.
Jul 10 12:07:53 … gdm-password][966]: gkr-pam: пароль для ключевого кольца входа недействителен.
Jul 10 12:07:54 … gdm[568]: Gdm: on_display_added: утверждение 'GDM_IS_REMOTE_DISPLAY (display)' не выполнено
Jul 10 12:07:57 … gdm[568]: Gdm: дочерний процесс -630 уже завершился.
Jul 10 12:07:57 … gdm[568]: Gdm: on_display_removed: утверждение 'GDM_IS_REMOTE_DISPLAY (display)' не выполнено

Когда я впервые опубликовал этот вопрос, мне казалось, что я нашел корень проблемы. Я обнаружил, что nvidia_drm.modeset почему-то не включен, несмотря на то, что kms и nvidia_modeset находятся в правильных местах моего mkinitcpio.conf:

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
…
HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)

У меня также был (и по-прежнему есть) файл конфигурации modprobe по адресу /etc/modprobe.d/nvidia_drm_modeset.conf:

options nvidia_drm modeset=1

Проверка значения /sys/module/nvidia_drm/parameters/modeset показывает, что он упорно оставался N вместо ожидаемого Y. После включения nvidia-hibernate.service, nvidia-suspend.service и nvidia-resume.service, как описано в ответе Рена, этот параметр теперь Y, но проблема сохраняется.

На экране входа даже кажется, что нет способа выбрать X11 или Wayland.

Что, черт возьми, происходит с моей системой?

Пожалуйста, включите следующие службы через systemd: nvidia-hibernate.service, nvidia-suspend.service и nvidia-resume.service, а затем перезагрузите. Arch Linux должен по умолчанию использовать Wayland.

Я обнаружил дополнительный шаг по устранению неполадок после изучения некоторых сообщений на форуме Arch Linux. Мне удалось обойти проблему, переопределив стандартные правила udev GDM, которые, как я полагаю, вызывали отключение функциональности Wayland, создав символическую ссылку на /dev/null в /etc/udev/rules.d/61-gdm.rules. Насколько я знаю, это полностью исключает проверки, которые могли бы заставить GDM отключить Wayland.

Теперь в моих сессиях GNOME есть возможность запускаться либо под X11, либо под Wayland, как это подразумевается в ответе Рена.

Я буду изучать дальше, с более тонкими переопределениями udev, пока не выясню точную причину проблемы.

Ответ или решение

Ваша ситуация с GDM и Wayland на Arch Linux, особенно с драйверами NVIDIA, довольно распространена, и, как вы уже заметили, возможны несколько решений. Давайте рассмотрим шаги, которые помогут вам настроить систему для использования Wayland по умолчанию.

  1. Проверка конфигурации модулей и параметров загрузки:

    Убедитесь, что вы правильно настроили файлы конфигурации для использования nvidia_drm и параметров модуля nvidia. В вашем файле /etc/modprobe.d/nvidia_drm_modeset.conf уже указано:

    options nvidia_drm modeset=1

    Также убедитесь, что файл /etc/mkinitcpio.conf содержит следующие строки:

    MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
    HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)

    После любых изменений не забудьте обновить initramfs командой:

    sudo mkinitcpio -P
  2. Активация сервисов NVIDIA:

    Убедитесь, что вы активировали сервисы для hibernate, suspend и resume для NVIDIA:

    sudo systemctl enable nvidia-hibernate.service
    sudo systemctl enable nvidia-suspend.service
    sudo systemctl enable nvidia-resume.service

    После активации перезагрузите систему.

  3. Настройка GDM:

    Если проблема сохраняется, возможно, необходимо переопределить некоторые правила udev, которые могут блокировать работу Wayland с драйверами NVIDIA. Чтобы сделать это, создайте символьную ссылку для отключения правил GDM:

    sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

    Это отключит проверку GDM, которая может мешать запуску Wayland.

  4. Проверка настроек окружения:

    Убедитесь, что ваш файл /etc/environment выглядит следующим образом:

    GBM_BACKEND=nvidia-drm
    __GLX_VENDOR_LIBRARY_NAME=nvidia

    Это правильно указывает, что вы хотите использовать драйвер NVIDIA.

  5. Перезагрузка системы:

    После всех изменений обязательно перезагрузите систему и проверьте переменную окружения XDG_SESSION_TYPE:

    echo $XDG_SESSION_TYPE

    Она должна отображать "wayland" после входа в систему.

  6. Выбор сеанса на экране входа:

    Убедитесь, что на экране входа GDM вы можете выбрать сеанс Wayland. Если эти настройки работают правильно, вы должны увидеть опции для выбора между X11 и Wayland.

Если после выполнения всех этих шагов проблема всё ещё существует, возможно, потребуется просмотреть логи GDM для выявления конкретных ошибок. Логи можно просмотреть с помощью команды:

journalctl -u gdm.service

Эти шаги должны помочь вам переключиться на Wayland с драйверами NVIDIA на Arch Linux. Если проблема остается, возможно, стоит обратиться за поддержкой на форумы Arch Linux или изучить исчерпывающую документацию по вопросам поддержки Wayland в контексте использования драйверов NVIDIA.

Оцените материал
Добавить комментарий

Капча загружается...