如何讓 Wayland 在 Nvidia 顯卡上工作

如何讓 Wayland 在 Nvidia 顯卡上工作

儘管自 2021 年底發布驅動程序以來,Nvidia 理論上已經全力支持 Wayland,但道路並不一定一帆風順。關於它如何與大多數人使用的組件(如 XWayland)交互,還有很多工作要做。它需要在用戶環境和內核中設置變量來導航你的系統並正確地點擊東西。

這並不是說一旦你讓 Wayland 在 Nvidia 顯卡上工作,這種體驗就不值得了。如果您遵循本指南,您在 Nvidia 中的體驗將幾乎與在 X 中一樣流暢。

不要卸載 Xorg

首先,不要卸載 Xorg 或任何使用它的桌面環境!為了讓您的體驗更輕鬆,盡量減少挫敗感,有一個安全的選擇總是好的。現在將 X 視為您的“安全模式”,以防過程中出現任何問題。我們在本指南中所做的不會影響 Xorg。

1. 設置你的環境

有一些環境變量可以讓 Wayland 在 Nvidia 顯卡上工作。由於這裡沒有統一的標準,我們在設置方面會非常通用,以確保 Nvidia 不會對你怒目而視。

Nvidiawayland環境

請按照以下步驟設置環境:

  • 將您的環境備份到您的主目錄:

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=1LIBVA_DRIVER_NAME=nvidia

  • 由於硬件光標渲染在某些環境中可能會失敗,因此還有一個可選變量。僅當您最終測試 Wayland 時,您沒有在屏幕上看到光標時才需要這樣做。

但是,添加它並在以後刪除它以在沒有它的情況下進行測試沒有任何問題:

WLR_NO_HARDWARE_CURSORS=1

2. (Arch Linux) 構建你的初始化 Ramdisk

大多數流行的發行版將使用“初始 ramdisk”(initramfs)啟動,它將臨時文件系統加載到您的 RAM(因此稱為“ramdisk”)以初始化啟動過程並準備內核發揮其魔力並讓您啟動和跑步。

Nvidiawayland Mkinitcpio

在這個初始 ramdisk 中,我們必須加載 Nvidia 的各種組件,包括在內核中加載顯示分辨率的方法。這很重要,因為Wayland 簡化了幀緩衝區並更接近內核進行通信。

在像 Ubuntu 和 Fedora 這樣的流行發行版中,Nvidia 應該不會遇到問題,因為系統的設置方式已經使 initramfs 對加載的模塊的區分度降低了。然而,Arch 非常模塊化的結構將要求手動加載特定模塊。

這個過程並不像聽起來那麼可怕。只需仔細按照以下步驟操作:

  • 編輯您的初始 ramdisk 配置(確保先創建備份):

sudo nano /etc/mkinitcpio.conf

  • 在該行下方MODULES=(),括號之間,添加以下內容:

nvidia nvidia_modeset nvidia_uvm nvidia_drm

如果圓括號之間已經有其他未在此處列出的模塊,請將這些模塊附加在末尾。如果您已經看到一些包含的 Nvidia 模塊,請添加列表中缺少的模塊。

  • 為所有圖像重新生成初始 ramdisk initramfs(這就是-P標誌的用途):

sudo mkinitcpio -P

您應該會看到大量關於“缺少固件”的可怕警告。忽略那些。這通常會發生,無需擔心。這僅在您無法使用的硬件缺少固件包的小眾情況下才有用。

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

Nvidiawayland模式集
  • 更新 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 支持

在 Ubuntu、Fedora 和其他一些精選發行版中,一旦升級到最新版本的軟件,您就可以讓 Wayland 在 Nvidia 顯卡上工作。自 22.04 版以來, Ubuntu 一直將 Wayland 作為其修改後的 GNOME 桌面的默認會話,而 Fedora 這樣做的時間比這長得多。考慮確保您運行的是最新版本的發行版。

Nvidiawayland SDM

其他人,如 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 的所有屏幕截圖。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *