Vor einiger Zeit habe ich eine recht umfangreiche Anleitung zusammengestellt, wie man auf einem Raspberry Pi einen VNC-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 mit anderslautenden Optionen!)
Hallo,
es ist toll eine Sesion mit vncviewer machen. Ich habe manche Beschreibungen dazu gefunden. Aber selten oder kaum zu finden ist, wie kann ich gleichzeitigt mehrere vnc sesionenauf einem Raspi starten und benutzen?
Anwendung – mehrere Win Clients arbeiten mit einem Lin Raspi.
Werde Ihnen dankbar, fuer einen Hinweis, wo es zu finden ist.
MFG
trzetrzebinski
Grundsätzlich können in der service-Datei ohne weiteres mehrere VNC-Server gestartet werden. Das Script lässt sich auch so modifizieren, dass quasi als Parameter die Nummer des VNC-Servers übergeben wird (siehe den archlinux-Link). Möglicherweise ist es für Ihre Zwecke aber besser, anstelle von VNC auf RDP (Remote Desktop Protocol) zu setzen. Pi-seitig ist dazu eigentlich nur `apt-get install xrdp` erforderlich. Ich habe vor, morgen oder übermorgen einen entsprechenden Blog-Beitrag zu verfassen.
.. kleiner Tippfehler am Anfang:
“ … Raspberry Pi einen VCN-Server einrichtet. …“
Sonst super Buch und tolle Seite!
ist korrigiert, danke
Die VNC-Verbindung hat bisher gut funktioniert. Nach einem update bekomme ich beim Start des vncserver folgende Meldung:
pi@raspberrypi:~ $ systemctl status vncserver
● vncserver.service – Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver.service; enabled)
Active: failed (Result: exit-code) since Mit 2016-08-10 11:17:06 CEST; 48s ago
Process: 679 ExecStart=/usr/bin/vncserver -geometry 1300×800 -depth 16 :1 (code=exited, status=98)
Process: 585 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
pi@raspberrypi:~ $ vncserver version
TightVNC Server version 1.3.9
Können Sie mir bitte helfen?
Ad-hoc habe ich keine Ahnung, was da schief läuft. Ich habe aktuell auch keinen Pi mit VNC. Bin mitterlweile auf RDP umgestiegen, das macht weniger Ärger …
Was liefert
sudo journalctl | grep vnc
?Hallo
Walter Daser
Ich bin gerade dabei ebenfalls eine vnc Verbindung zu machen. Funkt.auch.
Nun etwas ganz anderes.
Ich bin über Deinen Namen gestolpert.
Mein Name ist Michael Daser und habe einen Bruder mit Deinem Namen.
Das ist doch nicht alltäglich. Mein Bruder hat nämlich mit Computern rein gar nichts am Hut.
Wäre nett von Dir zu hören.
meine E-Mail m.daser@gmx.de
Ist es weiterhin möglich den VNC-Server über einen SSH-Tunnel, wie in dem Kapitel 4.4 beschrieben, abzusichern?
Nachdem ich nach der Anleitung die Installation durchgeführt hatte und vncserver gestartet, kamen Fehlermeldungen:
Would you like to enter a view-only password (y/n)? n
xauth: file /root/.Xauthority does not exist
Couldn’t start Xtightvnc; trying default font path.
Please set correct fontPath in the vncserver script.
Couldn’t start Xtightvnc process.
12/02/17 17:31:03 Xvnc version TightVNC-1.3.9
12/02/17 17:31:03 Copyright (C) 2000-2007 TightVNC Group
12/02/17 17:31:03 Copyright (C) 1999 AT&T Laboratories Cambridge
12/02/17 17:31:03 All Rights Reserved.
12/02/17 17:31:03 See http://www.tightvnc.com/ for information on TightVNC
12/02/17 17:31:03 Desktop name ‚X‘ (osmc:1)
12/02/17 17:31:03 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
12/02/17 17:31:03 Listening for VNC connections on TCP port 5901
Font directory ‚/usr/share/fonts/X11/misc/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/Type1/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/75dpi/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/100dpi/‘ not found – ignoring
Fatal server error:
could not open default font ‚fixed‘
12/02/17 17:31:04 Xvnc version TightVNC-1.3.9
12/02/17 17:31:04 Copyright (C) 2000-2007 TightVNC Group
12/02/17 17:31:04 Copyright (C) 1999 AT&T Laboratories Cambridge
12/02/17 17:31:04 All Rights Reserved.
12/02/17 17:31:04 See http://www.tightvnc.com/ for information on TightVNC
12/02/17 17:31:04 Desktop name ‚X‘ (osmc:1)
12/02/17 17:31:04 Protocol versions supported: 3.3, 3.7, 3.8, 3.7t, 3.8t
12/02/17 17:31:04 Listening for VNC connections on TCP port 5901
Font directory ‚/usr/share/fonts/X11/misc/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/Speedo/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/Type1/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/75dpi/‘ not found – ignoring
Font directory ‚/usr/share/fonts/X11/100dpi/‘ not found – ignoring
Fatal server error:
could not open default font ‚fixed‘
Gibt es dazu eine Lösung?
Haben Sie den vnc-Server zuerst einmal manuell gestartet und getestet? Dann müsste das Passwort gesetzt sein.