Behebung von Wayland-Problemen
|
Diese Seite wurde automatisch aus dem Wiki konvertiert. Der Text wurde für die Veröffentlichung hier im Fedora Docs Portal überarbeitet, aber noch nicht auf technische Korrektheit geprüft. Wahrscheinlich
Reviews for technical accuracy are greatly appreciated. If you want to help, see the README file in the source repository for instructions. Pull requests accepted at https://forge.fedoraproject.org/docs/quick-docs Sobald die Seite korrekturgelesen und korrigiert ist, entfernen Sie diese Notiz. |
Wayland ist als einfacherer Ersatz für X11 gedacht. Wayland verändert die Architektur von Linux-Desktopumgebungen grundlegend. Im Gegensatz zu X11 gibt es in Wayland keinen dedizierten Server. Die Aufgaben, die zuvor zwischen Anwendung, Toolkit, X-Server und Fenstermanager stattfanden, werden nun zwischen Anwendung, Toolkit und dem Wayland-Compositor aufgeteilt. Dieser übernimmt Compositing, Eingabe, Fensterverwaltung usw. Anwendungen und Toolkits sind nun für ihr eigenes Rendering und ihre clientseitigen Dekorationen verantwortlich. Probleme treten daher üblicherweise zwischen dem Toolkit (zum Beispiel GTK+) und dem Wayland-Compositor (zum Beispiel Mutter) auf.
Mehr über Wayland erfahren Sie auf der GNOME-Wikiseite Wayland-Initiative. Informationen zum aktuellen Stand der Wayland-Funktionen finden Sie auf der Seite Wayland-Funktionen.
Wayland-Probleme identifizieren
Läuft bei Ihnen eine Wayland-Sitzung?
In GNOME finden Sie auf dem Anmeldebildschirm ein Zahnradsymbol. Damit können Sie sich entweder in einer Wayland-Sitzung (einfach GNOME genannt, die Standardeinstellung) oder in einer älteren X11-Sitzung (GNOME on Xorg) anmelden. Bei einem Benutzerkonto ohne Passwort wird das Zahnradsymbol nicht angezeigt; es erscheint nur bei der Passwortabfrage. Verwenden Sie das Zahnradsymbol, um den Sitzungstyp festzulegen. Wenn Sie Ihre Sitzung anders starten möchten, lesen Sie fortgeschrittene Techniken zum Ausprobieren von Wayland.

