Aufmacher

X auf Reisen

Schnelle Auswahl verschiedener X-Konfigurationen leicht gemacht

01.03.2007
Wer mit seinem Notebook häufig verschiedene Displays in unterschiedlichen Anordnungen nutzt, weiß ein einfaches Umschalten dazwischen zu schätzen.

Sie arbeiten zu Hause an einer Präsentation. Dabei schließen Sie den Laptop an einen großen Bildschirm an. Danach erledigen Sie unterwegs im Zug noch einige Korrekturen, und schließlich führen Sie das Ergebnis im Büro an einem Beamer vor. Alles kein Problem mit der richtigen X-Konfigurationen: Neuere Distributionen schaffen den Sprung auf ein anderes Ausgabegerät meist durch einen einfachen Neustart des X-Servers. Klappt das nicht, ist Handarbeit angesagt.

Um diese Flexibilität zu erreichen, modifizieren Sie die X-Server-Konfiguration und erstellen ein kleines Shellskript, mit dem Sie das Umschalten steuern. Startet der Rechner standardmäßig in die grafische Oberfläche, steht eine Änderung des Default-Runlevels an. Diese nehmen Sie in der Datei /etc/inittab vor: Dazu wechseln Sie, noch bevor Sie sich anmelden, mit [Strg]+[Alt]+[F6] auf die Konsole; bei Suse und Debian funktioniert das Ganze auch mit [Strg]+[Alt]+[F1] bis [F6].

Nachdem Sie sich als Superuser root angemeldet haben, wechseln Sie den Runlevel für die aktuelle Sitzung mit dem Befehl init 3. Öffnen Sie mit Ihrem Lieblingseditor die Datei /etc/inittab, und suchen Sie die folgenden Zeilen:

# Default runlevel. (Do not set to 0 or 6)
id:5:initdefault:

Fügen Sie statt der 5 eine 3 ein. Damit ändern Sie den Default-Runlevel, und der Rechner startet von nun an im Mehrbenutzermodus ohne grafisches Login. Das funktioniert jedoch nicht bei allen Distributionen. Bei Slackware und Suse sollte der Wechsel der Runlevel klappen. Bei Debian und Ubuntu – hier fungiert 2 als Default-Runlevel – müssen Sie die entsprechenden Startskripte in einem der Verzeichnisse rc3.d bis rc5.d für den Start ohne grafische Oberfläche anpassen.

Diese Änderung bringt Ihnen keinerlei Nachteile im Umgang mit Ihrer Hardware ein. Auch ohne Displaymanager wie KDM oder GDM erlaubt das System das Einloggen. Mit dem Befehl startx gelangen Sie nach erfolgreicher Anmeldung in Ihre gewohnte grafische Oberfläche.

X-Server-Konfiguration

Hat bis jetzt alles ohne Probleme geklappt, editieren Sie (weiterhin als root) die Datei xorg.conf beziehungsweise die Datei XF86config im Verzeichnis /etc/X11. Beide gleichen sich im Aufbau. Im Beispiel kommt die xorg.conf zum Einsatz. In ihr legen Sie alle Parameter für den X-Server, wie zum Beispiel die Auflösung, Tastaturlayout und Mauskonfiguration fest.

Vor dem Bearbeiten sollten Sie allerdings dringend ein Backup der bisher benutzten Datei anlegen. Das geht am schnellsten mit dem Befehl cp xorg.conf xorg.conf.bak. Jetzt kann im Falle fehlerhafter Einträge oder nicht kompatibler Einstellung nicht viel passieren. Mit dem Zurückkopieren stellen Sie den Status quo ante wieder her.

Nun editieren Sie die Konfigurationsdatei nach Ihren Wünschen und unter Zuhilfenahme der Readmes und Howtos für Ihre Hardware (siehe Abbildung 1). Sie finden das Nvidia-Readme unter [1], das Readme von ATI unter [2] und für Intel-Grafikchips lesen Sie unter [3] nach. Der Aufbau der Datei ist in Bezug auf Ein- und Ausgabegeräte hierarchisch: Mit der Sektion InputDevice legen Sie das Eingabegerät fest. Mehrere Geräte (Tastatur und Maus zum Beispiel) erfordern mehrere Abschnitte.

