Manchmal ist es nicht schlecht, wenn man sich mal kurz auf den Raspberry Pi per VNC draufschalten kann. Nun kann man zwar einfach einen VNC-Server wie TightVNC installieren, allerdings stellt dieser einen zusätzlichen virtuellen Bildschirm bereit. Ich möchte aber genau das sehen, was auch wirklich auf dem angeschlossenen Bildschirm dargestellt wird. Hierzu benötigt man das Paket x11vnc
Also:
sudo apt-get updatesudo apt-get install x11vnc
Und danach startet man das ganze einfach aus einer SSH-Sitzung heraus mit
x11vnc -usepw -forever -display :0
Die Option „-forever“ besagt, das der VNC-Server auch nach der Verbindungstrennung weiterläuft. Mit „-usepw“ wird man beim ersten Aufruf nach einem VNC-Kennwort gefragt. Das sollte man nun festlegen. Es hat mit dem Linux-Benutzerpasswort nichts zu tun. Hier geht es um das Passwort, das man beim Verbindungsaufbau in seinem VNC-Client eingeben muss. Ein Readonly-Kennwort muss man nicht vergeben.
Der Verbindungsaufbau zum VNC-Server ist nun so lange möglich, wie die aktuelle SSH-Session läuft bzw. so lange bis man mit Strg + C den Server beendet hat.
Um eine Verbindung aufzubauen benötigt man einen beliebigen VNC-Client, den es für fast alle Betriebssysteme gibt. Der Verbindungsaufbau erfolgt dann zur IP vom Raspberry Pi gefolgt von der Portnummer 5900. Also z.B. zu 192.168.178.25:5900
Manchmal wäre es schön, wenn der VNC-Server automatisch nach der User-Anmeldung gestartet werden würde. Hierzu erstellt man eine Autostart-Datei namens /home/pi/.config/autostart/X11VNC.desktop
mit folgendem Inhalt:
[Desktop Entry]
Type=Application
Name=X11VNC
Exec=x11vnc -usepw -forever -display :0
StartupNotify=false
Und nach einem Neustart vom Raspberry Pi wird nun nachdem sich der Benutzer angemeldet hat, automatisch der VNC-Server gestartet.
Nun kann es aber auch sinnvoll sein, das der VNC-Server noch vor der Benutzeranmeldung gestartet wird. Auch das geht. Zunächst muss man das VNC-Passwort an zentraler Stelle ablegen:
sudo x11vnc -storepasswd /etc/x11vnc.pass
Dann legen wir eine systemd-Unit an,
sudo nano /lib/systemd/system/x11vnc.service
mit folgendem Inhalt:
[Unit]
Description=Start X11VNC
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
Und last-but-not least wird nun noch der autostart eingerichtet:
sudo systemctl enable x11vnc.service