如何让 Wayland 在 Nvidia 显卡上工作
尽管 Nvidia 理论上自 2021 年底发布驱动程序以来一直对 Wayland 给予全力支持,但道路并不一定一帆风顺。关于它如何与大多数人使用的组件(例如 XWayland)交互,还有很多工作要做。它需要在用户环境和内核中设置变量来导航系统并正确单击内容。
这并不是说一旦你让 Wayland 在 Nvidia 显卡上工作,这种体验就不值得了。如果您遵循本指南,您在 Nvidia 中的体验将几乎与在 X 中一样流畅。
也有帮助:如果您的 GPU 存在其他问题,请尝试这些常见的显卡修复方法。
内容
- 不要卸载 Xorg
- 1. 设置您的环境
- 2. (Arch Linux) 构建您的 Init Ramdisk
- 3.启用直接渲染管理器
- 您的发行版上的 Wayland 支持
- 经常问的问题
不要卸载 Xorg
首先,不要卸载 Xorg 或任何使用它的桌面环境!为了让您的体验更轻松、减少挫败感,最好有一个安全的选择可以依靠。现在将 X 视为您的“安全模式”,以防在此过程中出现任何问题。我们在本指南中所做的操作不会影响 Xorg。
1. 设置您的环境
有一些环境变量可以让 Wayland 在 Nvidia 显卡上工作。由于这里没有统一的标准,我们将非常通用地进行设置,以确保 Nvidia 不会对您怒目而视。
请按照以下步骤设置环境:
- 将您的环境备份到您的主目录:
sudo cp /etc/environment ~/environment.bak- 打开您的通用环境文件:
sudo nano /etc/environment- 如果您计划使用 Qt 应用程序(通常会有一些),请将此行添加到文件中的任意位置:
QT_QPA_PLATFORMTHEME="wayland;xcb"- 添加以下环境变量,以便 Nvidia 可以强制使用 GBM 后端(与绝大多数 Linux 环境兼容)并启用您可能需要的其他一些功能,即使它们可能尚未安装:
GBM_BACKEND=nvidia-drm
__GLX_VENDOR_LIBRARY_NAME=nvidia
ENABLE_VKBASALT=1
LIBVA_DRIVER_NAME=nvidia- 由于硬件光标渲染在某些环境中可能会失败,因此还有一个可选变量。仅当您最终测试 Wayland 时,您在屏幕上看不到光标,才需要执行此操作。
然而,添加这个并稍后删除它来测试没有它的东西并没有什么问题:
WLR_NO_HARDWARE_CURSORS=1须知:您可以使用我们的指南修复 Fedora 中的 Wayland GDM 问题。
2. (Arch Linux) 构建您的 Init Ramdisk
大多数流行的发行版都会使用“初始 ramdisk”(initramfs) 启动,它将临时文件系统加载到 RAM 中(因此称为“ramdisk”),以初始化启动过程并准备内核发挥其魔力,让您启动并启动跑步。
在这个初始 ramdisk 中,我们必须加载 Nvidia 的各种组件,包括在内核中加载显示分辨率的方法。这很重要,因为 Wayland 简化了帧缓冲区并更接近内核进行通信。
在 Ubuntu 和 Fedora 等流行发行版中,Nvidia 不应该遇到问题,因为系统的设置方式已经使 initramfs 不再区分它加载的模块。然而,Arch 的模块化结构将要求手动加载特定模块。
这个过程并不像听起来那么令人生畏。只需仔细执行以下步骤:
- 编辑您的初始 ramdisk 配置(确保首先创建备份):
sudo nano /etc/mkinitcpio.conf- 在
MODULES=()行下的括号之间添加以下内容:
nvidia nvidia_modeset nvidia_uvm nvidia_drm
如果括号之间已经包含此处未列出的其他模块,请将这些模块附加到末尾。如果您已经看到随附的一些 Nvidia 模块,请添加列表中缺少的内容。
- 为所有
initramfs映像重新生成初始 ramdisk(这就是-P标志的用途):
sudo mkinitcpio -P您应该会看到大量有关“缺少固件”的可怕警告。忽略那些。这种情况通常会发生,无需担心。这仅在您无法使用的硬件缺少固件包的特殊情况下才有用。
提示:某些游戏可能会使您的处理器超负荷,但您可以快速修复 Linux 中的高 CPU 使用率。
3.启用直接渲染管理器
Linux 的直接渲染管理器 (DRM) 允许内核与 GPU 一起工作。为了让 Nvidia 和 Wayland 和谐相处,我们必须确保内核在引导加载程序的内核参数中使用 Nvidia 的 DRM 模式设置:
- 编辑默认的 GRUB 配置(再次强调,始终确保存在备份):
sudo nano /etc/default/grub- 查找以
GRUB_CMDLINE_LINUX_DEFAULT开头的行。如果它不存在(例如,Fedora 中不存在),请创建它,如下所示:GRUB_CMDLINE_LINUX_DEFAULT=""。 - 在引号内添加以下内容:
nvidia-drm.modeset=1- 更新 Grub 的配置:
在基于 Ubuntu/Debian/Mint 的所有内容中:
sudo update-grub在 Fedora/RHEL 中:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg一切都基于 Arch:
sudo grub-mkconfig -o /boot/grub/grub.cfg一切完成后,您的系统将更轻松地在 Nvidia 硬件上运行 Wayland!
后续步骤: 现在 Wayland 可以工作了,您可以对显卡进行压力测试。
您的发行版上的 Wayland 支持
在 Ubuntu、Fedora 和其他一些精选发行版中,一旦升级到最新版本的软件,您就可以让 Wayland 在 Nvidia 显卡上工作。自 22.04 版本以来,Ubuntu 一直将 Wayland 作为其修改后的 GNOME 桌面的默认会话,而 Fedora 这样做的时间比这要长得多。考虑确保您运行的是最新版本的发行版。
其他的,比如 Linux Mint,在运行 Wayland 时会遇到麻烦,因为检修它们附带的桌面环境并不是优先考虑的事情。但是,这并不能阻止您安装替代操作系统。 GNOME 提供开箱即用的支持,而 KDE Plasma 可能需要额外的软件包。
基于 Debian/基于 Ubuntu 的系统
如果您的系统运行的是 GNOME,那么只要您保持最新状态,它就已经支持 Wayland。如果您没有 GNOME,请安装它:
sudo apt install gnome对于 KDE Plasma,您必须分别安装桌面环境和 Wayland 合成器:
sudo apt install kde-standard plasma-workspace-wayland就是这样!重新启动后,您就可以在显示管理器中使用 Wayland。
基于 Arch 的系统
与提供 GNOME 桌面环境的任何其他发行版一样,将其安装在 Arch Linux 上将自动支持 Wayland:
sudo pacman -S gnome安装 KDE Plasma 也相当简单:
sudo pacman -S plasma-meta plasma-wayland-session这些命令中的任何一个都会将 Wayland 包含在您的显示管理器中(更熟悉的是登录屏幕)。
请务必安装 XWayland:
sudo pacman -S xorg-xwayland安装完所有内容后,重新启动,然后使用登录屏幕选择所安装的桌面环境的 Wayland 支持版本。
经常问的问题
韦兰真的值得吗?
您可能会注意到,即使进行了所有这些更改,有些功能也无法正常工作。尽管 Nvidia 的许多问题已得到解决,但许多应用程序仍然存在与 Wayland 相关的小而烦人的兼容性问题。值得注意的是,Wayland 和您熟悉的许多应用程序都在持续积极开发中。大多数(如果不是全部)这些问题最终都会消失。
如果您对 Wayland 感到太沮丧,请切换回 X。不过,我建议不要卸载您的 Wayland 软件包,因为 X 正被越来越多的应用程序开发人员视为废弃软件。千载难逢,检查一下您的问题是否已经开始消失。
如果我的显示管理器不显示 Wayland 选项,我该怎么办?
尽管大多数显示管理器应该显示您最喜欢的桌面环境的 Wayland 协议实现,但这并不总是发生。解决此问题的方法是尝试另一个显示管理器。 KDE Plasma (SDDM) 和 GNOME (GDM) 附带的版本可以毫无问题地运行。 LightDM 也以工作完美而闻名。
图片来源:Pixabay。所有屏幕截图均由 Miguel Gomez 制作。




