claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 10/2005

X und die xorg.conf

Doktor Xorg

von Kristian Kißling


Die Tastatur reagiert nicht auf Eingaben, der Bildschirm bleibt schwarz und Ihre Maus versteckt sich? In solchen Fällen hilft mitunter ein Blick in die Datei xorg.conf. Aber wozu dient sie eigentlich?

Früher war alles besser? Dann sollten Sie mal das alte X Window System anschauen. Um unter Suse Linux 6.4 den Monitor einzurichten, brauchte man meist ein mehrjähriges Studium: Während Suse Linux heute die meisten Monitore automatisch erkennt und konfiguriert, versagte das damals noch junge Konfigurationsprogramm SaX recht häufig. Also benutzte man das Programm xf86config, das den Computer-Laien einer strengen Prüfung unterzog und ihn mit seltsamen Fragen und Forderungen traktierte: Enter your own horizontal sync range lautete eine davon. Wie bitte? Hatte man sich mit Hilfe diverser Handbücher über die eigene Hardware informiert und erfolgreich durch den Konfigurationsdschungel gekämpft, schrieb das Programm die Antworten in die Datei /etc/XF86Config, die heute den Namen xorg.conf oder XF86Config-4 trägt.

Was ist X?

In welcher Beziehung steht nun die Datei xorg.conf zum X Window System? Die X.org-Foundation ist momentan -- aufgrund einer Reihe historischer Begebenheiten [1] -- für die Entwicklung des X Window Systems zuständig. Dank der Einführung dieses Systems in den 90er Jahren ließen sich Befehle unter Linux auch über eine grafische Oberfläche ausführen -- z. B. per Mausklick auf ein Icon. Das X-Window-System besteht aus X-Server und X-Client. Der X-Client ist jedoch keine alleinstehende Anwendung wie ein Mail-Programm, sondern das Mail-Programm wird zum X-Client, sobald es beim X-Server grafische Routinen anfordert. Der X-Server ist in der Lage, mit der Grafik-Hardware zu kommunizieren und gibt so die Anforderung des Mail-Programms an die Grafikkarte weiter. Allerdings beherrscht der X-Server nur wenige grafische Funktionen: Er zeichnet und bewegt einfache Grafikelemente und reagiert auf Mausaktionen und Tastatureingaben. Mit dem reinen X-Server haben Sie nur wenig Freude: Zwar starten die bekannten Programme, sie sind allerdings fest und unbeweglich in den Desktop integriert (Abbildung 1). Sehen Sie sich den X-Server ruhig einmal an.

Abb. 1: Der Browser Firefox und der Editor Kate kollidieren miteinander. Der X-Server baut keine Rahmen und Fenster um die Programme.

Xtrem starr

Wechseln Sie mit [Strg-Alt-F1] zu einem anderen Terminal und melden Sie sich als root an. Mit dem Befehl init 3, den Sie mit [Eingabe] bestätigen, rufen Sie den Runlevel 3 auf. Durch die Eingabe der folgenden Zeile starten Sie den X-Server:

X & exec kate --display :0 &

Über X & rufen Sie den X-Server auf, das & ermöglicht weitere Eingaben. Via exec kate laden Sie dann den Editor Kate. Auf Wunsch aktivieren Sie unter Linux auch mehrere X-Server zugleich, die dann auf verschiedenen virtuellen Displays laufen. Aufgrund fehlender Parameter startet der X-Server im Beispiel auf Display 0 -- über die Option --display :0 platzieren Sie Kate dort ebenfalls. Nun benutzen Sie Kate auf die übliche Weise, geben Text ein und speichern Daten ab -- bewegen lässt sich der Editor allerdings nicht. Negativ wirkt sich das vor allem dann aus, wenn die Fenster überlappen (Abbildung 1). Mit [Strg-Alt-Rückschritt] beenden Sie den X-Server und kehren in den Textmodus zurück. Der Befehl init 5 bringt Sie zur grafischen Oberfläche zurück. Funktioniert das Kommando nicht, starten Sie -- noch immer als Root eingeloggt -- den Rechner mit der Eingabe von reboot neu.

Fenster managen

Für den komfortablen Umgang mit Programmen gibt es die Window Manager. Diese erzeugen Fenster und Rahmen, die es erlauben, die Größe der Programme zu verändern, ihre Oberflächen zu verschieben und sie anhand der Titelleisten voneinander zu unterscheiden. Einige Window Manager wie twm oder Fluxbox brauchen weniger Ressourcen, andere wie Kwin oder Metacity für KDE beziehungsweise Gnome belasten das System deutlicher.

Grafikzauber

