Inhaltsverzeichnis
Zusammenfassung
Das X Window System (X11) ist der Quasi-Standard für grafische Benutzeroberflächen unter Unix. X11 ist zudem netzwerkbasiert, sodass Anwendungen, die auf einem Rechner gestartet wurden ihre Ausgabe auf einem anderen Rechner darstellen können, wenn beide miteinander vernetzt sind. Die Art des Netzes (LAN oder Internet) spielt hierbei keine Rolle.
Wir stellen Ihnen in diesem Kapitel Optimierungsmöglichkeiten für Ihre X Window System-Umgebung vor, geben Ihnen Hintergrundinformationen zum Umgang mit Fonts unter SUSE LINUX und gehen auf die OpenGL/3D-Konfiguration ein. Die YaST Modulbeschreibungen zur Konfiguration von Monitor, Grafikkarte, Maus und Tastatur finden Sie im Benutzerhandbuch.
X11™ entstand als Gemeinschaftsproduktion von DEC™ (Digital Equipment Corporation™) und dem Projekt Athena am MIT™ (Massachusetts Institute of Technology™). Die erste Version (X11R1™) wurde im September 1987 freigegeben. Seit Release 6 hat das X Consortium, Inc.™, ab 1996 The Open Group™ die Entwicklung des X Window System™ übernommen.
XFree™ ist eine frei verfügbare Implementierung von X-Servern für PC-Unix-Systeme (vgl. http://www.XFree86.org). XFree wurde und wird auch weiterhin – verstreut über die ganze Welt – von Programmierern entwickelt, die sich 1992 zum XFree-Team zusammengeschlossen haben. Daraus entstand die 1994 gegründete Firma The XFree86 Project, Inc.™, deren Ziel es ist, XFree™ einer breiten Öffentlichkeit zur Verfügung zu stellen und sowohl forschend als auch entwickelnd an der Zukunft des X Window System mitzuarbeiten.
Um die zur Verfügung stehende Hardware (Maus, Grafikkarte, Monitor, Tastatur) optimal nutzen zu können, besteht die Möglichkeit, die Konfiguration manuell zu optimieren. Im Folgenden wird auf einige Aspekte der Optimierung eingegangen. Detaillierte Informationen zur Konfiguration des X Window System finden sich in verschiedenen Dateien im Verzeichnis /usr/share/doc/packages/xf86 sowie natürlich in der Manpage man XF86Config.
![]() | Warnung |
|---|---|
Bei der Konfiguration des X Window Systems sollte besonders sorgsam vorgegangen werden! Auf keinen Fall sollte X11 gestartet werden, bevor die Konfiguration abgeschlossen wurde. Ein falsch eingestelltes System kann zu irreparablen Schäden an der Hardware führen; besonders gefährdet sind Festfrequenz-Monitore. Die Autoren dieses Buches und die SUSE LINUX AG lehnen jede Verantwortung für eventuell entstehende Schäden ab. Der vorliegende Text wurde mit größtmöglicher Sorgfalt erstellt. Dennoch kann nicht garantiert werden, dass die hier vorgestellten Methoden korrekt sind und Ihrer Hardware keinen Schaden zufügen. | |
Im Folgenden soll der Aufbau der Konfigurationsdatei /etc/X11/XF86Config vorgestellt werden. Diese Datei ist in Abschnitte (engl. Sections) aufgeteilt, die jeweils mit dem Schlüsselwort Section "bezeichner" eingeleitet werden und mit EndSection beendet werden. Es folgt ein grober Abriss der wichtigsten Abschnitte.
Die Programme SaX2 und xf86config erstellen die Datei XF86 Config, standardmäßig in /etc/X11. Dies ist die primäre Konfigurationsdatei für das X Window System™. Hier finden sich die gemachten Angaben zu Maus, Monitor und Grafikkarte.
XF86Config setzt sich aus mehreren Abschnitten zusammen (den sog. Sections), die sich mit jeweils einem Aspekt der Konfiguration beschäftigen. Eine Section hat stets die Form:
Section Abschnittsbezeichnung eintrag 1 eintrag 2 eintrag n EndSection
Es existieren folgende Typen von Sections:
Tabelle 4.1. Abschnitte (sog. sections) in /etc/X11/XF86Config
Näher betrachtet werden die Sections Monitor, Device und Screen. In der Manualpage von XFree86 und der Manualpage von XF86Config finden sich weitere Informationen zu den verbleibenden Sections.
In XF86Config können mehrere Monitor- und Device-Abschnitte vorkommen. Auch mehrere Screen-Abschnitte sind möglich; welcher davon verwendet wird, hängt dann vom nachfolgenden Abschnitt ServerLayout ab.
Zunächst soll die Screen-Section näher betrachtet werden. Diese bringt eine Monitor- mit einer Device-Section zusammen und bestimmt, welche Auflösungen mit welcher Farbtiefe bereitgestellt werden sollen.
Eine Screen-Section kann beispielsweise wie in Datei 4.1. “Die Screen-Section der Datei /etc/X11/XF86Config” aussehen.
Beispiel 4.1. Die Screen-Section der Datei /etc/X11/XF86Config
Section "Screen"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1152x864" "1024x768" "800x600"
Virtual 1152x864
EndSubSection
SubSection "Display"
Depth 24
Modes "1280x1024"
EndSubSection
SubSection "Display"
Depth 32
Modes "640x480"
EndSubSection
SubSection "Display"
Depth 8
Modes "1280x1024"
EndSubSection
Device "Device[0]"
Identifier "Screen[0]"
Monitor "Monitor[0]"
EndSection
Die Zeile Identifier (hier Screen[0]) gibt diesem Abschnitt eine eindeutige Bezeichnung, durch die er dann im darauf folgenden Abschnitt ServerLayout eindeutig referenziert werden kann. Über die Zeilen Device und Monitor werden dem Screen eindeutig die schon weiter oben in der Datei definierte Grafikkarte und der Monitor zugeordnet. Dies sind nichts weiter als Verweise auf die Device- und Monitor-Sections mit den entsprechenden Namen bzw. Identifiern. Auf diese Sections wird weiter unten noch näher eingegangen.
Mittels der DefaultDepth-Angabe kann ausgewählt werden, in welcher Farbtiefe der Server startet, wenn er ohne eine explizite Angabe der Farbtiefe gestartet wird. Es folgt für jede Farbtiefe eine Display-Subsection. Die Farbtiefe, für die die Subsection gilt, wird durch das Schlüsselwort Depth festgelegt. Mögliche Werte für Depth sind 8, 15, 16 und 24. Nicht alle X-Server-Module unterstützen jeden dieser Werte.
Nach der Farbtiefe wird mit Modes eine Liste von Auflösungen festgelegt. Diese Liste wird vom X-Server von links nach rechts durchlaufen. Für jede Auflösung wird in der Modes-Section in Abhängigkeit von der Monitor-Section eine passende Modeline gesucht, die vom Monitor und der Grafikkarte dargestellt werden kann.
Die erste in diesem Sinne passende Auflösung ist die, in der der X-Server startet (der sog. Default-Mode). Mit den Tasten Strg-Alt-Grau + kann in der Liste nach rechts, mit Strg-Alt-Grau - nach Links gewandert werden. So kann die Bildschirmauflösung zur Laufzeit des X Window Systems variiert werden.
Die letzte Zeile der Subsection Display mit Depth 16 bezieht sich auf die Größe des virtuellen Bildschirms. Die maximal mögliche Größe des virtuellen Bildschirms hängt vom Speicherausbau der Videokarte und der gewünschten Farbtiefe ab, nicht aber von der maximalen Auflösung des Monitors. Da moderne Grafikkarten sehr viel Grafikspeicher anbieten, können Sie sehr große virtuelle Desktops anlegen. Beachten Sie dann aber bitte, dass Sie evtl. keine 3D-Funktionalität mehr nutzen können, wenn Sie praktisch den gesamten Grafikspeicher mit einem virtuellen Desktop füllen. Hat die Karte zum Beispiel 16 MB Video-RAM, so kann, bei 8 Bit Farbtiefe, der virtuelle Bildschirm bis zu 4096x4096(!) Pixel groß sein. Speziell bei den beschleunigten Servern empfiehlt es sich jedoch nachdrücklich, nicht den gesamten Speicher der Videokarte für den virtuellen Bildschirm zu verwenden, da der nicht verwendete Speicherbereich auf der Videokarte von diesen Servern für verschiedene Caches für Zeichensätze und Grafikbereiche verwendet wird.
Eine Device-Section beschreibt eine bestimmte Grafikkarte. Es können beliebig viele Device-Sections in XF86Config enthalten sein, solange sich ihr Name, der mit dem Schlüsselwort Identifier angegeben wird, unterscheidet. In der Regel werden – falls Sie mehrere Grafikkarten eingebaut haben – die Sections einfach durchnummeriert, die erste wird dann mit Device[0], die zweite mit Device[1] bezeichnet usw.. In der folgenden Datei sehen Sie den Ausschnitt aus der Device Section eines Computers, in dem eine Matrox Millennium PCI Grafikkarte eingebaut ist:
Section "Device" BoardName "MGA2064W" BusID "0:19:0" Driver "mga" Identifier "Device[0]" VendorName "Matrox" Option "sw_cursor" EndSection
Wenn Sie SaX2 zur Konfiguration verwenden, dann dürfte die Device-Section ungefähr so wie oben abgebildet aussehen. Insbesondere Driver und BusID sind natürlich von der in Ihrem Computer eingebauten Hardware abhängig und werden von SaX2 automatisch bestimmt. Die BusID bestimmt den PCI- bzw. AGP-Steckplatz, in den die Grafikkarte eingesteckt ist. Diese stimmt mit der vom Kommando lspci ausgegebenen ID überein. Beachten Sie, dass der X-Server die Angaben in dezimaler, das Programm lspci hingegen in hexadezimaler Schreibweise ausgibt!
Über den Parameter Driver legen Sie den zu verwendenden Treiber für diese Grafikkarte fest. Im Falle der Matrox Millennium heißt das Treibermodul mga. Diese werden vom X-Server über den im Abschnitt Files definierten ModulePath im Unterverzeichnis drivers gesucht. In einer Standardinstallation ist dies das Verzeichnis /usr/X11R6/lib/modules/drivers. Hierzu wird an den Namen einfach _drv.o angehängt, im Falle des mga Treibers wird als die Treiberdatei mga_drv.o geladen.
Über zusätzliche Optionen kann das Verhalten des X-Servers bzw. des Treibers beeinflusst werden. In der Device Section ist hier exemplarisch die Option sw_cursor gesetzt worden. Dies deaktiviert den Hardwaremauscursor und stellt den Mauszeiger in Software dar. Je nach Treibermodul stehen ihnen verschiedene Optionen zur Verfügung, diese sind in den Beschreibungsdateien zu den Treibermodulen im Verzeichnis /usr/X11R6/lib/X11/doc zu finden. Allgemein gültige Optionen finden Sie auch in den Manpages (man XF86Config und man XFree86).
Die Monitor-Sections und die Modes Section beschreiben, analog zu den Device-Sections, jeweils einen Monitor. Die Konfigurationsdatei /etc/X11/XF86Config kann wieder beliebig viele, unterschiedlich benannte Monitor-Sections enthalten. In der ServerLayout-Section wird dann festgelegt, welche Monitor-Section ausschlaggebend ist.
Für die Monitordefinition gilt, noch mehr als für die Beschreibung der Grafikkarte, dass das Erstellen einer Monitor-Section und insbesondere der Modes-Section nur von erfahrenen Benutzern gemacht werden sollte. Der wesentliche Bestandteil der Modes-Section sind die sog. Modelines, in denen Horizontal- und Vertikal-Timings für die jeweilige Auflösung angegeben werden. In der Monitor-Section werden die Eigenschaften des Monitors, insbesondere die zulässigen Ablenkfrequenzen, festgehalten.
Diejenigen, die sich (zu)trauen, eigene Monitorbeschreibungen zu entwickeln, sollten mit der Dokumentation im Verzeichnis /usr/X11/lib/X11/doc vertraut sein. Besonders zu erwähnen ist [fang:93], wo die Funktion der Hardware und das Erstellen von Modelines detailliert beschrieben wird. Eine deutsche Einführung in dieses Thema findet sich im XFree-Kapitel in [hetze:96].
Glücklicherweise ist mittlerweile die manuelle Erstellung von Modelines oder Monitordefinitionen fast nie mehr nötig. Wenn Sie einen modernen Multisync-Monitor verwenden, können die zulässigen Frequenzbereiche und optimalen Auflösungen in der Regel, wie im SaX2 Konfigurationsabschnitt erwähnt, direkt via DDC vom X-Server aus dem Monitor gelesen werden. Sollte dies nicht möglich sein, können Sie auch einen der eingebauten VESA-Modi des X-Servers verwenden. Diese sollten auf praktisch allen Grafikkarten/Monitorkombinationen einwandfrei funktionieren.