KDE bietet die Möglichkeit, eine verschachtelte Wayland-Sitzung innerhalb einer X11-Sitzung auszuführen. Dazu müssen Sie das Paket kwin-wayland installieren und anschließend dieser Anleitung folgen. Derzeit scheint es keine direkte Unterstützung für die Ausführung einer vollständigen Wayland-Sitzung zu geben.
Andere Desktop-Umgebungen sind derzeit nicht in der Lage, eine Wayland-Sitzung auszuführen.
Den Sitzungstyp zur Laufzeit identifizieren
Wenn Sie herausfinden möchten, welche Art von Sitzung Sie gerade ausführen, ohne sich ab- und wieder anzumelden, können Sie dies auf verschiedene Weise tun:
-
Bei einer Wayland-Sitzung sollte die Variable
WAYLAND_DISPLAYgesetzt sein, bei einer X11-Sitzung sollte sie nicht gesetzt sein:$ echo $WAYLAND_DISPLAY wayland-0
-
loginctlliefert Ihnen diese Informationen. Führen Sie zunächstloginctlaus und ermitteln Sie Ihre Sitzungsnummer (diese sollte eine ganze Zahl sein, der Ihr Benutzername und Ihr zugewiesener Sitzplatz zugeordnet sind). Sehen Sie sich dann den Sitzungstyp an (x11oderwayland):$ loginctl show-session <IHRE_NUMMER> -p Type Type=x11
Wenn Sie eine X11-Sitzung und keine Wayland-Sitzung verwenden, hängen Ihre Probleme nicht mit Wayland zusammen. Es handelt sich entweder um einen Fehler in der betreffenden Anwendung oder in X11 selbst. Siehe Anleitung zur Fehlerbehebung bei Xorg-Problemen.
Läuft Ihre Anwendung nativ unter Wayland oder verwendet sie XWayland (die X11-Kompatibilitätsschicht)?
Es ist wichtig zu wissen, ob es sich bei der problematischen Anwendung um eine native Wayland-Anwendung handelt oder ob sie über XWayland läuft, wodurch ältere Anwendungen weiterhin auf dem Xorg-Server ausgeführt werden können, aber in einer Wayland-Sitzung angezeigt werden.
Es gibt mehrere Möglichkeiten, um festzustellen, ob eine Anwendung Wayland oder XWayland verwendet:
-
Wählen Sie das Fenster mit
xwininfooderxpropaus. Führen Sie Folgendes aus:$ xwininfo
Unter X11 sollte sich Ihr Mauszeiger in ein Kreuz verwandeln; unter Wayland scheint dies nicht der Fall zu sein. Klicken Sie nun in das Fenster der zu testenden Anwendung. Wenn der Befehl
xwininfoabgeschlossen ist (die Fenstereigenschaften sollten im Terminal angezeigt werden), läuft die zu testende Anwendung unter XWayland. Falls nichts passiert (der Befehlxwininfowartet weiterhin auf die Auswahl eines Fensters), läuft die Anwendung unter Wayland (Sie können den Befehl mitStrg+Cbeenden). + Sie können auch den Befehlxpropmit denselben Anweisungen verwenden. -
XWayland-Anwendungen werden in der Ausgabe von
xlsclientsaufgelistet. Führen Sie Folgendes aus:$ xlsclients
Diese Liste ist jedoch nicht immer ganz zuverlässig, einige Anwendungen könnten fehlen.
-
Sie können versuchen, die Anwendung auszuführen, während Sie die Umgebungsvariable
DISPLAYdeaktivieren:$ DISPLAY='' Befehl
Wenn die Anwendung einwandfrei läuft, sollte sie Wayland nativ verwenden.
-
Sie können die Anwendung mit der Umgebungsvariablen
WAYLAND_DEBUG=1ausführen:$ WAYLAND_DEBUG=1 Befehl
Wenn Sie eine große Menge an Ausgaben sehen (im Vergleich zu einem Standardlauf), verwendet die Anwendung nativ Wayland.
-
Unter GNOME können Sie dies mithilfe des integrierten Werkzeugs Looking Glass feststellen. Drücken Sie
Alt+F2und führen Sie folgenden Befehl aus:lg
Klicken Sie oben rechts auf Fenster und wählen Sie das gewünschte Fenster durch Anklicken des Namens aus. Steht in der ersten Zeile
MetaWindowWayland, läuft diese Anwendung unter Wayland. Steht dortMetaWindowX11, läuft diese Anwendung unter X11.
Wenn Sie das Problem in einer XWayland-Anwendung identifiziert haben, versuchen Sie, es in einer Standard-X11-Sitzung zu reproduzieren. Tritt es dort ebenfalls auf, liegt es nicht an Wayland, sondern an einem Fehler entweder in der betreffenden Anwendung oder im Xorg-Server, siehe Xorg-Probleme debuggen. Tritt das Problem nur unter XWayland, nicht aber in einer X11-Sitzung auf, sollte es dennoch für den Xorg-Server gemeldet werden, da XWayland (als Teilpaket xorg-x11-server-Xwayland) darin enthalten ist.
Identifizieren der problematischen Komponente
Wayland selbst ist ein Protokoll, und das Problem liegt selten im Protokoll selbst. Vielmehr liegt das Problem wahrscheinlich in der Anwendung, ihrem Toolkit oder im Compositor.
Die wichtigsten Wayland-kompatiblen Toolkits sind:
-
GTK+ 3 – Standardanwendungen in der GNOME-Umgebung verwenden fast ausschließlich dieses Toolkit. Bitte beachten Sie, dass Anwendungen, die das ältere GTK+ 2 verwenden, nicht Wayland-kompatibel sind.
-
QT 5 – Viele Anwendungen in der KDE-Umgebung nutzen dieses Toolkit. Bitte beachten Sie, dass Anwendungen, die ältere QT-4-Versionen verwenden, nicht Wayland-kompatibel sind.
Die bekanntesten Wayland-Compositors sind:
Tests unter verschiedenen Compositoren
Wenn Sie ein Problem mit einer Wayland-App feststellen, ist es sehr hilfreich zu wissen, ob das Problem nur bei einem einzelnen Compositor auftritt (in diesem Fall handelt es sich wahrscheinlich um einen Compositor-Fehler) oder bei mehreren Compositors (in diesem Fall handelt es sich wahrscheinlich um einen Anwendungs-/Toolkit-Fehler).
Bitte starten Sie Ihre Sitzung mit dem Referenz-Compositor Weston und versuchen Sie, das Problem zu reproduzieren. Sie können Weston entweder in einem eingebetteten Fenster oder als vollständige Sitzung ausführen. Installieren Sie zunächst das Paket (viele nützliche Informationen finden Sie in der zugehörigen Handbuchseite):
$ sudo dnf install weston
Erstellen Sie anschließend eine Konfigurationsdatei, die festlegt, dass XWayland-Unterstützung in Ihren Weston-Sitzungen aktiviert werden soll. Erstellen Sie die Datei ~/.config/weston.ini mit folgendem Inhalt:
[core] + xwayland=true
Sie können Weston nun entweder als eingebettetes Fenster oder als vollständige Sitzung starten.
-
Um ein eingebettetes Weston-Fenster zu starten, führen Sie folgenden Befehl im Terminal aus:
$ weston
Es sollte sich ein Weston-Fenster öffnen, in dessen oberer linker Ecke ein Terminalsymbol angezeigt wird. Über dieses Symbol können Sie ein Terminal öffnen und von dort aus Anwendungen und andere Befehle mit Weston ausführen. Beenden Sie den Compositor, indem Sie einfach das Fenster schließen oder den Prozess
westonbeenden. -
Um eine vollständige Weston-Sitzung zu starten (nicht innerhalb einer anderen X11- oder Wayland-Sitzung), wechseln Sie zu einem freien virtuellen Terminal (Strg+Alt+Fx) und führen Sie Folgendes aus:
$ weston-launch
Sie können die Sitzung durch Drücken der Tastenkombination Strg+Alt+Rücktaste beenden.
Wenn Sie das Problem mit Weston reproduzieren können, melden Sie es bitte für die Anwendung oder deren Toolkit (gtk+, qt usw.). Andernfalls melden Sie es bitte für den Compositor, den Ihre Umgebung verwendet (mutter, kwin usw.). Tritt das Problem nur bei XWayland-Anwendungen, nicht aber bei nativen Wayland-Anwendungen auf, melden Sie es bitte beim Xorg-Server.
Den Fehler melden
Aktuelle Software verwenden
Bevor Sie den Fehler melden, stellen Sie bitte sicher, dass Sie die aktuellste Software verwenden. Prüfen Sie außerdem, ob Systemaktualisierungen ausstehen:
$ sudo dnf update
Falls solche Aktualisierungen verfügbar sind (und die verfügbaren Aktualisierungen plausiblerweise mit den Komponenten zusammenhängen, bei denen Sie Probleme feststellen), aktualisieren Sie bitte das System und überprüfen Sie, ob das Problem weiterhin besteht oder bereits behoben wurde.
Nach ähnlichen Fehlerberichten suchen
Um doppelte Meldungen und unnötige Fehlersuche zu vermeiden, suchen Sie bitte zunächst in den vorhandenen Berichten. Die wichtigsten Probleme sind unter Bekannte Probleme, häufige Beschwerden, grundlegende Änderungen aufgeführt. Sollten Sie dort nicht fündig werden, suchen Sie bitte weiter. Probleme im Zusammenhang mit Wayland finden Sie höchstwahrscheinlich hier:
-
[https://bugzilla.gnome.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=NEEDINFO&component=Backend%3A%20Wayland&component=wayland&list_id=74680&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=gtk%2B&product=mutter&query_based_on=&query_format=advanced mutter/wayland und GTK+/wayland im GNOME Bugzilla]
-
Wayland-bezogene Problemverfolgung in Red Hat Bugzilla (KDE-Problemverfolgung)
-
[https://bugzilla.redhat.com/buglist.cgi?classification=Fedora&component=wayland&list_id=4118943&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=Fedora&query_based_on=&query_format=advanced&resolution=--- Wayland im Red Hat Bugzilla]
-
[https://bugs.freedesktop.org/buglist.cgi?list_id=561109&order=changeddate%20DESC%2Cbug_status%2Cpriority%2Cassigned_to%2Cbug_id&product=Wayland&query_based_on=&query_format=advanced&resolution=--- Wayland im Freedesktop Bugzilla]
-
Google-Suche
Einen Fehlerbericht einreichen
Nachdem Sie die Komponente identifiziert haben, für die das Problem (höchstwahrscheinlich) verantwortlich ist, und keinen bestehenden Bericht darüber gefunden haben, gibt es mehrere Stellen, an denen Sie es melden können:
-
Red Hat Bugzilla – empfohlen für Probleme im Zusammenhang mit Wayland selbst, dem Weston-Compositor, Nicht-GNOME-Anwendungen, dem KDE-Projekt und dem Qt-Toolkit
-
GNOME Bugzilla - empfohlen für Probleme im Zusammenhang mit dem Mutter-Compositor, dem GTK+-Toolkit und Anwendungen des GNOME-Projekts (die meisten Standardanwendungen in Fedora Workstation)
Wenn Sie das Problem melden, blockieren Sie bitte unseren Bugtracker, damit wir einen guten Überblick über die Fehler in den verschiedenen Komponenten erhalten. Aktivieren Sie in Ihrem Bugreport die Option Blocks: WaylandRelated oder Blocks: KDEWaylandRelated (möglicherweise müssen Sie die erweiterten Felder aktivieren, um das Feld Blocks: zu sehen). Dadurch wird einer der folgenden Bugtracker blockiert, je nachdem, wo Sie den Fehler gemeldet haben:
Informationen, die Sie in Ihrem Fehlerbericht angeben sollten
-
Das Systemjournal. Da es keinen dedizierten Server wie den X11-Server gibt, stammen die meisten wichtigen Informationen vom Wayland-Compositor und den Anwendungen. All das sollte heutzutage im Systemjournal gespeichert werden. Sie können ein vollständiges Journal seit dem letzten Systemstart wie folgt speichern:
$ journalctl -ab > journal.log
Sie können die Datei auch bearbeiten und anhand der Zeitstempel alles entfernen, was lange vor dem Auftreten des Problems geschah, um das Protokoll übersichtlicher zu gestalten. * Falls Ihr System abgestürzt ist oder nicht mehr reagiert hat und Sie es neu starten mussten, können Sie das Journal vom vorherigen Neustart mit
journalctl -a -b -1anzeigen. -
Die Debug-Ausgabe von Wayland. Falls Sie das Problem reproduzieren können, führen Sie die problematische Anwendung bitte wie folgt aus:
$ WAYLAND_DEBUG=1Befehl |& tee debug.out
Es sollten zahlreiche Ausgaben erscheinen. Dies umfasst die gesamte Kommunikation zwischen der Anwendung und dem Compositor.
-
Informationen darüber, ob dasselbe Problem auftritt, wenn Sie die Anwendung mit XWayland anstatt mit Wayland ausführen. Bei GTK+ 3-Anwendungen können Sie eine native Wayland-Anwendung wie folgt zwingen, mit XWayland ausgeführt zu werden:
$ GDK_BACKEND=x11 Befehl
Umgekehrt kann man auch eine XWayland-Anwendung dazu zwingen, mit Wayland zu laufen (falls sie nur experimentelle Unterstützung bietet):
$ GDK_BACKEND=wayland Befehl
QT 5-Anwendungen laufen standardmäßig mit XWayland. Sie können die Verwendung des Wayland-Backends erzwingen:
$ QT_QPA_PLATFORM=wayland-egl Befehl
Das alles gilt nur für GTK+ 3- und QT 5-Anwendungen.
-
Die Hardwarebeschreibung ist für einige hardwarebezogene Fehler hilfreich:
$ lspci -nn > lspci.out
-
Die Paketversionen. Sie können die Liste und die Versionen aller installierten Pakete wie folgt abrufen:
$ rpm -qa | sort > packages.out
-
Die üblichen Informationen, die jeder Fehlerbericht enthalten sollte.
Die gnome-shell debuggen
Falls gnome-shell nicht mehr reagiert und sich aufhängt, ist es sehr hilfreich, einen Backtrace des zugehörigen Prozesses zu erstellen und dem Bericht beizufügen. Wechseln Sie in diesem Fall nach Möglichkeit zu einer anderen virtuellen Konsole (Strg+Alt+F3 bis F7) oder melden Sie sich per SSH an. Installieren Sie zuvor die Debug-Symbole:
$ sudo dnf debuginfo-install `rpm -q gnome-shell`
Hängen Sie dann den gdb-Debugger an Ihren gnome-shell-Prozess an:
$ gdb -p `pgrep -U $(id -un) -x gnome-shell` ... (gdb) set logging on (gdb) thread apply all backtrace full ... press Enter until the whole backtrace is displayed ... (gdb) quit
Der Backtrace sollte in der Datei gdb.txt gespeichert sein.
Mutter debuggen
Sie können Mutter (verwendet in gnome-shell) debuggen, indem Sie die Umgebungsvariablen setzen. Diese müssen vor dem Start von gnome-shell festgelegt werden. Wenn Sie sich also von GDM aus bei GNOME anmelden möchten, müssen Sie ein Wrapper-Skript erstellen, das von einer Desktop-Datei in /usr/share/wayland-sessions aufgerufen wird.
FIXME: Das Einfügen des Wrapper-Skripts und der Desktop-Datei hier wäre hilfreich.
Bekannte Probleme, häufige Beschwerden, grundlegende Änderungen
Hier listen wir wichtige Probleme auf, die bekanntermaßen fehlerhaft sind, noch nicht implementiert wurden oder sich absichtlich anders verhalten als reguläre X11-Anwendungen. Bitte beachten Sie auch Wayland-Funktionen, wo alle aktuell fehlenden oder in Entwicklung befindlichen Funktionen und deren Details aufgelistet sind.
Um alle bekannten Probleme zu sehen, schauen Sie sich die Bugzilla-Berichte an, wie in Nach ähnlichen Fehlerberichten suchen erwähnt.
Grafische Anwendungen können nicht als Root im Terminal ausgeführt werden
Grafische Anwendungen können nicht über das Terminal mit su oder sudo als Root-Benutzer gestartet werden. Anwendungen, die Polkit verwenden, um Administratorrechte nur für bestimmte Operationen und bei Bedarf anzufordern, sind davon nicht betroffen (sie werden nicht sofort als Root gestartet). Die Diskussion über die beste Vorgehensweise ist noch im Gange; siehe Bug 1274451 und Diskussion „On running gui applications as root“ in der Mailingliste „fedora-devel“.
Viele bekannte X11-Dienstprogramme funktionieren nicht
Erfahrene Benutzer kennen eine Vielzahl von X11-bezogenen Dienstprogrammen wie xkill, xrandr, xdotool und xsel. Diese Werkzeuge funktionieren entweder nicht unter Wayland oder nur mit XWayland-Anwendungen, nicht aber mit Wayland-Anwendungen. Für einige dieser Werkzeuge gibt es möglicherweise Alternativen, die ähnliche Aufgaben erfüllen.
FIXME: Wayland-kompatible Alternativen für gängige X11-Werkzeuge hinzufügen
Spiele und andere Anwendungen können die Bildschirmauflösung nicht ändern
Anwendungen können die Bildschirmauflösung nicht mehr ändern. Dies wurde üblicherweise von Spielen genutzt, um die Performance zu steigern. Wayland-basierte Spiele verwenden einen anderen Ansatz – die Skalierung der Ausgabe. Für X11-Spiele (die über XWayland laufen) ist diese Lösung jedoch nicht verfügbar. Dies führt zu unterschiedlichem Verhalten, je nachdem, wie das Spiel programmiert ist: Es kann beispielsweise in der Desktop-Auflösung bleiben, als kleines, zentriertes Bild mit schwarzen Balken dargestellt werden, beim Start abstürzen oder andere Fehler auftreten. Siehe Bug 1289714.
Bei manchen Spielen können Sie das Problem umgehen, indem Sie vor dem Spielstart die Bildschirmauflösung manuell anpassen, falls dies unbedingt nötig ist. Das hilft aber nicht immer.
Bildschirmaufnahmen sind mit den üblichen Anwendungen nicht möglich
Eine der Besonderheiten von Wayland ist sein Sicherheitsdesign, das den Benutzer vor schädlichen Anwendungen schützt. Anwendungen können nicht mehr den gesamten Bildschirminhalt einsehen und Sie ausspionieren. Das bedeutet aber auch, dass Sie keine gängigen Anwendungen (wie zum Beispiel Shutter oder gtk-recordmydesktop) ausführen und damit Bildschirmfotos oder Bildschirmaufzeichnungen Ihres Desktops erstellen können – diese Anwendungen sehen nur ihr eigenes Fenster, aber nichts anderes (oder sie stürzen möglicherweise sofort ab). Für solche Aktionen müssen Systemanwendungen (vertrauenswürdige Anwendungen) verwendet werden.
In GNOME können Sie mit dem Werkzeug „Bildschirmfotos“ (verfügbar in der Übersicht, über die Taste „Druck“ oder als Befehl gnome-screenshot) ein Bildschirmfoto des gesamten Desktops oder eines bestimmten Fensters erstellen. Mit der Tastenkombination „Strg+Alt+Umschalt+R“ starten Sie eine Videoaufnahme des gesamten Desktops (diese beenden Sie durch erneutes Drücken derselben Tastenkombination; eine Anzeige in der oberen rechten Ecke signalisiert das Ende der Aufnahme; standardmäßig stoppt sie nach 30 Sekunden automatisch). Die Bildschirmaufnahme finden Sie unter ~/Videos. Alternativ können Sie für Bildschirmaufnahmen auch die GNOME-Shell-Erweiterung EasyScreenCast verwenden.
Der Mauszeiger ruckelt oder läuft verzögert unter Last
Wenn Ihr Computer stark ausgelastet ist, kann die Mauszeigerbewegung ruckartig werden (kurzzeitig an einer Stelle verharren und dann blitzschnell an eine andere Stelle springen). Dies ist wahrscheinlich auf langsamen Systemen oder Systemen mit weniger CPU-Kernen stärker spürbar. Siehe Bug 745032.
Tastatureingaben werden manchmal schnell wiederholt
Es gibt einen seltenen Fehler: Beim Drücken einer Taste zum Eingeben eines Buchstabens werden mehrere Kopien des Buchstabens angezeigt. Siehe Bug 757942 und Bug 777693.
Nicht alle Tasteneingaben können an einen fernen Desktop oder eine virtuelle Maschine gesendet werden
Manche Anwendungen leiten sämtliche Eingaben, einschließlich systemspezifischer Tastenkombinationen wie Strg oder Strg, an ein entferntes System weiter. Dies betrifft hauptsächlich Remote-Desktop-Betrachter wie vncviewer oder Manager für virtuelle Maschinen wie virt-manager oder boxes. Unter Wayland können einige dieser Tastenkombinationen nicht abgefangen werden und werden daher auf dem Hostsystem und nicht auf dem entfernten/Gastsystem verwendet. Siehe Bug 1285770.
Want to help? Learn how to contribute to Fedora Docs ›