Die Schlichtheit der grafischen Darstellung des X-Servers hat Vorteile: der X-Server ist schlank und netzwerkfähig. So laufen in Firmen oft rechenintensive X-Clients auf einer leistungsstarken Maschine, während die X-Server auf den schwächeren Linux-Terminals der Mitarbeiter zum Einsatz kommen. Extramodule -- so genannte Extensions -- erweitern die klassische X-Unterstützung für Maus, Tastatur und Monitor. Seit XFree 4.0 gibt es ein GLX-Modul, das als Schnittstelle zwischen dem X-Server und der 3D-Grafikbibliothek OpenGL dient. Wollen Sie 3D-Spiele wie Nexuiz oder Doom3 unter Linux spielen, klappt das nativ nur mit OpenGL-Support -- es sei denn, Sie nutzen den Windows-Emulator Cedega.

Die neue X.org-Version 6.8 bringt neue Extensions mit. Dank dieser Extensions erzeugen Sie nicht nur echte Transparenz, um Fenster durchsichtig darzustellen, sondern auch Schatten für die Fenster. Allerdings befinden sich die meisten dieser Module noch in einem experimentellen Stadium und stürzen recht häufig ab.

X in Gefahr

Nun wird es Zeit, die Datei xorg.conf in Augenschein zu nehmen. Änderungen an ihr nehmen Sie unter Suse Linux 9.2/9.3 einfach mit den Konfigurations-Tools Sax2 (Abbildung 2) oder Yast vor, unter Mandrake Linux 10.2 verwenden Sie das Mandrake-Linux-Kontrollzentrum. Haben Sie vor, die Datei manuell zu verändern, ohne genau zu wissen, was Sie tun, ruinieren Sie unter Umständen nicht nur Ihr grafisches System, sondern senden mit etwas Geschick sogar Monitore älterer Bauart in die ewigen Jagdgründe. Sollten Sie diese drastischen Hinweise nicht abschrecken, legen Sie zumindest eine Sicherheitskopie der Datei xorg.conf an: Damit stellen Sie im Ernstfall wieder den alten Zustand her. Öffnen Sie mit [Alt-F2] ein Schnellstartfenster und geben Sie konsole ein. Wechseln Sie mit cd /etc/X11 in das Verzeichnis, in dem die Datei xorg.conf liegt. Melden Sie sich über su root und die Eingabe Ihres Passworts als Administrator an und legen Sie eine Kopie an:

cp xorg.conf xorg.conf.original

Die Datei mit der Endung .original ist Ihre Sicherheitskopie, die Sie unberührt lassen.

Abb. 2: Dank Sax2 müssen Sie sich nicht mehr stundenlangen Verhören nach Ihrer Hardware unterziehen, um Ihr X Window System zu konfigurieren.

Tastatur, Maus und Monitor

Nun bearbeiten Sie -- noch immer im Root-Modus -- die Datei xorg.conf, indem Sie den Befehl kate xorg.conf eingeben. Zunächst etwas Grundsätzliches: Nicht nur unterscheiden sich die xorg.conf-Dateien innerhalb der verschiedenen Distributionen, auch die Datei auf Ihrem Rechner sieht vermutlich ein bisschen anders aus als die hier genutzte. Das ist kein Wunder: Schließlich verwenden Sie andere Hardware, die dann natürlich auch eine andere Konfiguration benötigt. Grundsätzlich enthält die Datei xorg.conf überall dieselbe Syntax. Sie ist in verschiedene Abschnitte unterteilt -- die so genannten Sections. Zunächst geht es um die Konfiguration der Tastatur, betrachten Sie daher im oberen Bereich des Kastens Tastatur und Monitor den Abschnitt Section "InputDevice", in dem Identifier "Keyboard" steht.

Tastatur und Monitor
Section "InputDevice"
        Driver     "kbd"
        Identifier "Keyboard[0]"
        Option     "Protocol"    "Standard"
        Option     "XkbLayout"   "de"
        Option     "XkbModel"    "pc105"
        Option     "XkbRules"    "xfree86"
        Option     "XkbVariant"  "nodeadkeys"
EndSection

Section "Monitor"
        DisplaySize     340 270
        HorizSync       30-83
        Identifier      "Monitor [0]"
        ModelName       "BENQ FP767"
        Option          "DPMS"
        VendorName      "BNQ"
        VertRefresh     43-76
        UseModes        "Modes[0]"
EndSection

Während sich unter Suse Linux 9.3 und 9.2 die Einträge aufs Haar gleichen, sieht die Datei xorg.conf von Mandrake Linux etwas anders aus (Abbildung 3). Im Verzeichnis /usr/X11R6/lib/modules/input/ liegen die passenden Treiberdateien für den Abschnitt Section "InputDevice".

Abb. 3: Jede Distribution gestaltet die Konfigurationsdatei "xorg.conf" etwas anders, das ist die Version von Mandrake Linux 10.2.

