【Linux】在Intel+nVIDIA双显卡的笔记本上强制启用Wayland

众所周知,nVIDIA对GNU/Linux的支持一直都很消极,这也引来了Linus Torvalds本人的竖中指抗议。曾经,在很长一段时间内,nVIDIA都是不支持Wayland的,直至近期才有了Wayland支持。然而,目前仍有不少发行版(例如我正在使用的Manjaro GNOME),在某些情况下不会在搭载nVIDIA显卡的设备上启用Wayland。

So nVIDIA, fxxk you. 🖕

——Linus Torvalds

为什么要使用Wayland呢?

  • Wayland对触摸板和触摸屏的支持更好
    Wayland原生支持多点触控(包括触摸板和触摸屏),因此可以更好地实现多指手势等功能——例如双指滚动页面/缩放、三指打开活动视图/切换桌面等。GNOME 40引入了全新的布局,加入了多种多指手势,使用体验非常流畅,很适合在笔记本使用。在浏览器中,若启用了Wayland,双指滚动会变得平滑(而不是模拟滚轮),双指捏合可以实现丝滑缩放。Xorg只能用触摸板和触摸屏模拟鼠标,而并没有原生的多点触控支持。
    GNOME Xorg会话也可以通过插件实现多指手势,但仅限于纯GTK程序,在浏览器和别的程序中仍然只有双指模拟滚轮(触摸板),没有双指捏合缩放、三指手势等功能。
  • 使用多显示器时,Wayland没有画面撕裂
    我为我的笔记本接了一台大显示器,两个屏幕一起用。但是,在Xorg下使用多显示器,会出现稳定的画面撕裂问题——画面会在相对固定的位置发生撕裂,如图所示。

    而Wayland就没有这个问题,整个画面都可以同步刷新。

如何在搭载nVIDIA显卡的设备上强制启用Wayland

修改GDM的配置

打开/etc/gdm/custom.conf,可以看到其中有这么一部分:

# Uncomment the line below to force the login screen to use Xorg
#WaylandEnable=false

这段预留代码原本是用于强制用Xorg显示登录屏幕的,但是我们还是可以取消注释这一行,并改为true。修改后的这一部分如下。

# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=true
实际上,修改这个并不会使GDM强制用Wayland显示登录界面。

清除GDM的udev规则,使GDM不要试图禁用Wayland会话

/usr/lib/udev/rules.d/61-gdm.rules这个文件定义了GDM应在何时自动禁用Wayland会话。

将这个文件复制到安全的地方,然后将原文件清空,留着一个空的rules文件。

 注意
若删除或移走此rules文件,在GDM更新时会重新放入一个有内容的rules文件,这就会导致Wayland再次被禁用。

修改grub,添加内核参数

打开/etc/default/grub文件,在“GRUB_CMDLINE_LINUX_DEFAULT”后添加“nvidia-drm.modeset=1”。

修改后,用root用户执行以下命令刷新grub引导菜单:

grub-mkconfig -o /boot/grub/grub.cfg

修改/etc/mkinitcpio.conf,加入显卡驱动

在MODULES的括号中加入nvidia nvidia_modeset nvidia_uvm nvidia_uvm nvidia_drm这几个模块,然后执行以下命令应用修改:

sudo mkinitcpio -P

至此,重启电脑即可使用Wayland打开GNOME会话。不过,我的设备用如上方法强制启用Wayland后,却无法再启动GNOME Xorg会话了。好在我目前暂时没使用只支持Xorg会话的程序,也就不需要Xorg会话了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