[[Vorlage(Archiviert)]] {{{#!vorlage Hinweis Die Entwicklung von Xgl wurde eingestellt, und seit Ubuntu 8.10 ist Xgl nicht mehr verfügbar. }}} {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Texteditor öffnen] [:Programme_starten: Ein Programm starten] [:Autostart: Automatischer Start von Programmen] [:GNOME_Konfiguration: GNOME Konfigurationseditor starten] }}} [[Inhaltsverzeichnis(2)]] ''Der Xgl-Server ist eine Implementierung des X-Window-Systems, der durch OpenGL hardwarebeschleunigt ist. Dieser befindet sich gegenwärtig in der Frühphase der Entwicklung. Die Entwicklung der Xgl-Architektur wurde Ende 2004 durch den Novell-Mitarbeiter David Reveman bekanntgegeben. Im Zuge dessen wurde die Programmstruktur stark umgestellt, um die Aufnahme zusätzlicher Grafiktreiber zu erleichtern. Xgl soll auf dem Linux-Desktop zusätzliche Effekte wie Transparenz, Schattierungen und Animationen ermöglichen, ohne den Prozessor stark zu belasten, da die 3D-Funktionen moderner Grafikkarten benutzt werden.'' (aus der [wikipedia:Xgl:Quelle]) ''Der Code von Xgl wurde aus dem X.org-Quelltextverwaltungssystem entfernt. Xgl wurde als vollwertiger X-Server entwickelt, der OpenGL zum Rendern verwendet. So wurden transparente Fenster und andere Desktopeffekte möglich. Die Konkurrenztechnik Aiglx gelangte jedoch zu einer größeren Verbreitung.'' (Stand: Mitte 2008, Quelle:[http://www.golem.de/0808/61533.html Golem] {de}) = Voraussetzungen = Um Xgl zu nutzen, benötigt man zwingend 3D-Beschleunigung, wogegen man AIGLX auch ohne diese einsetzen kann. Welche Hardware- bzw. genauer Grafikkartenanforderungen der Xgl-Server hat, kann auf der [:3D-Desktop:Übersichtsseite] nachgelesen werden. Bei Ubuntu Gutsy 7.10 reicht es für gewöhnlich, wenn man unter ''"System -> Systemverwaltung -> Verwaltung eingeschränkter Treiber"'' den proprietären Treiber aktiviert. = Installation = == Unter Gutsy == Folgendes Pakete muss installiert [1] werden: * '''xserver-xgl''' (''universe'', [2]) = Konfiguration unter Dapper = {{{#!vorlage Hinweis Unter Ubuntu Gutsy Gibbon 7.10 werden automatisch sämtliche Startskripte angelegt, das bedeutet die folgenden Schritte sind für diese Ubuntu-Version unrelevant. Direkt nach der Installation funktioniert der Xgl-Server, und man kann z.B. Compiz einfach über das Menü "Erscheinungsbild" aktivieren. }}} Es gibt eigentlich zwei Methoden, um den Xgl-Server zu benutzen. Die zweite Methode wird hier aber nicht genauer erklärt, da man meistens mit ersterer Methode bessere Ergebnisse erhält und diese auch (fast) unabhängig von der verwendeten Desktop-Umgebung ist. {{{#!vorlage Hinweis Methode 1 schaltet durch die Option ``-ac`` (siehe unten) die Access Control aus. Dies ermöglicht allen lokalen Benutzern Zugang zum aktuellen Display. Da dies ein Sicherheitsrisiko darstellen kann, wird vor allem auf Multiuser-Systemen Methode 2 empfohlen. }}} Methode 2 kann (als ''Method B'') im englischen [https://help.ubuntu.com/community/CompositeManager/Xgl Wiki] {en} nachgeschlagen werden. == Xgl-Sitzung einrichten == Diese Methode erzeugt eine eigene Sitzung, die man beim Einloggen im [:Displaymanager:] auswählen kann. Der Vorteil hiervon ist, dass die herkömmlichen Sitzungen davon nicht beeinflusst werden und ganz normal gestartet werden können, falls Xgl hängen bleiben sollte. Der Xgl-Server startet auf "DISPLAY=:1" als Teil der Sitzung und wird erst beendet, wenn diese geschlossen wird. Dies ist besonders hilfreich, wenn man die reguläre Sitzung starten möchte, falls der Xgl-Server nicht starten sollte. Der normale XServer läuft weiterhin auf "DISPLAY=:0". === Startdateien anlegen === Zuerst erstellt man die Datei '''/usr/bin/startxgl.sh''' in einem Editor mit Root-Rechten [4] und fügt je nach Hardware und Desktopumgebung einen der folgenden Texte ein: * || '''NVIDIA (mit GNOME)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec gnome-session || || '''NVIDIA (mit KDE)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec startkde || || '''NVIDIA (mit Xfce)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:fbo -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec xfce4-session || || '''ATI und Intel (mit GNOME)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec gnome-session || || '''ATI und Intel (mit KDE)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec startkde || || '''ATI und Intel (mit Xfce)''' || #!/bin/sh [[BR]]Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer &[[BR]]DISPLAY=:1[[BR]]exec xfce4-session || Die Datei wird gespeichert und der Editor geschlossen. Das Skript muss noch ausführbar gemacht werden, dies wird mittels folgendem Befehl erledigt [3]: {{{#!vorlage Befehl sudo chmod +x /usr/bin/startxgl.sh }}} Nun wird der Xgl-Server als Sitzung im Anmeldebildschirm eingerichtet. In einem Editor legt man die Datei '''/usr/share/xsessions/xgl.desktop''' an, was wieder Root-Rechte erfordert [4]. Folgenden Text fügt man ein und speichert die Datei: {{{[Desktop Entry] Encoding=UTF-8 Name=Xgl Comment= Eigene Xgl-Sitzung starten Exec=/usr/bin/startxgl.sh Icon= Type=Application }}} Da neuere Versionen des Xgl-Servers sich automatisch bei jeder Sitzung starten, muss nun noch unter '''/home/user/.config/xserver-xgl/''' eine Datei mit dem Namen "disable" angelegt werden. Alternativ kann auch das Autostartskript mit dem Befehl {{{#!vorlage Befehl sudo rm /etc/X11/Xsession.d/00xserver-xgl_start-server #oder sudo rm /etc/X11/Xsession.d/98xserver-xgl_start-server }}} im Terminal [3] gelöscht werden. == Der erste Start == Um Xgl zu starten, muss im Anmeldebildschirm ''"Optionen und Sitzungsmanager"'' ausgewählt werden. Nun kann Xgl als Sitzung gewählt werden. Dies ist natürlich nur möglich, sofern man Methode 1 befolgt hat. In diesem Fall wird man also gefragt, ob die derzeitige Sitzung als Standardsitzung eingerichtet werden soll. Für den ersten Start ist es allerdings ratsam die Option ''"Nur für diese Sitzung"'' zu wählen. Der nächste Schritt ist die Einrichtung des Composite-Managers, Genaueres kann auf der [:3D-Desktop: Übersichtsseite für Desktop-Effekte] nachgelesen werden. [[Anker(Deaktivieren)]] = XGL unter Gutsy deaktivieren = XGL kann deaktiviert werden, indem man im [:Homeverzeichnis:] des entsprechenden Benutzers die Datei '''.config/xserver-xgl/disable''' anlegt. Dabei ist der Inhalt irrelevant. [[Anker(Problembehebung)]] = Problembehebung = == Fehlende Optionen zum Ausschalten == Hat man sich eine eigene Xgl-Sitzung eingerichtet, fehlen im Abmelde-Dialog die Schaltflächen für das Herunterfahren, den Neustart und "Standby". Um diese Optionen zu erreichen, muss man sich erst aus der Sitzung abmelden und dies im [:Displaymanager:] auswählen. Möchte man diesen Zustand beheben, muss das Startskript um folgende Zeilen ergänzt werden: {{{cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)" xauth -i add :1 . "$cookie" }}} Diese müssen nach dem Befehl "''DISPLAY=:1''" eingefügt werden - zum Beispiel sähe das Startskript für den Fall "ATI und Intel (mit GNOME)" dann so aus: {{{#!/bin/sh Xgl :1 -nolisten tcp -fullscreen -ac -accel xv:pbuffer -accel glx:pbuffer & DISPLAY=:1 cookie="$(xauth -i nextract - :0 | cut -d ' ' -f 9)" xauth -i add :1 . "$cookie" exec gnome-session }}} Ein entsprechender Forenbeitrag mit näheren Informationen ist [http://forum.ubuntuusers.de/topic/64380/ hier] zu finden. == Keine Sonderzeichen mehr verfügbar == Hat man in der Xgl-Sitzung Probleme mit seiner Tastaturbelegung, muss dieses unter "''System -> Einstellungen-> Tastatur -> Belegungen''" eigens bestimmt werden. Am besten gleicht man seine Einstellungen mit der "normalen" Sitzung ab. == Kein benutzerdefiniertes Theme mehr == Unter GNOME kann es vorkommen, dass in einer Xgl-Sitzung alle Fensterinhalte grau erscheinen und dies auch nicht über die Themeneinstellung geändert werden kann. In diesem Fall muss der Befehl {{{#!vorlage Befehl gnome-settings-daemon }}} nachträglich gestartet [5] oder in den Autostart eingetragen [6] werden. == 100% CPU-Auslastung mit gnome-settings-daemon == Startet man den gnome-settings-daemon kann es passieren, dass der Prozessor voll ausgelastet wird. Dies hängt mit den Tastatureinstellungen zusammen. Unter "''System -> Einstellungen -> Tastatur -> Belegungen''" darf höchsten '''eine''' Belegung in der Liste eingetragen sein. == Kein Einloggen nach Logout("cannot open display") == Der XServer legt die Datei ''/tmp/.X11-unix/X1'' an, die nach dem Abmelden ("logout") nicht mehr gelöscht wird. Will man sich anmelden ("login"), darf die Datei allerdings nicht existieren. Dazu trägt man in der Datei "startxgl.sh" ganz oben folgende Zeile ein (die die X1 Datei löscht): {{{rm -f /tmp/.X11-unix/X1 }}} == Flackernder Mauszeiger == Falls der Mauszeiger flackert oder Artefakte zeichnet oder beides auftritt, muss in der XServer-Konfigurationsdatei '''[:xorg.conf:/etc/X11/xorg.conf]''' im Abschnitt ''"Device"'' die Option {{{"HWCursor" "On" }}} gesetzt werden [4]. == GNOME-Panel: Verzögerter Start von Anwendungen == Unter GNOME starten Anwendungen, für die man einen Anwendungsstarter im Panel eingerichtet hat, nach einer kleinen Animation von einer Abfolge schmaler Rahmen. Diese erscheinen unter Xgl plötzlich gelb, und deren Bewegung wird extrem langsam dargestellt - somit verzögern sie den gesamten Programmstart. Um diesen Effekt zu deaktivieren, muss man im Konfigurationseditor [7] das Häkchen beim Schlüssel "''apps -> panel -> global -> enable_animations''" entfernen. == Gitterstruktur beim Start von Xgl == Hierbei handelt es sich weniger um eine Problemlösung als um Kosmetik. Startet man eine Xgl-Sitzung, wird dieses durch eine Gitterstruktur, die den gesamten Desktop ausfüllt, angezeigt (es handelt sich hierbei um das "Root-Fenster"). Diesen "grauen Hintergrund", kann man durch einen schwarzen ersetzen (andere Farben stehen nicht zur Auswahl). Hierfür muss dem Startbefehl von Xgl die Option '''-br''' hinzugefügt werden. Hat man eine eigene Xgl-Sitzung eingerichtet, befindet sich dieser im Startskript unter '''/usr/bin/startxgl.sh'''. Für ATI-Nutzer lautet er dann also z.B. {{{Xgl :1 -nolisten tcp -fullscreen -ac -br -accel xv:pbuffer -accel glx:pbuffer & }}} [[Anker(Anwendungen)]] == 3D-Anwendungen laufen nicht == Es kann vorkommen, dass sich 3D-Anwendungen unter Xgl nicht starten lassen. Zwar unterstützt der Xgl-Server selbst kein DRI ("Direct Rendering Interface"), jedoch sollten die Anwendungen - wenn auch etwas langsamer - laufen. Will man XGL nicht [#Deaktivieren beenden], aber Anwendungen nutzen, die partout ihren Dienst verweigern, existieren zwei Lösungsansätze für dieses Problem: === Gezielt eine bestimmte Bibliothek nutzen === Ab Edgy Eft oder für Systeme, die auf aktuelle ATI-Treiber >=8.26.18 angewiesen sind, bietet sich folgende Lösung an. In '''/usr/lib/fglrx''' ist die Bibliothek '''libGL.so.1.2.xlibmesa''' abgelegt, mit der 3D-Anwendungen in aller Regel problemlos laufen. Um diese Bibliothek zu benutzen, muss sie im Terminal [3] oder über ein entsprechendes Skript (siehe oben) mit folgender Syntax vor der Anwendung geladen werden: {{{#!vorlage Befehl LD_PRELOAD=/usr/lib/fglrx/libGL.so.1.2.xlibmesa [Anwendung] }}} Ebenso soll das Ersetzen der '''libGL.so.1.2''' mit einer älteren fglrx-Version zur Lösung des Problems geführt haben, siehe [:Grafikkarten/ATI/fglrx/Problembehebung:hier]. Bei Nvidia-Grafikkarten kann oben genannte Lösung auch versucht werden. In aller Regel läuft es mit aktuellen Treibern jedoch problemlos. === Auf einem anderen XServer starten === Dies funktioniert nur, wenn man für Xgl eine eigene Sitzung angelegt hat. Da man, wie oben beschrieben, in diesem Fall weiterhin über den "normalen" XServer verfügt, kann dieser auch für Anwendungen genutzt werden: {{{#!vorlage Befehl DISPLAY=:0 [Anwendung] }}} Da Xgl die Grafikbeschleunigung dort nicht negativ beeinflussen kann, laufen die Anwendungen wie man es aus seiner "normalen" Sitzung gewohnt ist. Fundamentaler Nachteil dieser Lösung ist aber, dass auf dem zweiten XServer kein [:Fenstermanager:] läuft und man somit die Anwendung u.a. nicht verschieben kann. Zu diesem Lösungsansatz existiert eine eigene Forendiskussion: [http://forum.ubuntuusers.de/topic/62919/ Google Earth läuft unter Xgl/Beryl nicht mehr!] = Links = * [http://www.freedesktop.org/wiki/Software/Xgl Informationen zu Xgl auf freedesktop.org] {en} * [https://help.ubuntu.com/community/CompositeManager/Xgl Xgl in Ubuntu] {en} * [http://gentoo-wiki.com/HOWTO_XGL/Troubleshooting Xgl Problemlösungen] {en} * [http://de.opensuse.org/Xgl_Problemlösungen Probleme mit Xgl] {de} * [http://wolframswebworld.de/blog/20070929/ubuntu-710-gutsy-gibbon/ Quelle des Deaktivierenabschnitts] {de} # tag: Desktop