11.2. Installation des X Window Systems optimieren

Mit X.Org steht eine Open Source Implementierung des X Window Systems zur Verfügung. Diese wird von der X.Org Foundation, die gleichzeitig für die Entwicklung neuer Technologien und Standards des X Window Systems verantwortlich ist, weiterentwickelt.

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/Xorg sowie natürlich in der Manualpage man xorg.conf.

[Warning]Warnung

Bei der Konfiguration des X Window Systems sollte besonders sorgsam vorgegangen werden. Auf keinen Fall sollte X 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 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.

Die Programme SaX2 und xf86config erstellen die Datei xorg.conf, 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.

Im Folgenden soll der Aufbau der Konfigurationsdatei /etc/X11/xorg.conf 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.

xorg.conf 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

Die verfügbaren Section-Typen sind in Tabelle 11.2, „Abschnitte (sog. sections) in /etc/X11/xorg.conf“ aufgeführt.

Tabelle 11.2. Abschnitte (sog. sections) in /etc/X11/xorg.conf

Typ

Bedeutung

Files

Dieser Abschnitt beschreibt die verwendeten Pfade für Zeichensätze und die RGB-Farbtabelle.

ServerFlags

Hier werden allgemeine Schalter angegeben.

InputDevice

Über diesen Abschnitt werden die Eingabegeräte konfiguriert. Es werden sowohl Tastaturen und Mäuse als auch spezielle Eingabegeräte (Touchtablett, Joysticks usw.) über diesen Abschnitt konfiguriert. Wichtige Bezeichner sind hier Driver und die Optionen, die Protocol und Device festlegen.

Monitor

Beschreibt den verwendeten Monitor. Elemente dieses Abschnittes sind ein Name, auf den später bei der Definition des Screens verwiesen wird, sowie die Beschreibung der Bandbreite (Bandwidth) und der zulässigen Synchronisationsfrequenzen (HorizSync und VertRefresh). Die Angaben erfolgen in MHz, kHz bzw. Hz. Grundsätzlich lehnt der Server jede Modeline ab, die nicht der Spezifikation des Monitors entspricht. Damit soll verhindert werden, dass durch Experimente an den Modelines versehentlich zu hohe Frequenzen an den Monitor geschickt werden.

Modes

Hier werden die Darstellungsparameter der einzelnen Bildschirmauflösungen festgelegt. Diese Parameter können von SaX2 aufgrund der vom Benutzer vorgegebenen Werte berechnet werden und müssen im Regelfall nicht verändert werden. Manuell eingreifen können Sie an dieser Stelle aber beispielsweise, wenn Sie einen Festfrequenzbildschirm anschließen möchten. Eine genaue Erläuterung der einzelnen Parameter würde den Rahmen dieses Buches sprengen, Sie finden allerdings eine detaillierte Erläuterung der Bedeutung der einzelnen Zahlenwerte in der HOWTO Datei /usr/share/doc/howto/en/XFree86-Video-Timings-HOWTO.gz.

Device

Dieser Abschnitt definiert eine bestimmte Grafikkarte. Diese wird durch den angegeben Namen referenziert.

Screen

Diese Section schließlich fügt einen Monitor und ein Device zusammen und es ergeben sich daraus die notwendigen Angaben für X.Org. Der Unterabschnitt Display erlaubt die Angabe der virtuellen Bildschirmgröße (Virtual), des ViewPort und der verwendeten Modes mit diesem Screen.

ServerLayout

Dieser Abschnitt legt das Layout einer Single- oder Multiheadkonfiguration fest. Hier werden die Eingabegeräte InputDevice und die Anzeigegeräte Screen zu einem Ganzen zusammengefasst.

Näher betrachtet werden die Sections Monitor, Device und Screen. In der Manualpage von X.Org und der Manualpage von xorg.conf finden sich weitere Informationen zu den verbleibenden Sections.

In xorg.conf 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.

11.2.1. Screen-Section

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 Beispiel 11.1, „Die Screen-Section der Datei /etc/X11/xorg.conf“ aussehen.

Beispiel 11.1. Die Screen-Section der Datei /etc/X11/xorg.conf

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.

11.2.2. Device-Section

Eine Device-Section beschreibt eine bestimmte Grafikkarte. Es können beliebig viele Device-Sections in xorg.conf 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 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 Manualpages (man xorg.conf und man X.Org).

11.2.3. Monitor- und Modes-Section

Die Monitor-Sections und die Modes-Section beschreiben, analog zu den Device-Sections, jeweils einen Monitor. Die Konfigurationsdatei /etc/X11/xorg.conf 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 so genannten 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.

[Warning]Warnung

Ohne ein grundlegendes Verständnis der Funktionsweise von Monitor und Grafikkarte sollte an den Modelines nichts verändert werden, da dies unter Umständen zur Zerstörung des Monitors führen kann.

Wer sich zutraut, eigene Monitorbeschreibungen zu entwickeln, sollte mit der Dokumentation im Verzeichnis /usr/X11/lib/X11/doc vertraut sein. Besonders zu erwähnen ist die Datei README.chips, wo die Funktion der Hardware und das Erstellen von Modelines detailliert beschrieben wird.

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.


SUSE LINUX Administrationshandbuch 9.3