Man möchte ein vorhandenes Android-Tablet als externen Monitor an seinem Linux-Desktop benutzen.
Dabei ist aber auch jeder andere Rechner, der einen VNC-Client benutzen kann geeignet.
Das Geheimnis liegt darin, auf dem vorhandenen X-Server-Screen ein virtuelles Display zu definieren, dessen Bereich dann von einem VNC-Server im Netzwerk bereitgestellt wird.
Zuerst wollen wir auf dem Host mal den VNC-Server installieren, TightVNC bietet sich da ganz gut an. Darüber hinaus brauchen wir noch x11vnc.
olly@horus:~ $ sudo apt-get install tightvncserver x11vnc
Nun brauchen wir erstmal eine passende modeline. Bevor wir die erzeugen können, ist es sinnvoll die aktuelle Auflösung von seinem Tablet zu kennen. Die ist schnell herausgefunden, indem man mit einem Browser vom Tablet aus die Seite https://whatismyandroidversion.com/ aufruft.
Im Folgenden gehen wir von einer Auflösung von 1440x900 aus!
Jetzt generieren wir die Modeline mittels:
olly@horus:~ $ gtf 1440 900 60 # 1440x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 106.47 MHz Modeline "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
Cool! Mit dieser Info im Clipboard machen wir uns an die Definition des virtuellen Monitors!
Dazu benutzen wir xrandr:
olly@horus:~ $ xrandr --newmode "1440x900_60.00" 106.47 1440 1520 1672 1904 900 901 904 932 -HSync +Vsync
Sehr schön. Als nächstes verknüpfen wir den eben hinzugefügten Mode mit einem Display. Wir wollen hier ein virtuelles Display verwenden (vorher sollte man sich aber mittels xrandr vergewissern, dass es vorhanden und unbenutzt ist)
olly@horus:~ $ xrandr --addmode VIRTUAL1 1440x900_60.00
Alles klar, nun definieiren wir noch flott die Position unseres neuen, virtuellen Displays:
olly@horus:~ $ xrandr --output VIRTUAL1 --mode 1440x900_60.00 --left-of eDP1eDP1 ist mein Laptop-Bildschirm, der muss natürlich entsprechend angepasst werden! Auch diese Info bekommt man, indem man ein simples xrandr ausführt.
So weit, so gut. Als letztes starten wir den VNC-Server
olly@horus:~ $ x11vnc -clip 1440x900+0+0Hinweis: Wenn man sich den virtuellen Monitor woanders hingeschoben hat (z.B. mittels arandr), dann muss der Wert des -clip-Parameters der aktuellen Position des virtuellen Monitors angepasst werden. Die bekommt man wie folgt raus:
olly@horus:~ $ xrandr | grep VIRTUAL1 VIRTUAL1 connected 1440x900+480+1080 (normal left inverted right x axis y axis) 0mm x 0mmIn diesem Beispiel müsste der VNC-Server also so gestartet werden:
olly@horus:~ $ x11vnc -clip 1440x900+480+1080
Um es sich einfach zu machen und nicht lange mit den Positionswerten des virtuellen Displays herumfrickeln zu müssen, tuts auch ein simples
x11vnc -clip $(xrandr | grep VIRTUAL1 | cut -d" " -f3)
Nun braucht man auf dem Tablet nur noch den VNC-Client zu starten und an
Port 5900 des Servers zu verbinden.
Als VNC-Client für android bietet sich übrigens
bVNC Pro ganz gut an, da diese App auch den
Cursor des Servers anzeigt!
Hier nocheinmal zur Verdeutlichung der Aufbau des nun aktuellen X-Screens
(dem gesamten Desktop, welcher sich über alle 4 Monitore erstreckt):
und die dazu passende Ausgabe von xrandr:
olly@horus:~ $ xrandr Screen 0: minimum 8 x 8, current 5206 x 1980, maximum 32767 x 32767 eDP1 connected primary 1366x768+1920+516 (normal left inverted right x axis y axis) 340mm x 190mm 1366x768 60.00*+ DP1 connected 1920x1080+3286+36 (normal left inverted right x axis y axis) 470mm x 270mm 1920x1080_60.00 59.96*+ HDMI1 disconnected (normal left inverted right x axis y axis) HDMI2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 520mm x 290mm 1920x1080_60.00 59.96 + VIRTUAL1 connected 1440x900+480+1080 (normal left inverted right x axis y axis) 0mm x 0mm 1440x900_60.00 60.00* VIRTUAL2 disconnected (normal left inverted right x axis y axis)