Die Sektionen Device (meist die Grafikkarte) und Monitor legen die Ausgabegeräte fest. Die Sektion Screen fasst Ausgabegeräte zusammen. Je ein Screen sowie ein oder mehrere Eingabegeräte ergeben ein Layout (Sektion ServerLayout). Für verschiedene Bildschirmkonfigurationen legen Sie jeweils eigene Sektionen ServerLayout und Screen an. Jedem Modus geben Sie in der Sektion ServerLayout und Screen je einen passenden Identifier, also Namen für die Konfiguration, unter der Sie den entsprechenden Modus später aufrufen wollen.

Abbildung 1: In der Treiberreferenz finden Sie alle Informationen zur Konfiguration der Grafikkarte.

Unter der Haube

Dieser Artikel arbeitet mit den Beispielkonfigurationen Clone (Listing 1) und Dualhead (Listing 2) für einen Computer mit Nvidia-Grafikkarte. Beide Listings zeigen nur einen Auszug aus der xorg.conf. Um sich das Abtippen zu sparen, laden Sie sich eine vollständige Konfigurationen von der Website des Autors [4] herunter und passen diese an Ihr System an. Einen Überblick optionaler Features sowie weiterer Einstellungsmöglichkeiten finden Sie in der Readme des X-Projekts [5].

Listing 1
Section "ServerLayout"
    Identifier     "Clone"
    Screen         "Screen2" 0 0
    InputDevice    "Touchpad"
    InputDevice    "Mouse1" "CorePointer"
    InputDevice    "Keyboard1" "CoreKeyboard"
EndSection
Section "Screen"
    Identifier     "Screen2"
    Device         "GeForce 6200"
    Monitor        "monitor"
    DefaultDepth   24
    Option         "TwinView"
    Option         "TwinViewOrientation" "clone"
    SubSection     "Display"
        Depth       8
        Modes      "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       32
        Modes      "1024x768" "800x600" "640x480"
    EndSubSection
EndSection
Listing 2
Section "ServerLayout"
    Identifier     "Dualhead"
    Screen         "Screen1" 0 0
    InputDevice    "Touchpad"
    InputDevice    "Mouse1" "CorePointer"
    InputDevice    "Keyboard1" "CoreKeyboard"
EndSection
Section "Screen"
    Identifier     "Screen1"
    Device         "GeForce 6200"
    Monitor        "monitor"
    DefaultDepth    24
    Option         "TwinView"
    Option         "TwinViewOrientation" "LeftOf"
    Option         "Metamodes" "DFP-0: 1280x800 +0+224,CRT-0: 1280x1024 +1280+0; DFP-0: 1280x800 +0+0, CRT-0: 1024x768 +1280+32; DFP-0: 1280x800 +0+0, CRT-0: 800x600 +1280+200; DFP-0: 1280x800 +0+0, CRT-0: 640x480 +1280+320"
    SubSection     "Display"
        Depth       8
        Modes      "1280x800" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       16
        Modes      "1280x800" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       24
        Modes      "1280x800" "1024x768" "800x600" "640x480"
    EndSubSection
    SubSection     "Display"
        Depth       32
        Modes      "1280x800" "1024x768" "800x600" "640x480"
    EndSubSection
EndSection

Im Modus Clone stellen sowohl der Notebook-Bildschirm als auch der externe Monitor exakt das gleiche Bild in der gleichen Auflösung dar. Dieser Modus heißt daher auch Klonmodus. Verwenden Sie dagegen Dualhead, teilt der Rechner das Bild auf beide Anzeigegeräte gemäß Konfiguration auf. Somit haben Sie eine größere Desktop-Oberfläche zum Arbeiten – was vor allem Grafiker, Programmierer und Tonbearbeiter zu schätzen wissen.

Beide Konfigurationen funktionieren übrigens nicht nur mit Mobile-Chipsätzen, sondern auch mit Desktoprechnern mit mehreren angeschlossenen Ausgabegeräten. In der Sektion ServerLayout der beiden Listings sehen Sie, dass sowohl Maus als auch Touchpad als Eingabegeräte aktiv sind. Für Präsentationen bieten sich auch Beamerfernbedienungen mit integrierter Maus an, die Sie als drittes Eingabegerät hinzufügen.

