Gnome使用nvidia闭源驱动启用wayland

本文最后更新于:2024年8月18日 上午

1 具体情况

偶然的情况下发现 archlinux gnome 的窗口系统是 X11 而不是我配置文件中的 Wayland。

1
2
3
GDM (GNOME Display Manager) will automatically use Wayland when supported, except when using the proprietary NVIDIA driver, in which case it will fall back to X11 due to instability. 

GDM确实是默认支持Wayland的,但是如果使用NVIDIA的专有驱动,它就会变回X11。所以登录界面右下角的齿轮里只有使用X11的GNOME和GNOME Classic。

如果需要在安装NVIDIA专有驱动后为GDM启用Wayland,需要如此操作:

2 设置DRM内核模式

参考资料:https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting

具体操作如下:

1
2
3
4
5
在终端中执行以下命令以检查nvidia_drm的状态
sudo cat /sys/module/nvidia_drm/parameters/modeset
如果输出的是Y,则不需要进行此操作。如果是N,则需要在引导工具中加入nvidia_drm.modeset=1 参数。
我是用 refind 具体如下:
options "root=UUID=586d7748-8b6f-47e4-b863-9821ec10c325 rw add_efi_memmap rootflags=subvol=@Aos quiet splash amd_iommu=on iommu=pt nvidia-drm.modeset=1"

重启电脑,检查nvidia_drm的状态,如果输出为Y则可以进行下一步操作。

3 禁用规则

参考资料:https://wiki.archlinux.org/title/GDM#Wayland_and_the_proprietary_NVIDIA_driver

你需要执行以下命令:

1
2
3
4
sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules
这个命令会创建一个规则以覆盖 /usr/lib/udev/rules.d/ 里的GDM的一项规则,这个规则会在检测到NVIDIA专有驱动的时候停用GDM的Wayland。

我的做法是注释了整个 /usr/lib/udev/rules.d/61-gdm.rules 文件。

完成之后,重启,问题应该已经解决。

4 验证

打开终端,执行:

1
2
echo $XDG_SESSION_TYPE
wayland

Gnome使用nvidia闭源驱动启用wayland
https://worisur.github.io/2024/08/18/2024-08-18.Gnome使用nvidia闭源驱动启用wayland/
作者
worisur
发布于
2024年8月18日
许可协议