Installation von RealVNC auf Raspberry Pi4 mit Ubuntu 22.04 LTS

Stationary

Well-known member
Da Ubuntu 20.10 im Gegensatz zum RaspiOS kein RealVNC mitbringt, das aber immer mal wieder praktisch sein kann, aber die Anleitungen, die auf dem Internet kursieren, nicht mehr alle aktuell sind oder einfach nicht funktionieren, hier mal eine, die Stand heute mit 20.04 und 20.10 funktioniert.

Ich gehe davon aus, daß die Ubuntu-Installation abgeschlossen und vollständig ge-updated ist.

Zunächst das Terminal aufrufen und dann die folgende Sequenz abarbeiten:
Code:
$ sudo wget https://archive.raspberrypi.org/debian/pool/main/r/realvnc-vnc/realvnc-vnc-server_6.7.2.43081_arm64.deb

$ sudo dpkg -i realvnc-vnc-server_6.7.2.43081_arm64.deb

$ cd /usr/lib/aarch64-linux-gnu

$ sudo ln libvcos.so /usr/lib/libvcos.so.0

$ sudo ln libvchiq_arm.so /usr/lib/libvchiq_arm.so.0

$ sudo ln libbcm_host.so /usr/lib/libbcm_host.so.0

$ sudo systemctl enable vncserver-virtuald.service

$ sudo systemctl enable vncserver-x11-serviced.service

$ sudo systemctl start vncserver-virtuald.service

$ sudo systemctl start vncserver-x11-serviced.service

$ sudo reboot

Anmkerkung: im Raspberry Archiv gibt es auch noch andere RealVNC-Server-Versionen, z. B. die realvnc-vnc-server_6.10.1.47571_arm64.deb, siehe hier. Möchte man die verwenden, so tauscht man einfach die Versionsnummern oben aus.

Nach dem Neustart muß rc.local auf dem Pi aktiviert werden. Also wieder ins Terminal und die folgende Sequenz eingeben:
Code:
$ systemctl status rc-local

$ sudo nano /etc/systemd/system/rc-local.service

Im Editor, der dann geöffnet ist, Folgendes eingeben:
Code:
[Unit]
  Description=/etc/rc.local Compatibility
  ConditionPathExists=/etc/rc.local

[Service]
  Type=forking
  ExecStart=/etc/rc.local start
  TimeoutSec=0
  StandardOutput=tty
  RemainAfterExit=yes
  SysVStartPriority=99

[Install]
  WantedBy=multi-user.target

Mit <Ctrl>-X und "yes" speichern und den Editor verlassen.

Jetzt muß die rc.local erzeugt werden, die erstelle ich zunächst einmal leer:
Code:
$ sudo nano /etc/rc.local

Im Editor, der dann geöffnet ist, Folgendes eingeben:
Code:
#! /usr/bin/bash

Mit <Ctrl>-X und "yes" speichern und den Editor verlassen. Dann im Terminal Folgendes eingeben:
Code:
$ chmod +x /etc/rc.local

$ sudo systemctl enable rc-local

$ sudo reboot

Nach dem Neustart des Systems wird die rc.local wie folgt geändert:
Code:
$ sudo nano /etc/rc.local

Im Editor, der dann geöffnet ist, Folgendes eingeben:
Code:
#!/usr/bin/bash     (steht schon da)
sudo -u <username> vncserver -randr=1600x1200

Mit <Ctrl>-X und "yes" speichern und den Editor verlassen. Mit der Bildschirmgröße muß man etwas herumspielen, für die Darstellung auf einem MacBook Pro hat sich 1600x1200 bewährt.

Abschließend müssen noch die Konfigurationsdateien des Pi4 bearbeitet werden:
Das wären zum einen die custom.conf:
Code:
$ sudo nano /etc/gdm3/custom.conf

dort muß das # in der Zeile "WaylandEnable=false" entfernt werden.

Mit <Ctrl>-X und "yes" speichern und den Editor verlassen. Dann muß noch die /boot/config.txt geändert werden. Die liegt unter Ubuntu allerdings unter /boot/firmware/config.txt:
Code:
$ sudo nano /boot/firmware/config.txt

Dort dann am Ende einfügen:

#HDMI signal auch bei headless-Nutzung (sonst gibt es kein VNC-Bild, wenn kein Monitor angeschlossen ist)
hdmi_force_hotplug=1

Wenn man einen aktiv gekühlten Pi4 hat und den gerne etwas schneller laufen lassen würde, kann man noch folgendes am Ende einfügen:

#overclocking
#overvoltage/frequency 1/1600 2/1700 3/1800 3/1850 4/1900 #6/2000 6/2100
over_voltage=3
arm_freq=1850

Beim eventuellen Übertakten etwas aufpassen, ab 2000-2100 MHz beginnt der Pi4 unter Umständen instabil zu werden. Er braucht dann auf jeden Fall eine sehr gute Kühlung, kann aber zum Abstürzen neigen. 1850 MHz erhöht die Leistung um etwa 20-25% und läßt ihn nicht zu heiß werden.
Mit <Ctrl>-X und "yes" speichern und den Editor verlassen. Einmal den Pi4 neu starten, ab dann ist er von anderen Rechnern oder vom iPad über RealVNC zugänglich.

Die Frage, die sich jetzt stellt, ist: wie geht das mit Ubuntu 22.04 LTS. Dort funktioniert das nämlich nur, wenn am HDMI-Ausgang ein Monitor/TV angeschlossen ist. Ist keiner angeschlossen, kommt eine Meldung im RealVNC client: "something went wrong." (weil es keine Bildausgabe gibt). Eine Lösung wäre vermutlich ein "HDMI Dummy", aber gibt es auch eine Software-Lösung, wie für 20.10?
 
Zuletzt bearbeitet:
Hab's gefunden. Bei 22.04 muß man zusätzlich in der /boot/firmware/config.txt die Zeile

#dtoverlay=vc4-kms-v3d

auskommentieren und noch die folgenden Zeilen einfügen:

hdmi_force_mode=1
hdmi_group=2
hdmi_mode=82

(für 1080 p Auflösung)

Das war bei vorherigen Versionen nicht so.
 
Zuletzt bearbeitet:
Moinsen,
erstmal: tolle Idee und supernett, dass du das teilst. (y)

Hast du die desktop oder die server Version installiert. Wäre interessant, ob die server Version auch wegen mangelndem Monitor meckert...
 
Das ist Ubuntu Desktop 22.04 LTS. Ich hatte vorher die 20.10 laufen, dann aber update-Probleme bekommen und beschlossen, das Ganze neu mit Ubuntu Desktop 22.04 zu installieren. Das hat alles geklappt, bis ich dann zum ersten Mal den Monitor getrennt habe - da gab es dann plötzlich die Fehlermeldung im RealVNC Client. 22.04 ist da also etwas anders als 20.10, man muß da noch ein paar Einstellungen mehr vorgeben bzw. ändern. Wäre ja auch langweilig, wenn das genauso funktioniert hätte...
 

Zurzeit aktive Besucher

Keine Mitglieder online.

Letzte Anleitungen

Statistik des Forums

Themen
4.383
Beiträge
45.256
Mitglieder
3.984
Neuestes Mitglied
Blitzkriegbob90
Zurück
Oben