Für jede gewünschte Konfiguration brauchen Sie einen eigenen Abschnitt ServerLayout mit passender Sektion Screen (Listing 1 sowie Listing 2). Das ist nötig, um gesonderte Parameter zu setzen.

In der nächsten Section Monitor legen Sie die Bildwiederholfrequenzen ihrer Monitore fest. Stoßen Sie beim Anschließen des zweiten Monitors auf Probleme bei der Bildwiederholfrequenz, kann es helfen, in der Section Device die folgenden Zeilen einzufügen:

Option "SecondMonitorHorizSync" "Horizontalfrequenz"
Option "SecondMonitorVertRefresh" "Vertikalfrequenz"

Mit diesen Zeilen überschreiben Sie die von EDID erkannten Frequenzen und weisen sie dem zweiten Wiedergabegerät fest zu.

Den Abschluss bildet die Screen-Section. Bis auf zwei Optionen sieht diese aus wie jede herkömmliche. Nach den Einträgen Identifier, Device, und Monitor wählen Sie Ihre Standardfarbtiefe (Zeile 13). Die Zeilen 14 und 15 machen Ihre Grafikkarte fit für den Doppelmodus. Die Option Twinview macht deutlich, dass nun zwei Monitoren leuchten sollen. Mit TwinViewOrientation geben Sie an, in welcher Weise. Dank Clone zeigen beide Monitore das gleiche an.

Jetzt legen Sie in der Subsection die möglichen Bildschirmauflösungen fest. Höher als 1024x768 Pixel sollten Sie nicht gehen, da nur wenige Beamer höhere Auflösungen unterstützen. Damit wären die wichtigsten Änderungen für den Clone-Modus gemacht. Einen ersten Test nehmen Sie mit startx -- -layout Clone vor. Jetzt sollten Sie auf dem Notebook-Bildschirm und dem angeschlossenen Monitor beziehungsweise Beamer das gleiche Bild sehen.

Alarmstufe Rot

Geht wider Erwarten etwas schief und das X-Window-System arbeitet nicht wie erwartet, gibt es zwei Möglichkeiten: Die erste ist, dass X gar nicht erst startet und Sie nach dem Durchlaufen einiger Meldungen wieder auf der Konsole landen. Dann gilt es die xorg.conf weiter zu modifizieren, bis der Start der grafischen Oberfläche klappt.

Als Verursacher des Problems entpuppen sich meist fehlerhafte Identifier, falsch ausgeschriebenen Treibernamen oder einfach nicht korrekten Auflösungen und Bildwiederholfrequenzen. Zum näheren Eingrenzen des möglichen Fehlers führen Sie das Kommando less /var/log/X.org.log | grep WW aus (siehe Abbildung 2). Es zeigt alle aufgetretenen Fehler an.

Abbildung 2: Wenn etwas schieflaufen sollte, liefert die X.org-Logdatei wertvolle Informationen bei der Suche nach Fehlern.

Das zweite Fehler-Szenario ist, dass X startet, aber kein ordentliches Bild anzeigt. Hier entkommen Sie, indem Sie zweimal kurz hintereinander die Tastenkombination [Strg]+[Alt]+[Rückschritt] drücken. Das beendet den laufenden X-Server, und Sie landen wieder auf der Konsole. Zur Beheben der Fehler gehen Sie wie im ersten Fall vor.

Das Listing 2 beschreibt die erforderlichen Änderungen der xorg.conf für den Betrieb im Splitscreenmodus. Die ersten Schritte entsprechen denen im Listing 1. Nach dem Identifier fügen Sie in dieser Konfiguration wieder die Option TwinView hinzu (Zeile 14).

In der folgenden Zeile legen Sie fest, auf welcher Seite der externe Monitor steht. Möglich sind die Parameter LeftOf, RightOf, Above und Below. Der fünfte mögliche Parameter, Clone, ist nur für den oben beschriebenen Präsentationsmodus nötig. In Zeile 16 legen Sie die so genannten Metamodes fest. Diese ermöglichen, Displays in verschiedenen Auflösung gleichzeitig zu betreiben. Der Eintrag sieht wie folgt aus:

Bezeichner: Auflösung +X-Offset+Y-OffsetOffset-Auflösung

