Вопрос или проблема
Я был под впечатлением, что мой компьютер под управлением 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 по умолчанию.
-
Проверка конфигурации модулей и параметров загрузки:
Убедитесь, что вы правильно настроили файлы конфигурации для использования
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
-
Активация сервисов NVIDIA:
Убедитесь, что вы активировали сервисы для hibernate, suspend и resume для NVIDIA:
sudo systemctl enable nvidia-hibernate.service sudo systemctl enable nvidia-suspend.service sudo systemctl enable nvidia-resume.service
После активации перезагрузите систему.
-
Настройка GDM:
Если проблема сохраняется, возможно, необходимо переопределить некоторые правила udev, которые могут блокировать работу Wayland с драйверами NVIDIA. Чтобы сделать это, создайте символьную ссылку для отключения правил GDM:
sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
Это отключит проверку GDM, которая может мешать запуску Wayland.
-
Проверка настроек окружения:
Убедитесь, что ваш файл
/etc/environment
выглядит следующим образом:GBM_BACKEND=nvidia-drm __GLX_VENDOR_LIBRARY_NAME=nvidia
Это правильно указывает, что вы хотите использовать драйвер NVIDIA.
-
Перезагрузка системы:
После всех изменений обязательно перезагрузите систему и проверьте переменную окружения
XDG_SESSION_TYPE
:echo $XDG_SESSION_TYPE
Она должна отображать "wayland" после входа в систему.
-
Выбор сеанса на экране входа:
Убедитесь, что на экране входа GDM вы можете выбрать сеанс Wayland. Если эти настройки работают правильно, вы должны увидеть опции для выбора между X11 и Wayland.
Если после выполнения всех этих шагов проблема всё ещё существует, возможно, потребуется просмотреть логи GDM для выявления конкретных ошибок. Логи можно просмотреть с помощью команды:
journalctl -u gdm.service
Эти шаги должны помочь вам переключиться на Wayland с драйверами NVIDIA на Arch Linux. Если проблема остается, возможно, стоит обратиться за поддержкой на форумы Arch Linux или изучить исчерпывающую документацию по вопросам поддержки Wayland в контексте использования драйверов NVIDIA.