WUXGA Auflösung im Dualmonitorbetrieb mit Virtualbox

Unter Umständen kann es passieren, das man 2 TFT Display’s hat mit einer Auflösung von 1920 x 1200 Pixeln und Linux als Gast unter Virtualbox im Vollbildmodus und Dualmonitorbetrieb nutzen möchte.
Nachdem man sich die Gast-Tools von Virtualbox installiert hat stehen einem weitere Auflösungen für das Display bereit. Doch sind hier die von Virtualbox dem Gast bekannt gemachten Auflösungen der Displays VBOX0 und VBOX1 nicht ganz vollständing.

Hier fehlt einfach der WUXGA Modus mit 1920 x 1200 Pixel. Selbigen muss man aktuell noch von Hand hinzufügen. Helfen tut einem hier wieder das Tool ‘xrandr’, welches den X-Server zur Laufzeit konfigurieren kann.
Erstmal schaut man sich durch einen einfachen Aufruf von ‘xrandr’ an, wie das aktuelle System sich so einem darstellt.
Eine Ausgabe könnte wie folgt aussehen ..
Screen 0: minimum 64 x 64, current 2048 x 768, maximum 32000 x 32000
VBOX0 connected 1024.x768+0+0 0mm x 0mm
1024x768 60.0 + 60.0
1600x1200 60.0
1440x1050 60.0
1280x960 60.0
800x600 60.0
640x480 60.0
VBOX1 connected 1024.x768+0+0 0mm x 0mm
1024x768 60.0 + 60.0
1600x1200 60.0
1440x1050 60.0
1280x960 60.0
800x600 60.0
640x480 60.0

Das sieht auf den ersten Blick nicht fein aus. Erstens sind beide Displays auf einer kleinen Auflösung von nur 1024 x 768 eingestellt und zweitens findet man hier in der Liste keinen Modus für eine Auflösung von 1920 x 1200 Pixeln.
Dies wollen wir hier ändern.
Zum testen kann man sich in seinem Home-Verzeichnis erstmal mittels “touch dualmonitor.sh” ein Script anlegen und ausführbar gestalten ‘chmod +x dualmonitor.sh’.
Dort packt man das folgendes rein ..
xrandr --newmode "1920x1200_60.00" 193.25 1920 2056 2256 2592 1200 1203 1209 1245 -hsync +vsync
xrandr --addmode VBOX0 "1920x1200_60.00"
xrandr --addmode VBOX1 "1920x1200_60.00"
xrandr --output VBOX0 --mode 1920x1200_60.00 --left-of VBOX1
xrandr --output VBOX1 --mode 1920x1200_60.00

In der ersten Zeile wird dem X-Server erstmal eine neue Auflösung bekannt gemacht. Dies kann man nur einmal pro X-Server-Session aufrufen. Der erste Aufruf von ‘–newmode’ wird funktionieren. Ein weiterer Aufruf wird mit einer nicht so ganz eindeutigen Fehlermeldung abbrechen.
X Error of failed request: BadName (named color or font does not exist)
Major opcode of failed request: 149 (RANDR)
Minor opcode of failed request: 16 (RRCreateMode)
Serial number of failed request: 27
Current serial number in output stream: 27

Für unseren Test hier heisst dies, das man bei wiederholtem Aufrufen der ‘dualmonitor.sh’ selbige Zeile dann einzukommentieren hat.
Die beiden Zeilen mit ‘–addmode’ machen den neuen Modus als möglichen Modus den beiden Bildschirmen VBOX0 und VBOX1 bekannt. Erst jetzt kann man seine beiden Bildschirme konfigurieren. Zum einen positionieren wir hier VBOX0 als links neben VBOX1 und setzen beide Displays auf den neuen Modus ‘1920x1200_60.00’.
Natürlich ist es nervig, nach jedem Login dieses Script ausführen zu müssen. Auch kann es sein, das andere User des Gast-Systems in den Genuss beider Bildschirme kommen wollen. Aus diesem Grund macht es nach erfolgreichem Test Sinn, selbige Konfiguration global im System zu hinterlegen.
Der X-Server sieht dazu ein Verzeichnis in ‘/etc/X11/Xsession.d/’ vor, in welchem eigene Konfigurationsscripts hinterlegt werden können. Dazu reicht es jetzt, das gerade erstellte und getestete Script in selbiges Verzeichnis als Root-User zu kopieren mittels ‘sudo cp dualmonitor.sh /etc/X11/Xsession.d/90×11-virtualbox-wuxga’ .
Ab diesem Moment wird bei jedem System-Start der neue Modus dem System bekannt gemacht und beide Bildschirme korrekt positioniert und eingestellt. Führt man jetzt einen Neustart des Systems durch, wird bei Erfolg sich einem schon der Login-Screen in korrekter Auflösung präsentieren.