Gleiches gilt für zweites Display. Unser Beispiel verzichtet auf das Offset.

Das Offset ist nötig, wenn Sie eine virtuelle über die reelle Auflösung legen möchten, um zum Beispiel tote Flächen zu vermeiden. Mit dem X- und der Y-Offset bestimmen Sie exakt, wo sich der zweite Bildschirm befindet. Sie benötigen diese Option nur, wenn Sie verschiedene Auflösungen nutzen.

In der Subsection Display konkretisieren Sie die möglichen Bildschirmauflösungen. Hier setzen Sie die Auflösungen des Hauptbildschirms ein. Damit ist Ihre xorg.conf bereit für den Betrieb einer geteilten Arbeitsfläche auf zwei Monitoren.

Jetzt testen Sie, ob diese Konfigurationen wie gewünscht funktioniert, indem Sie den X-Server als normaler User mit dem Befehl startx -- -layout Dualhead starten. Klappt alles und zeigt die Konsole keine Fehler an, haben Sie diesen Teil Ihrer Konfiguration-Datei korrekt geschrieben. Nun ist Ihre neue xorg.conf für das X-Start-Script fertig.

Das X-Start-Skript

Jetzt fehlt nur noch ein Skript zum schnellen und bequemen Aufruf der verschiedenen Bildschirmlayouts. Dazu erstellen einfach eine Datei namens xstart in ihrem Home-Verzeichnis. Der Name ist leicht zu merken; Sie sollten ihn aber nicht mit startx verwechseln. Öffnen Sie die neue Datei mit Ihrem Lieblingseditor und fügen Sie die Zeilen aus Listing 3 ein – oder laden Sie sich das Skript von der Heft-CD oder aus dem Netz [6] herunter.

Listing 3
#!/bin/bash
#
# Shell-Skript zum Starten von X
# in verschiedenen Konfigurationen.
echo
echo "Auswahl der X-Konfiguration"
echo "==========================="
echo "Default      : [Enter]"
echo "Präsentation : [p]"
echo "Splitscreen  : [s]"
echo "Abbrechen    : [q]"
echo -n "? "
read MODI
case $MODI in
        p)
        echo "Starte Modus Präsentation…";
        sleep 1;
        startx – -layout Clone
        ;;
        s)
        echo "Starte Modus Splitscreen…";
        sleep 1;
        startx – -layout Dualhead
        ;;
        q)
        exit 0
        ;;
        *)
        echo "Starte Default-Modus…";
        sleep 1;
        startx
        ;;
esac

Das Skript besteht im wesentlichen einer Ausgabe, die die verschiedenen Modi anzeigt, der Abfrage der Auswahl und einer darauf folgenden Fallunterscheidung. Mit dem Befehl echo geben Sie Text auf die Standardausgabe aus. Mit read lesen Sie die Eingabe ein. Die Fallunterscheidung case entspricht einer gestaffelten If-Konstruktion, ist jedoch wesentlich kürzer und für diesen Zweck wie gemacht.

Mit case untersuchen Sie den Inhalt der Variablen und definieren für jeden möglichen Parameter eine Aktion. Das Sternchen schließt die Liste ab und steht für alle außer den angegebenen Parametern. Jeden Fall schließen Sie mit einem doppelten Semikolon ab. Das komplette Konstrukt beenden Sie mit esac.

Im Listing stehen die Parameter p und s für die beiden Beispielkonfigurationen, die Sie zuvor in der xorg.conf festgelegt haben. Genauso verfahren Sie für weitere Modi. Hinter -layout ersetzen Sie dann jeweils den Eintrag für das von Ihnen definierte Layout. Ist das Skript komplett, kopieren Sie es als root ins Verzeichnis /usr/local/bin und machen es mit chmod +x ausführbar.

Zu guter Letzt legen Sie, falls noch nicht vorhanden, im Home-Verzeichnis die Datei .xinitrc beziehungsweise je nach Distribution eine .xsession an. In Ihr definieren Sie Ihren Standard-Windowmanager. Fügen Sie zum Beispiel zum Start von Fluxbox die Zeile exec /usr/X11R6/bin/startfluxbox ein oder für den von KDE exec /opt/kde/bin/startkde, gefolgt von einer Leerzeile. Andere Oberflächen rufen Sie analog auf. Machen den Pfad zur Startdatei mit dem Kommando which ausfindig: Also zum Beispiel which startkde für die KDE-Umgebung.

