Wie man Wayland auf einer NVIDIA GPU zum Laufen bringt

Wayland erfordert, dass die NVIDIA-GPU Modesetting aktiviert hat. Um das zu erreichen, müssen Sie die NVIDIA-Treiber zu den mkinitcpio-Modulen hinzufügen und der Kernel-Flag nvidia-drm.modeset=1 hinzufügen

Hinzufügen der NVIDIA mkinitcpio-Module

Um die benötigten NVIDIA-Module nvidia nvidia_modeset nvidia_uvm nvidia_drm zu den mkinitcpio-Modulen hinzuzufügen, müssen Sie /etc/mkinitcpio.conf bearbeiten, indem Sie sudo nano /etc/mkinitcpio.conf ausführen. In dieser Datei sollte es eine Zeile geben, die wie folgt aussieht:

MODULES=()

fügen Sie die Module in die Klammern ein, die Modulnamen werden durch Leerzeichen getrennt, am Ende sollte die Zeile wie folgt aussehen:

MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)

Um die Datei zu speichern, drückt man CTRL+O und zum Beenden CTRL+X Nun wollen Sie das initramfs erzeugen:

sudo mkinitcpio -P

Hinzufügen der Kernel-Flags

Um der Kernel-Flag zu Grub hinzuzufügen, müssen Sie /etc/default/grub bearbeiten, indem Sie sudo nano /etc/default/grub ausführen, Sie sollten eine Zeile finden, die wie folgt aussieht:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet"

Sie müssen nvidia-drm.modeset=1 an diese Zeile anhängen, so dass sie wie folgt aussehen würde:

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet nvidia_drm.modeset=1"

Genau wie bei den mkinitcpio-Modulen müssen Sie zum Speichern und Beenden erst CTRL+O und dann CTRL+X drücken. Sobald Sie den Kernel-Parameter hinzugefügt haben, müssen Sie die Grub-Konfiguration neu generieren, um die Kernel-Flag-Änderungen widerzuspiegeln; dazu müssen Sie folgendes ausführen

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

Dies generiert die Grub-Konfiguration und speichert sie in /boot/grub/grub.cfg

Zusätzliche Schritte für GNOME und Onyx

GDM verwendet einige Chipsatz-abhängige [udev-Regeln] (https://wiki.archlinux.org/title/Udev), um festzustellen, ob es die Verwendung von Xorg erzwingen soll, anstatt Sie Wayland verwenden zu lassen. Diese udev-Regeln können mit folgendem Befehl deaktiviert werden:

Entfernen von gdm udev, das Wayland deaktiviert

GDM verwendet einige Chipsatz-abhängige [udev-Regeln] (https://gitlab.gnome.org/GNOME/gdm/-/blob/main/data/61-gdm.rules.in), um festzustellen, ob es die Verwendung von Xorg erzwingen soll, anstatt Ihnen die Verwendung von Wayland zu ermöglichen. Wenn Sie Wayland zwangsweise aktivieren wollen, führen Sie diesen Befehl aus.

sudo ln -s /dev/null /etc/udev/rules.d/61-gdm.rules

Dieser Befehl sollte die udev-Regeln von GDM mit nichts verknüpfen. Die Regeln in /etc/udev/rules.d/ sollten die Regeln in /usr/lib/udev/rules.d überschreiben (die vom Paket selbst ausgeliefert und von Ihrem Paketmanager verwaltet werden). Danach starten Sie neu und GNOME Wayland sollte nun funktionieren!

Neustart

Wenn Sie alle Schritte durchlaufen haben, d.h. wenn Sie:

  • die mkinitcpio-Module hinzugefügt haben
  • das initcpio-Modul erzeugt haben
  • die Kernel-Flags zu Grub hinzugefügt haben
  • die Grub-Konfiguration neu generiert haben
  • optional die udev-Regeln deaktiviert haben

Sie sollten nun Wayland verwenden können! Starten Sie einfach neu und Sie sollten in der Lage sein, sich in eine Wayland-Sitzung einzuloggen.

Wenn es immer noch nicht funktioniert, unterstützt Ihre GPU Wayland mit den proprietären NVIDIA-Treibern möglicherweise nicht. Es gibt keine andere Lösung als die Verwendung des nouveau-Treibers, die leider nicht so gut funktioniert wie die proprietären NVIDIA-Treiber.