22
Ubuntu: Dual-Head ohne X-Server-Neustart
Leider bietet Ubuntu Intrepid Ibex immer noch keine Moeglichkeit einen zweiten Bildschirm im laufenden Betrieb an- und abzustoepseln und darauf entsprechend zu reagieren. So kann der Benutzer leider nicht im laufenden Betrieb in den Dual-Head-Modus wechseln, wenn er zuvor im Single-Head-Modus unterwegs war. Wenn man es genau nimmt ist es kein Problem von Ubuntu selbst, sondern vom X-Server.
Ich habe mir ueberlegt, wie man vielleicht doch eine einigermassen akzeptable Loesung realisieren kann, bei der es nach Moeglichkeit nicht notwendig ist, den X-Server neu zu starten. Dies laesst sich in der Tat realisieren, wenn auch mit einigen Tricks. Im Folgenden zeige ich, wie ich es in meinem System umgesetzt habe.
Wichtig ist zudem zu sagen, dass ich eine Nvidia-Grafikkarte benutze und den proprioritaeren Treiber nvidia benutze. Ich habe keine Informationen darueber, ob sich der von mir eingeschlagene Weg auch mit anderen Grafikkarten nachvollziehen laesst.
Vorarbeit
Ihr solltet eine Sicherung eurer X-Server-Konfigurationsdatei xorg.conf (Ort: /etc/X11/xorg.conf) anlegen. Dies erleichert es euch, bei fehlgeschlagenen Versuchen zur Not wieder die bisherige Konfiguratinsdatei zu laden.
Weiterhin solltet ihr euren X-Server mit angeschlossenem externen Monitor starten und das grafische Tool nvidia-settings bemuehen, um herauszufinden, wie eure angeschlossenen Geraete bezeichnet werden. Diese sind unter eurer Grafikkarte (in den meisten Faellen wohl “GPU-0 – Grafikkartenname” verzeichnet.
Bei mir sieht das so aus:
Wichtig ist jetzt die interne Bezeichnung, also DFP-0 fuer den Notebookbildschirm (auch LPL genannt), sowie DFP-1 fuer den externen Monitor, in meinem Beispiel vom Typ Samsung SyncMaster. Der externe Monitor kann dabei folgende Typenbezeichnungen haben: CRT, DFP und TV Dazu kommt jeweils noch eine laufende Nummer. Je nach Anschlussart ist der Name unterscheidlich, also muesst ihr die Bezeichnung auf jeden Fall nachschauen, denn diese Bezeichnung brauchen wir spaeter noch!
X-Server manipulieren
Nun muessen wir dem X-Server bei jedem Start vorgaukeln, dass wir uns im Dual-Head-Modus befinden und dass immer(!) ein externer Monitor angeschlossen ist, auch wenn wir diesen im laufenden Betrieb ab- und wieder anstoepseln. Dazu sucht ihr in eurer X-Server-Konfigurationsdatei nach der Section “Screen”. Diese erweitern wir nun um ein paar Einstellungen:
Option "TwinView" "True"
Option "TwinViewXineramaInfoOrder" "DFP-0"
Option "ConnectedMonitor" "DFP-0, DFP-1" # Achtung: Ueberschreibt alle vom X-Server automatisch erkannten Geraete!
Option "metamodes" "DFP-0:1440x900,DFP-1:NULL"
Was wir damit bewirken ist, dass der X-Server, dank der Einstellung ConnectedMonitor, immer davon ausgeht, dass sowohl der interne Bildschirm (im Beispiel DFP-0) als auch der externe Bildschirm (im Beispiel DFP-1) angeschlossen sind. Zudem befindet sich der X-Server im TwinView, also im Dual-Head-Modus. Der Clou besteht nun darin mittels den metamodes den externen Monitor auszuschalten, d.h. mit nur einem aktiven Bildschirm zu starten. Mit den metamodes lassen sich moegliche Aufloesungen festlegen. Es ist wichtig an dieser Stelle nur eine einzige Moeglichkeit zu waehlen um den X-Server dazu zu zwingen diese Einstellung zu laden. Der Versuch mehrere metamodes zu definieren, um zwischen diesen mit Ubuntu-Hausmitteln wechseln zu koennen, ist bei mir fehlgeschlagen. Soweit ich richtig informiert bin, ist dies auch nicht moeglich aufgrund den Einschraenkungen des X-Servers.
Startet man den X-Server nun neu, so startet er zwar im Dual-Head-Modus, jedoch mit nur einem aktiven Bildschirm. Die Arbeitsflaeche ist in dem Beispiel dann genau 1440×900 Pixel gross, also genau so gross wie wir es in der metamodes definiert haben. Diese Einstellung muesst ihr natuerlich eurem System anpassen!
Achtung: Es ist wichtig, dass ihr beim Laden des X-Servers den externen Monitor angesteckt habt, da nur dann die richtige Aufloesung eures externen Monitors erkannt wird. Lasst ihr den Monitor beim Laden des X-Servers abgesteckt, so stehen hoechstens 640×480 Pixel zur Verfuegung!
Die Einstellungen in der X-Server-Konfigurationsdatei erlauben es nun, im laufenden Betrieb mittels dem grafischen Tool nvidia-settings den externen Monitor von seinem Schlaf erwachen zu lassen, und die beiden Bildschirme beliebig zu positionieren, wie man es auch sonst gewohnt ist. Dazu genuegt es in oben genanntem Tool unter “X Server Display Configuration” den externen Monitor auswaehlt und die Aufloesung (engl: Resolution) auf Auto setzt. Danach muss die Einstellung nur noch akzeptiert werden und schon wird der externe Monitor aktiv.
Ergaenzende Informationen
Die von mir vorgeschlagene Methode eignet sich besonders dann, wenn man normalerweise ohne externen Bildschirm startet und diesen spaeter zusaetzlich zuschalten moechte. Die Methode laesst sich jedoch auch umgekehrt verwenden, d.h. um mittels dem Metamode zunaechst beide Bildschirme zu aktivieren und gegebenfalls spaeter den externen Monitor zu deaktiveren. Dabei empfiehlt es sich aber sehr von der Option TwinViewXineramaInfoOrder Gebrauch zu machen und damit die Panels immer dem Notebookmonitor zuzuweisen. Denn dann kann bei einem Start ohne externen Monitor noch auf das Panel zugegriffen werden. Setzt man diese Einstellung nicht, kann es sein, dass der nicht angeschlossene externe Monitor die Panels zugewiesen bekommt. Dann kann der Benutzer nicht mehr ohne weiteres auf die Panels zugreifen.
Durch das Ueberschreiben der automatisch erkannten weiteren Monitore mittels der Option ConnectedMonitor, ist es nur moeglich Monitore zu betreiben, die die gleiche Bezeichnung bekommen. Schliesst man noch einen dritten Monitor an, oder einen Monitor, der eine andere Bezeichnung bekommt, so muss man die X-Server-Konfigurationsdatei neu anpassen und damit auch den X-Server mindestens einmal neu starten, um die Einstellung temporaer oder dauerhaft zu uebernehmen. Ausserdem muss dann unbedingt die X-Server-Konfigurationsdatei mit den neuen Einstellungen ueberschrieben werden. D.h. fuer Personen, die haeufig unterschiedliche externe Monitore an Ihre Notebooks anschliessen, eignet sich diese Moeglichkeit nicht.
Ich wuensche euch viel Spass beim Ausprobieren. Ich hoffe es klappt bei euch so gut, wie es bei mir klappt!

Ich habe mit xrandr gute Erfahrung gemacht. Mein Problem ist, dass ich in der Arbeit mit dem Laptop oft schnell einmal mit dem einen oder anderen Monitor, vielleicht auch Beamer oder Doking-Station verbinden muss. Ein ständiges Ändern irgendeiner Konfiguration wäre zu umständlich. xrandr zeigt mir sofort die möglichen Einstellungen (vor allem Auflösungen) und lässt sie on-the-fly setzen, ohne das System neu starten zu müssen. Wird über die Konsole installiert und betrieben (ein “man xrandr” gibt Aufschluss über die Verwendung).