在使用N卡闭源驱动时强制让GNOME/GDM使用Wayland(副作用:暂时无法启动Wine游戏)
适用范围
以下教程适用于以下桌面环境:
- 使用GNOME桌面
- 使用GDM显示管理器
- 安装了Nvidia闭源驱动
不适用以下桌面环境:
- 使用LightDM或者其他显示管理器
- 不使用GNOME桌面,比如使用的是KDE、DDE等
- 未安装Nvidia闭源驱动
已知问题
- 由于Nvidia闭源驱动还没有支持XWayland 3D加速,并且Wine也还没有原生支持Wayland(只能使用XWayland渲染),所以目前Wine游戏助手无法在这种情况下启动3D游戏。我给出这个方案只是为了探索Wayland的支持情况。
我在Arch Linux中测试成功,驱动安装的是AUR包nvidia-beta。
在使用N卡闭源驱动时,GDM会自动禁用GNOME的Wayland支持,但是可以通过以下步骤启用:
sudo vim /etc/gdm/custom.conf
确保WaylandEnable=false被注释(前面有#),如果前面没有#则加一个#
[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
sudo vim /usr/lib/udev/rules.d/61-gdm.rules
在Driver=="nvidia" ……前面加#
# disable Wayland when using the proprietary nvidia driver
#DRIVER=="nvidia", RUN+="/usr/libexec/gdm-disable-wayland"
如果只在Driver=="nvidia" ……前面加#没效果,就在所有行前面都加#。
sudo vim /etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT="……"的引号里面,末尾添加空格和nvidia-drm.modeset=1
GRUB_CMDLINE_LINUX_DEFAULT="原有的参数 nvidia-drm.modeset=1"
-
运行
sudo update-grub命令,或者其他适用于你的发行版的grub.cfg更新命令,比如sudo grub-mkconfig -o /boot/grub/grub.cfg -
重启以使配置生效,然后在选择用户后,点击右下角的齿轮图标。如果你看到里面有“运行于 Xorg 的 GNOME”,说明Wayland已启用,选择另外两个都是Wayland会话。如果没有和
Xorg有关的条目,则Wayland可能未启用。 -
登陆后,运行以下命令确认是否处于Wayland会话:
env | grep XDG如果看到
XDG_SESSION_TYPE=wayland则处于Wayland会话。
如果是XDG_SESSION_TYPE=x11则处于Xorg会话。 -
注意:由于Nvidia闭源驱动还没有支持XWayland 3D加速,并且Wine也还没有原生支持Wayland(只能使用XWayland渲染),所以目前Wine游戏助手无法在这种情况下启动3D游戏。我给出这个方案只是为了探索Wayland的支持情况。
-
如果想打游戏,请注销并选择
运行于 Xorg 的 GNOME。如果坚持使用Wayland会话,则很多游戏都无法启动,或者你需要使用wine-wayland。