在使用N卡闭源驱动时强制让GNOME/GDM使用Wayland(副作用:暂时无法启动Wine游戏)

@Ta 2020-10-31发布,2021-02-01修改 6054点击

适用范围

以下教程适用于以下桌面环境:

  1. 使用GNOME桌面
  2. 使用GDM显示管理器
  3. 安装了Nvidia闭源驱动

不适用以下桌面环境:

  1. 使用LightDM或者其他显示管理器
  2. 不使用GNOME桌面,比如使用的是KDE、DDE等
  3. 未安装Nvidia闭源驱动

已知问题

  • 由于Nvidia闭源驱动还没有支持XWayland 3D加速,并且Wine也还没有原生支持Wayland(只能使用XWayland渲染),所以目前Wine游戏助手无法在这种情况下启动3D游戏。我给出这个方案只是为了探索Wayland的支持情况。

转自 https://medium.com/@alex285/how-to-enable-eglstreams-on-fedora-29-30-gnome-nvidia-wayland-fa28a67663bf ,有改动。

我在Arch Linux中测试成功,驱动安装的是AUR包nvidia-beta


在使用N卡闭源驱动时,GDM会自动禁用GNOME的Wayland支持,但是可以通过以下步骤启用:

  1. sudo vim /etc/gdm/custom.conf
    确保WaylandEnable=false被注释(前面有#),如果前面没有#则加一个#
[daemon]
# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false
  1. 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" ……前面加#没效果,就在所有行前面都加#

  1. sudo vim /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT="……"的引号里面,末尾添加空格和nvidia-drm.modeset=1
GRUB_CMDLINE_LINUX_DEFAULT="原有的参数 nvidia-drm.modeset=1"
  1. 运行sudo update-grub命令,或者其他适用于你的发行版的grub.cfg更新命令,比如sudo grub-mkconfig -o /boot/grub/grub.cfg

  2. 重启以使配置生效,然后在选择用户后,点击右下角的齿轮图标。如果你看到里面有“运行于 Xorg 的 GNOME”,说明Wayland已启用,选择另外两个都是Wayland会话。如果没有和Xorg有关的条目,则Wayland可能未启用。

  3. 登陆后,运行以下命令确认是否处于Wayland会话:

    env | grep XDG

    如果看到XDG_SESSION_TYPE=wayland则处于Wayland会话。
    如果是XDG_SESSION_TYPE=x11则处于Xorg会话。

  4. 注意:由于Nvidia闭源驱动还没有支持XWayland 3D加速,并且Wine也还没有原生支持Wayland(只能使用XWayland渲染),所以目前Wine游戏助手无法在这种情况下启动3D游戏。我给出这个方案只是为了探索Wayland的支持情况。

  5. 如果想打游戏,请注销并选择运行于 Xorg 的 GNOME。如果坚持使用Wayland会话,则很多游戏都无法启动,或者你需要使用wine-wayland

回复列表(0|隐藏机器人聊天)
帖子没有回复
添加新回复
回复需要登录