Haben Sie den letzten Schritt erfolgreich gemeistert, steht dem eigentlichen Gebrauch des neuen Skripts nichts mehr im Wege. Geben Sie den Befehl xstart ein (siehe Abbildung 3) und wählen die von Ihnen vergebene Taste. Jetzt sollte X in der von Ihnen gewünschten Konfiguration starten.

Abbildung 3: Haben Sie alles richtig gemacht, starten Sie demnächst Ihre grafischen Oberfläche über ein Skript.

Nvidia-Settings

Alternativ zum händischen Anpassen der xorg.conf ermöglicht das Tool Nvidia-settings das Einstellen der Konfiguration über ein grafisches Frontend. Mit dem im November freigegeben Treiber-Release 1.0-9629 aktualisierte der Hersteller auch das Hilfswerkzeug und erweiterte es im Funktionsumfang.

Die Gtk-basierte Software startet nach Eingabe von nvidia-settings auf der Kommandozeile. Unter X Server Display Configuration wählen Sie aus, auf welchem der erkannten Monitore der X-Server das Bild in welcher Weise ausgibt. Nach dem Wechsel in das Konfigurationsmenü sollte das zumindest den Hauptbildschirm erkannt haben.

Zusätzliche Monitore zeigt die Software nach Drücken auf Detect Displays an. Jetzt nehmen Sie alle Einstellungen vor. Mit Configure bestimmen Sie, in welchem Modus der X-Server läuft. Zur Auswahl stehen Disabled, Separate X screen und die bekannte Option TwinView (Abbildung 4). Nachdem Sie Ihre Wahl getroffen haben, legen Sie bequem in den Dropdownmenüs die Bildschirmauflösung und Position fest (Abbildung 5).

Im erweiterten Modus den Sie durch Drücken der Schaltfläche Advanced erreichen, stellen Sie unter anderem das so genannte Panning ein. Mit letzterem legen Sie eine virtuelle Bildschirmgröße fest, die zumeist kleiner als die wirkliche Auflösung ist. Damit vermeiden Sie blinde Bereiche, also solche, die nicht sichtbar und nutzbar sind. Weiterhin richten Sie im erweiterten Modus zusätzliche Metamodes ein.

Abbildung 4: Ein großer X Screen oder lieber zwei separate? Das Tool Nvidia-settings bietet beide Möglichkeiten zur Auswahl an.
Abbildung 5: Drunter oder drüber? Nvidia-settings ermöglicht schnell und einfach die Auswahl, in welcher Position das Notebook zum angeschlossenem CRT-Monitor steht.

Möchten Sie im Anschluss die zusammengestellte Konfiguration speichern, gelingt das nur, wenn Sie das Programm als root einsetzen. Als normaler User ohne Root-Rechte bleibt das Betätigen der Schaltfläche Save to X Configuration File ohne Erfolg. Hier hilft folgende Vorgehensweise: Geben Sie einen Speicherort in Ihrem Home-Verzeichnis an und kopieren Sie die neue xorg.conf mit dem Befehl cp als Superuser ins Verzeichnis /etc/X11.

Doch noch ist Nvidia-Settings nicht vollkommen ausgereift. So fehlt zur Zeit eine Pivot-Funktion, also das Drehen der Anzeigefläche. Auch eine Möglichkeit zum schnellen Umschalten der Profile ist bisher nicht implementiert. Alles in allem erweist sich das Programm aber als eine gute Hilfe für Linux-Nutzer, die die Kommandozeile und den Editor zum Bearbeiten von Konfigurationsdateien scheuen. Sie gewinnen jedoch Zeit, wenn Sie mit separaten Konfigurationen in der xorg.conf in Kombination mit dem Skript arbeiten.

Glossar

EDID

Extended Display Identification Data. Informationen, die der Monitor dem Computer zur Identifikation über die Schnittstelle DDC sendet. DDC bezeichnet die serielle Schnittstelle zwischen Grafikkarte/Computer und Bildwiedergabegerät. Sie ermöglicht den Datenaustausch zur automatischen Auswahl von Treiber und Konfiguration.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare