17.4 /etc/X11/xorg.conf
Nun kommen wir zu einem weiteren sehr wichtigen Thema: zur Konfigurationsdatei xorg.conf. Bei älteren Versionen des X-Window-Systems heißt diese Datei noch XF86Config. In beiden Fällen finden Sie diese Datei im Verzeichnis /etc/X11.
Die Datei ist dabei in verschiedene Sektionen (»Sections«) aufgeteilt, die wir nun einzeln besprechen werden. Sections beginnen mit dem Schlüsselwort Section, gefolgt von deren Namen. Eine Section wird durch das Schlüsselwort EndSection abgeschlossen. Untergeordnete Sections (»SubSections«) werden mit dem Schlüsselwort SubSection eingeleitet und mit EndSubSection abgeschlossen.
Wie in der Shell, so werden auch in dieser Datei Kommentare durch eine Raute (#) eingeleitet und gelten bis zum Ende einer Zeile.
17.4.1 Section »Module«
Das X-Window-System bietet die Möglichkeit, während des Startvorgangs Module dynamisch zu laden. Module sind dabei Erweiterungen der eigentlichen Grundsoftware, die allerdings nur bedingt Verwendung finden. Der Vorteil dieser Implementierung ist der, dass kein überflüssiger Erweiterungscode ausgeführt werden muss, den man nicht braucht bzw. benutzen will, dass man aber trotzdem auf keine Features verzichten muss. Zudem spart diese Modularität etwas Speicher, was aber nur historisch gesehen Vorteile mit sich bringt. Module können durch SubSection-Optionen noch vorkonfiguriert werden.
Die Funktion einzelner Module erfahren Sie in der X.Org-Dokumentation – in der Regel müssen Sie in dieser Section keine Änderungen vornehmen. Die einzige öfter auftretende Ausnahmesituation ist die, dass das Modul glx nicht geladen wird. Es sorgt für die OpenGL-Unterstützung in X11. Viele Programme, etwa einige Extensions des MP3-Players XMMS, machen von OpenGL Gebrauch.
Section "Module" Load "dbe" # Double buffer extension SubSection "extmod" Option "omit xfree86-dga" EndSubSection # This loads the font modules Load "type1" # Load "speedo" Load "freetype" # Load "xtt" # This loads the GLX module Load "glx" # This loads the DRI module # Load "dri" EndSection
Listing 17.10 »Module«-Section
17.4.2 Section »Files«
In der »Files«-Section geht es darum, bestimmte Pfade mitzuteilen, in denen sich zum Beispiel Module, eine Farbdatenbank oder Schriftarten befinden. Normalerweise finden in dieser Section keine Veränderungen statt.
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/TTF/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/CID/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/local/" # FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" # FontPath "/usr/X11R6/lib/X11/fonts/TrueType/" # FontPath "/usr/X11R6/lib/X11/fonts/freefont/" # ModulePath "/usr/X11R6/lib/modules" EndSection
Listing 17.11 Typische »Files«-Section
17.4.3 Section »ServerFlags«
In dieser Section wird das Verhalten der Oberfläche konfiguriert. Die jeweiligen Kommentare über den Optionen sowie die Xorg.conf-Manpage verraten Ihnen, welche Funktion die einzelnen Optionen haben und welche zur Wahl stehen. Im Normalfall verändert man an dieser Section nichts.
17.4.4 Section »InputDevice«
Die Input-Section behandelt die Eingabegeräte Maus und Tastatur. Für jedes Gerät muss eine einzelne »InputSection« definiert werden. Es können übrigens mehrere Tastaturen und Mäuse gleichzeitig konfiguriert werden.
Als InputDevice können beispielsweise auch Spaceballs oder Touchscreens konfiguriert werden! Unter X11 müssen Sie also keineswegs auf solche Technik verzichten. Im Anhang finden Sie einen Abdruck der vorkonfigurierten »InputDevice«-Sections beider Hardwarekomponenten.
Tastatur
In der Keyboard-Section wird die zu verwendende Tastatur konfiguriert. Den Treiber, den man für die Tastatur verwenden möchte (der Treiber ist auch für die Tastenbelegung zuständig), kann man über Driver angeben. In der Regel bedarf es aber auch hier wieder keiner Änderung. Viel interessanter ist da schon die Auswahl der Tastatur. Wenn man beispielsweise doch 105 (Option »XkbModel« »pc105«) statt der geratenen 102-Tasten hat, kann man dies hier ändern. Außerdem kann die eben erwähnte Tastenbelegung über die Option XgbLayout angegeben werden. Für eine amerikanische Tastatur-Encodierung muss beispielsweise us, für die deutsche natürlich de angegeben werden.
Section "InputDevice" Identifier "Keyboard1" Driver "kbd" Option "AutoRepeat" "500 30" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "de" EndSection
Listing 17.12 Typische »InputDevice«-Section
Maus
Es folgt die »InputDevice«-Section für die Maus. Zu sehen sind die bei der Konfiguration mit xorgconfig festgelegten Parameter wie der Treiber (Driver), das Protokoll (Protocol) und die Schnittstelle der Maus (Device).
Dritte Maustaste emulieren
Für die bereits bei der Konfiguration angesprochene Emulation der dritten Maustaste kann die Option Emulate3Buttons aktiviert werden. Dabei wird ein gleichzeitiges Drücken der beiden Maustasten als ein Klick mit der dritten Maustaste interpretiert.
Der Zeitraum, der zwischen den beiden Tastenklicks existieren darf, um sie noch als Klick der dritten Maustaste zu interpretieren, wird mit Emulate3Timeout angegeben.
Mausrad
Die Benutzung eines Mausrades wird durch ZAxisMapping aktiviert.
Section "InputDevice" # Identifier and driver Identifier "Mouse1" Driver "mouse" Option "Protocol" "wsmouse" Option "Device" "/dev/wsmouse" # Option "Emulate3Buttons" # Option "Emulate3Timeout" "50" Option "ZAxisMapping" "4 5" EndSection
Listing 17.13 »InputDevice«-Section
17.4.5 Section »Monitor«
Nun geht es an die Konfiguration des Monitors bzw. der Monitore. Später werden wir noch darauf zu sprechen kommen, X11 mit mehreren Monitoren gleichzeitig zu betreiben. Doch sehen wir uns erst einmal die Konfiguration des primären Monitors an.
Angegeben werden hier lediglich der bereits erwähnte Identifer und die beiden Werte für die Horizontal- und Vertikalfrequenz des Monitors. Die Angaben werden dabei generell in der Einheit Hz interpretiert.
Section "Monitor" Identifier "My Monitor" HorizSync 31.5 – 82.0 VertRefresh 50-90 EndSection
Listing 17.14 »Monitor«-Section
17.4.6 Section »Device«
Nun folgt die Konfiguration der Grafikkarte. So, wie auch mehrere Monitore vorhanden sein können, braucht man für mehrere Monitore natürlich auch oft mehrere Grafikkarten. Daher erlaubt Ihnen X11, auch mehrere Grafikkarten (jeweils repräsentiert durch eine »Device«-Section) zu konfigurieren.
Was immer laufen sollte, ist der VGA-Treiber. Diesen kann man dann später durch den Identifier »Standard VGA« in der »Screen«-Section einbauen, auf die wir gleich zu sprechen kommen.
Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" Driver "vga" # VideoRam 256 EndSection
Listing 17.15 VGA-Karte
Die Bezeichnungen der einzelnen Attribute sprechen für sich. Wichtig ist jedoch noch, dass man weiß, dass die Angaben des Grafikkartenspeichers (VideoRam) in KByte erfolgen. Eine übliche Standard-VGA-ISA-Grafikkarte hat tatsächlich nur 256 KB Speicher. Die Grafikkarte, die Sie mittels xorgconfig konfigurieren, wird selbstverständlich auch automatisch in die xorg.conf eingetragen.
# Device configured by xorgconfig: Section "Device" Identifier "RIVA TNT2" Driver "nv" EndSection
Listing 17.16 Eine weitere Grafikkarte
Sollten Sie mit VMWare arbeiten, kann übrigens der VMware SVGA-Treiber verwendet werden, den Sie ebenfalls in der Grafikkartenauswahl während des Setups im Listing finden können. Sie können aber auch einfach als Treiber »vmware« angeben und gegebenenfalls einen Blick in die zugehörige Manpage werfen.
17.4.7 Section »Screen«
In der vorletzten Section, der »Screen«-Section, wird die Bildschirmanzeige konfiguriert. Hier wird eine Bildschirmanzeige einer Grafikkarte (Device) und einem Monitor (Monitor) zugeordnet.
Es gibt verschiedene Konfigurationen für eine Bildschirmanzeige. Diese sind von der Farbtiefe abhängig – in der Regel sind das die Werte 8, 16 und 24. Die standardmäßig beim Start zu verwendende Farbtiefe wird über DefaultDepth angegeben.
Für jede Farbtiefe gibt es wiederum eine »Display«-Subsection. In dieser wird primär festgelegt, welche Auflösungen verwendet werden sollen. Die Standardauflösung sollte dabei zuerst aufgelistet sein.
Die folgende Grafikkarte wird also nach dem Start, wenn alles glattgeht, mit einer Farbtiefe von 24 Bits und einer Auflösung von 1280 mal 1024 Pixel initialisiert.
Section "Screen" Identifier "Screen 1" Device "RIVA TNT2" Monitor "My Monitor" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x1024" "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1280x1024" "1024x768" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1280x1024" ViewPort 0 0 EndSubsection EndSection
Listing 17.17 »Screen«-Section
17.4.8 Section »ServerLayout«
Die »ServerLayout«-Section hat die Aufgabe, alle Ein- und Ausgabedefinitionen zusammenzubinden, damit X11 letztlich auch weiß, welche Grafikkarte, welche Maus, welcher Monitor, welche Bildschirmanzeige und welche Tastatur überhaupt verwendet werden soll.
Section "ServerLayout" Identifier "Simple Layout" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection
Listing 17.18 Typische »ServerLayout«-Section
Wie Sie sehen, werden hier einfach die oben angegebenen Identifier verwendet.
17.4.9 Optionale Sections
Es stehen noch einige weitere Sections zur Verfügung, die bei Bedarf verwendet werden können. Dazu zählt beispielsweise die »DRI«-Section, die zusätzliche Informationen für die »direkte Rendering-Infrastruktur« liefert, oder die »Vendor«-Section, die zusätzliche herstellerspezifische Informationen bereitstellt.
... und dann gibt es noch die sogenannte »VideoAdaptor«-Section, bei der wir einfach einmal die xorg.conf-Manpage von OpenBSD zitieren:
VIDEOADAPTOR SECTION Nobody wants to say how this works. Maybe nobody knows ...
Listing 17.19 »VideoAdaptor«-Section