Hallo zusammen,
in der folgenden Anleitung beschreibe ich, wie Du den installierten VNC Server unter Raspbian buster auf einem Raspberry Pi ohne lokal angeschlossenen Monitor in Betrieb nimmst.
Stand: 2020-12-16 (aktuelle raspi-config Screenshots eingefügt)
Voraussetzungen:
- Raspberry Pi mit installiertem Raspbian buster mit Desktop bzw. Raspbian buster mit Desktop und empfohlener Software
- ssh Zugang bereits aktiviert (dazu direkt nach dem flashen auf der boot Partition (FAT32) eine leere Datei namens ssh bzw. ssh.txt erstellen und den RPi dann starten lassen)
- IP Adresse bzw. Name des RPi ist bekannt
- PC, mac oder gleichwertiges Gerät mit VNC Viewer
- ein ssh Tool ist vorhanden (Linux/macOS: Bestandteil des BS // Windows: WSL, putty, mRemoteNG oder gleichwertig)
Die Beschreibungen der Videomodi finden sich hier. Beim RPi 4B darf der Composite Ausgang nicht aktiv sein.
# uncomment if hdmi display is not detected and composite is being output
hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=35
[pi4]
# Enable DRM VC4 V3D driver on top of the dispmanx display stack
#dtoverlay=vc4-fkms-v3d
max_framebuffers=2
[all]
#dtoverlay=vc4-fkms-v3d
Einrichtung:
1. ssh Verbindung zum gestarteten und am Netzwerk angemeldeten Raspberry PI herstellen User: pi Passwort: raspberry
(beim ersten Herstellen der Verbindung wird der Fingerprint des RPi abgelegt, die Frage erscheint nach Erfolg nicht wieder)
stf@Bonker:~$ ssh pi@raspberrypi
The authenticity of host 'raspberrypi (192.168.1.52)' can't be established.
ECDSA key fingerprint is SHA256:IGHMUE4vQC2rocjUcVY0aJH/UuXPVy+ssdNXopBksPA.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'raspberrypi,192.168.1.52' (ECDSA) to the list of known hosts.
pi@raspberrypi's password:
Linux raspberrypi 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Feb 23 16:16:21 2020 from 192.168.1.100
SSH is enabled and the default password for the 'pi' user has not been changed.
This is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.
Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.
pi@raspberrypi:~ $
2. Raspbian aktualisieren
3. Einstellungen (raspi-config aufrufen)
4. Einstellungen wählen
und die Frage: Would you like the VNC Server to be enabled? mit YES beantworten, die nachfolgende Erfolgsmeldung mit OK bestätigen.
5. Auflösung anpassen (weiter in raspi-config)
Die Auflösung muss gesetzt werden, damit eine vernünftige Bildgröße (RPi bis 3B+) bzw. überhaupt ein Zugriff (RPi 4B) stattfinden kann.
Greift man mit dem VNCViewer auf den Raspberry Pi zu, erhält man Zugriff auf Display:0. Man sieht also genau das, was auf einem angeschlossenen Monitor dargestellt würde. Die Auflösung entspricht dabei immer der des lokalen Displays/Monitors. Das ist vor allem bei sehr kleinen Displays mit niedriger Auflösung unzweckmäßig. Dort empfiehlt sich die Einrichtung eines virtuellen Desktop mit eigener Auflösung.
Bei allen Raspberry Pi Modellen bis hin zum Raspberry Pi 3B+ wird standardmäßig der composite Ausgang aktiviert, wenn beim Start kein Monitor über HDMI angeschlossen ist. Die Bildgröße, die VNC dann beim Zugriff nutzt, ist 656 x 416. Beim RPi 4B ist der composite Ausgang deaktiviert, so dass gar kein Zugriff erfolgen kann, wenn keine Auflösung definiert wurde. (Fehlermeldung: Cannot currently show the desktop)
gewünschte Auflösung einstellen, z.B. 1280x1024
mit OK bestätigen, und danach mit <Finish> raspi-config verlassen und die Frage nach Neustart mit YES beantworten. Danach lässt sich ein Zugriff über VNC realisieren.
Stand 2021-01-10 gilt das Folgende nicht mehr, es sind jetzt beliebige Auflösungen auch mit aktiviertem Treiber möglich.
ACHTUNG: Beim Raspberry Pi 4B ist der Eintrag in der /boot/config.txt standardmäßig
aktiv. Sollte ein RPi3xx den GL Treiber aktiviert haben, treten ähnliche Probleme auf: es sorgt dafür, dass VNC keine Auflösung größer 1024x768 (RPi4) bzw. 720x480 (RPi3) darstellt.
Weiterhin darf der Composite Ausgang nicht aktiv sein, sonst beträgt die Auflösung über VNC gerade einmal 656 x 416 Pixel, egal, welche Auflösung mit hdmi_mode/hdmi_group definiert wurde.
Willst Du eine größere Auflösung über VNC connect verwenden, dann stell folgendes in raspi-config ein:
Z) optionale Ergänzung - Einrichtung eines virtuellen Desktop mit VNC connect
Zur Einrichtung eines oder mehrerer zusätzlicher Desktops, auf die über den VNC Viewer zugegriffen werden kann, startest Du folgende Befehlszeile mit Übergabe der gewünschten Auflösung (-geometry 1024x768) und einer frei wählbaren Displaynummer (:33). Letztere kann weggelassen werden und würde dann automatisch vergeben und in der Ausgabe des Befehls angezeigt. Rechte von root sind für den Start nicht erforderlich.
Der Befehl vncserver-virtual --help zeigt eine kleine Hilfe mit weiterführenden Informationen an.
pi@raspberrypi:~ $ vncserver-virtual -geometry 1024x768 :33
VNC(R) Server 6.7.1 (r42348) ARMv6 (Jan 30 2020 15:13:47)
Copyright (C) 2002-2020 RealVNC Ltd.
RealVNC und VNC sind eingetragene Marken von RealVNC Ltd und sind durch
Markeneintragungen und/oder Markenanmeldungen in der Europäischen Union, in den
USA und in anderen Jurisdiktionen geschützt.
Geschützt durch das britische Patent 2481870, das US-Patent 8760366 und das
EU-Patent 2652951.
Weitere Informationen zu VNC finden Sie unter https://www.realvnc.com.
Danksagungen von Dritten finden Sie unter:
https://www.realvnc.com/docs/6/foss.html
OS: Raspbian GNU/Linux 10, Linux 4.19.97, armv7l
Bei einigen Verteilungen (insbesondere Red Hat) erzielen Sie u. U. bessere
Ergebnisse, wenn Sie vncserver-virtual zusammen mit dem System-Xorg-Server
anstatt mit der in Xvnc integrierten alten Version ausführen. Es werden
voraussichtlich mehr Desktop-Umgebungen und Anwendungen kompatibel sein. Für
weitere Informationen zu dieser alternativen Implementierung siehe:
https://www.realvnc.com/doclink/kb-546
Ausgeführte Anwendungen in /etc/vnc/xstartup
VNC Server-Schlagwort: "Poetic bazaar Atlanta. Yellow shampoo Arnold."
Signatur: c6-25-5b-80-c6-2b-e0-06
Protokolldatei ist /home/pi/.vnc/raspberrypi:33.log
Neuer Desktop ist raspberrypi::33 (192.168.1.52::33)
pi@raspberrypi:~ $
Der Zugriff auf den virtuellen Desktop erfolgt über die vergebene Displaynummer (hier am Beispiel des VNC Viewer für Windows).
Bei jedem neuen Zugriff erscheint die Nachfrage, das Schlagwort muss mit dem aus der Ausgabe beim Start des virtuellen Desktop (siehe Spoiler oben) übereinstimmen.:
Mit dem Klick auf Fortsetzen erhältst Du Zugriff auf die Anmeldung des gewählten Desktop (Das Schlagwort ist auch hier wieder zu finden). Ein Klick auf OK zeigt den virtuellen Desktop Nummer 33 (mit einer zu ignorierenden Fehlermeldung).
Um den virtuellen Desktop mit der Nummer:33 im laufenden Betrieb zu beenden, reicht die Eingabe von:
Richtest Du einen Autostart des virtuellen Desktop ein, steht dieser auch nach einem Neustart des Systems zur Verfügung.
Viel Spaß mit dem Raspberry Pi.
Grüße, STF