Vor einiger Zeit habe ich eine recht umfangreiche Anleitung zusammengestellt, wie man auf einem Raspberry Pi einen VCN-Server einrichtet. Diese Anleitung trifft zum größten Teil weiterhin zu. Da Raspbian Jessie nun aber Systemd als Init-System verwendet, liegt es nahe, den automatischen Start des VNC-Servers mittels Systemd zu konfigurieren.
Voraussetzungen
Zuerst installieren Sie den VNC-Server und probieren diesen aus, in dem Sie ihn manuell starten:
sudo apt-get install tightvncserver
vncserver
Password: ******
Verify: ******
Would you like to enter a view-only password? n
New 'X' desktop is raspberrypi:1
Das beim ersten Start angegebene VNC-Passwort wird in der Datei .vnc/passwd
in verschlüsselter Form gespeichert.
vncserver.service-Datei einrichten
Damit Systemd den VNC-Server starten kann, müssen Sie die service-Datei /etc/systemd/system/vncserver.service
einrichten. Diese muss den folgenden Inhalt haben:
# neue Datei /etc/systemd/system/vncserver.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=pi
PAMName=login
PIDFile=/home/pi/.vnc/%H:1.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -geometry 1300x800 -depth 16 :1
ExecStop=/usr/bin/vncserver -kill :1
[Install]
WantedBy=multi-user.target
Zum Ausprobieren führen Sie dieses Kommando aus:
sudo systemctl daemon-reload && systemctl start vncserver
systemctl status vncserver
vncserver.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver.service; disabled)
Active: active (running) since Fre 2016-01-29 21:09:32 CET; 10min ago
Main PID: 14430 (Xtightvnc)
Jän 29 21:09:30 pi2 systemd[14397]:
pam_exec(login:session): conversation failed
Jän 29 21:09:30 pi2 systemd[14397]: pam_unix(login:session):
session opened for user pi by (uid=0)
...
Ich habe leider keinen Weg gefunden, die pam_exec
-Fehlermeldung zu vermeiden. Sie scheint aber keine Auswirkung auf den erfolgreichen Start des VNC-Servers zu haben.
Um den VCN-Server wieder zu stoppen, führen Sie systemctl stop
aus:
sudo systemctl stop vncserver
Wenn Sie möchten, dass der VNC-Server von nun an beim Rechnerstart automatisch aktiviert wird, führen Sie noch dieses Kommando aus:
sudo systemctl enable vncserver
Sonstige Konfigurationsdateien
Prinzipiell sollte der automatische Start des VNC-Servers nun funktionieren. Zwei Kleinigkeiten stören aber:
- Solange sich der Mauscursor nicht über einem Fenster befindet, wird dieser als hässliches X-Symbol dargestellt.
- In neuen Terminal-Fenstern ist
/
das aktive Verzeichnis, nicht/home/pi
.
Die beiden Probleme lassen sich mit wenig Mühe beheben. Zuerst laden Sie die Datei /home/pi/.vnc/xstartup
in einen Editor und ergänzen die bereits vorhandene Anweisung xsetroot -solid grey
um -cursor_name left_ptr
.
# in /home/pi/.vnc/xstartup
xsetroot -solid grey -cursor_name left_ptr
...
Anschließend laden Sie /home/pi/.bashrc
und fügen am Ende der Datei die Anweisung cd $HOME
ein:
# am Ende von /home/pi/.bashrc
...
cd $HOME
Quellen
- http://pi-buch.info/?p=87
- https://www.raspberrypi.org/forums/viewtopic.php?t=123457
- https://wiki.archlinux.org/index.php/TigerVNC (Vorsicht, beschreibt TigerVNC; dieser Beitrag bezieht sich aber auf TightVNC, dessen Optionen z.T. anders sind!)