Die Einträge Driver und Identifier müssen in der Datei xorg.conf stehen, die mit Option beginnenden Einträge sind hingegen optional. Als Treiber für die Tastatur fungiert die Datei kbd: Sie liegt im oben erwähnten Verzeichnis input und heißt kbd_drv.o. Unter Mandrake Linux dient eine Datei namens keyboard_drv.o als Tastaturtreiber. Auch die Optionen variieren innerhalb der Distributionen. Mandrake Linux bringt die beiden Optionen de und nodeadkeys in einer Variable namens XkbLayout unter, Suse Linux weist den beiden Parametern jeweils eine eigene Variable zu. Der Wert de sorgt für die deutsche Tastaturbelegung -- natürlich nur unter X. Der Eintrag nodeadkeys führt dazu, dass beim Drücken von ['] und [e] beide Zeichen nacheinander erscheinen. Will man hingegen ein é erzeugen, hilft die Lösung aus der xorg.conf-Datei von Mandrake Linux:

Option "XkbOptions" "compose:rwin"

Das Drücken der rechten Windows-Taste kombiniert nun die nächsten beiden gedrückten Tasten miteinander.

Option "XkbRules" "xfree86"

lautet ein weiterer Eintrag in der Datei xorg.conf, der veranlasst, dass Suse Linux das Tastaturlayout aus der Datei xfree86 bezieht, die im Verzeichnis /usr/X11R6/lib/X11/xkb/keymap liegt. Die Konfiguration der Maus verläuft ähnlich -- nur definieren unter Suse Linux der Eintrag Option "Device" "/dev/input/mice" und unter Mandrake Linux der Eintrag Option "Device" "/dev/mouse" zusätzlich die Mausschnittstellen.

Vergleichen Sie nun die Optionen in der Section "Monitor" miteinander. Die Einträge VendorName und ModelName im unteren Abschnitt des Kastens Tastatur und Monitor zeigen, dass Suse Linux 9.2 und 9.3 den Monitor korrekt erkennen. Der Bildschirm wird als "Monitor [0]" identifiziert, gäbe es weitere Monitore, hießen diese Monitor [1], Monitor [2] usw. Die DisplaySize gibt die Höhe und Breite des Bildschirms in Millimetern wieder. Den Eintrag HorizSync bearbeiten Sie besser nicht ohne genaue Informationen: Die Horizontale Zeilenfrequenz gibt an, wie viele Bildschirmzeilen pro Sekunde der Elektronenstrahl passiert. Stellen Sie den Wert zu hoch ein, richten Sie an älteren Monitoren möglicherweise Schäden an. Der Hinweis gilt auch für VertRefresh -- die Vertikale Bildfrequenz --, die angibt, wie oft pro Sekunde die gesamte Bildschirmfläche neu gezeichnet wird. Die angegebenen Werte stecken den Bereich ab, den der eingesetzte Benq-Monitor bewältigt; Sie finden solche Daten auch im Monitor-Handbuch. Die Option "DPMS" aktiviert die Energiesparfunktion des Monitors. Der letzte Eintrag UseModes "Modes[0]" bestimmt, welche Modelines der Bildschirm verwendet. Modelines sind Einträge in der Datei xorg.conf, die Parameter für verschiedene Bildschirmauflösungen definieren. Die Section "Modes" mit dem Identifier "Modes [0]" legt die exakten Parameter für verschiedene Auflösungen fest (Abbildung 4). Im Test halfen genau diese Modelines beim Lösen eines Problems.

Abb. 4: Die kryptischen Zahlen in der Modeline legen die Pixelfrequenzen und das horizontale Timing für den jeweiligen Grafikmodus fest.

X.org als Problemlöser

Während bei einem Test das Bild unter Suse Linux gestochen scharf war, stellten Mandrake Linux und andere Distributionen einige Bereiche des Bildschirms unscharf dar. Die Lösung bestand darin, die funktionierende Modeline für die Auflösung 1024x768 aus der Konfigurationsdatei von Suse Linux zu kopieren und sie in die entsprechende Datei von Mandrake Linux einzufügen. Streikt also Ihre Maus unter Suse Linux, nicht aber unter Knoppix, hilft es mitunter, die entsprechenden Einträge für die Maus in die Datei xorg.conf von Suse Linux zu kopieren. Das klappt jedoch nur, wenn die korrekten Treiber zur Verfügung stehen. Bleibt der Bildschirm einmal schwarz, hilft statt dessen häufig die Datei Xorg.0.log im Verzeichnis /var/log/ weiter. Sie protokolliert die Vorgänge beim Start des X-Servers und weist auf Fehler hin, die Sie im Protokoll am vorangestellten (EE) erkennen. Auch im Internet finden Sie zahlreiche xorg.conf-Konfigurationen für verschiedene Geräte. Manchmal genügt es, eine fremde Section einfach in die eigene xorg.conf-Datei zu übernehmen -- dann klappts auch mit der grafischen Oberfläche. (kki)

Infos:
[1] Mehr zur Geschichte des X-Window-Systems und den neuen Extensions: René Rebe, "Ein neuer Start", Linux-Magazin 11/2004, S. 84ff.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-04-05 11:10

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]