HDMI Display Setup Anleitung

Solltet ihr bereits ein HDMI Touchdisplay besitzen, über welches ihr gerne das Dashboard ausgeben lassen wollt, habt ihr hier die Anleitung dazu:

Da unser Betriebssystem “headless” ist (also ohne Desktop Oberfläche), benutzen wir X für die Grafikausgabe und Openbox als Window Manager.

Nach einem Login per SSH auf dem Raspberry installieren wir die benötigten Packages:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox

Und dazu den Chromium Browser:

sudo apt-get install --no-install-recommends chromium-browser

Dann stellen wir in der Raspberry Konfiguration ein, dass wir bei einem Neustart automatisch in die CLI mit dem User Pi booten wollen:

sudo raspi-config

Dort wählen wir
1 System Options → S5 Boot/Auto-Login → B2 Console Autologin

Mit Tab wechseln wir zu “OK” und bestätigen mit Enter, rebooten wollen wir an dieser Stelle noch nicht. Stellen wir später einen schwarzen Rand auf unserem Display fest, stellen wir bei 2 Display Options → D2 Underscan auf “No”.

Als nächstes richten wir die Autostart Datei von Openbox ein:

sudo nano /etc/xdg/openbox/autostart

Dort fügen wir folgendes am Ende der Datei ein (Rechte Maustaste für Einfügen):

# Disable any form of screen saver / screen blanking / power management
xset s off
xset s noblank
# xset -dpms

# Allow quitting the X server with CTRL-ATL-Backspace
setxkbmap -option terminate:ctrl_alt_bksp

# Start Chromium in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser --noerrdialogs --incognito --disable-infobars --check-for-update-interval=31536000  --kiosk 'http://127.0.0.1:1880/ui/'

Die Zeile “xset -dpms” ist an dieser Stelle auskommentiert. DPMS steht für Display Power Management Signaling, die genannte Zeile sorgt also dafür, dass euer Bildschirm immer anbleibt, wenn ihr das #-Zeichen wegnehmt. lasst ihr es auskommentiert, wechselt der Bildschirm nach einer gewissen Zeit in den Standby Modus. Um die Zeiten anzupassen, kann man “xset -dpms 60 120” setzen (Nach 60 Sekunden in den Standby und nach 120 Sekunden abschalten. Danke an @daTobi!) Mit STRG+O und Enter speichern wir die Datei, mit STRG+X beenden wir den Nano Editor.

Jetzt müssen wir noch den x-Server in den Autostart bringen, dafür erstellen wir als Benutzer Pi eine Datei im home-Verzeichnis (bzw. bearbeiten diese, sollte sie schon vorhanden sein):

nano /home/pi/.bash_profile

dort schreiben wir:

[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && startx -- -nocursor

danach können wir mit sudo reboot now den Raspberry neustarten lassen und haben dann unser Dashboard auf dem HDMI-Display.


Sollte das Ganze nicht flüssig laufen, können wir noch etwas nachhelfen mit ein paar kleinen Tricks:

  • In der raspi-config unter 4 Performance Options → P2 GPU Memory können wir der Grafikeinheit mehr Arbeitsspeicher zuweisen. Hier ruhig 256MB zuweisen. Euch wird dann im System insgesamt weniger RAM angezeigt, weil ja ein Teil des Arbeitsspeichers fest reserviert ist.

Im Chromium-Browser selber geben wir chrome://flags in die URL-Leiste ein und suchen dort nach den folgenden beiden Flags:

  • ignore-gpu-blocklist
  • enable-gpu-rasterization

Beide aktivieren wir (Enable).

Um zur URL-Leiste des Browser zu gelangen, müssen wir die “–kiosk” Flag aus der Datei “/etc/xdg/openbox/autostart” löschen. Beim nächsten Neustart wird Chromium weiterhin automatisch gestartet, allerdings nicht im Vollbildformat, dafür aber mit URL-Leiste usw. Zusätzlich können wir die “-nocursor” Flag aus unserer bash_profile Datei entfernen, das sorgt dafür, dass der Mauszeiger angezeigt wird. Beide Dateien speichern und den Raspberry neustarten. nachdem wir alle Einstellungen vorgenommen haben, fügen wir die Flags wieder zu den entsprechenden Dateien hinzu und unser Browser startet nach einem Reboot wieder im Kiosk Modus!

Hinweis:
Der CPU-Temperatur wird durch das dauerhafte Ausführen des Browsers zunehmen, aber alles noch im normalen Bereich. Getestet wurde ohne aktive Kühlung oder Kühlblöcke etc.

2 Likes

Hi, erstmal danke für deine Anleitung allerdings erschein bei der installation mit:
sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox

folgende Fehlermeldung:
E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a’ to correct the problem.

Ebenso erschein bei der Installation mit sudo apt-get install --no-install-recommends chromium-browser

folgende Fehlermeldung: E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a’ to correct the problem.

wie kann man das beheben? Danke für Tipps.

Gruß Tobi

Hey Tobi,

hast du mal versucht die angegebene Lösung auszuführen? Also was passiert, wenn du

sudo dpkg --configure -a

eingibst?

Hi, danke für die Antwort. Das Problem war das mein image defekt war und die Partion zu klein und somit kein Speicherplatz zur Verfügung stand.

Leider habe ich jetzt ein neues Problem. Die Installation hat soweit jetzt funktioniert allerding bekomme ich nach dem Start nur einen schwarzen Bildschirm angezeigt.

Ich habe mein 7 Zoll Display über das Flachbandkabel angeschlossen.

Nach dem ich
sudo apt-get update
sudo apt-get upgrade

durchgeführt habe und anschliesend chromium neu installiert habe war auch dieser Fehler weg.

Das Display powermanagment kann man folgendermaßen einstellen:

Code
xset dpms 60 120
Nach 60 Sekunden in den Standby und nach 120 Sekunden abschalten. Die Zeiten kannst Du anpassen.

Gruß Tobi

@daTobi ich könnte mir vorstellen das im Image der HDMI ausgang aktiviert ist wenn du das Display am Flachbandkabel hast ist das kein HDMI würde ich meinen. Guck mal ob auf dem HDMI 1 das Bild ist wenn du eine Monitor oder Fernseher mit HDMI zu testen hast.

Siehst du die Boot Meldungen auf dem Touch ?

Freut mich, dass es bei dir funktioniert hat!

Code
xset dpms 60 120
Nach 60 Sekunden in den Standby und nach 120 Sekunden abschalten. Die Zeiten kannst Du anpassen.

Alles klar danke, ich passe das oben an!

hi, ich hab das ganze mal ausprobiert, leider hakt es etwas bei der umsetzung.(danke für die vorherigen Antwort :slight_smile:

bei dem Punkt "Dort wählen wir
1 System Options → S5 Boot/Auto-Login → B2 Console Autologin

Mit Tab wechseln wir zu “OK” und bestätigen mit Enter, rebooten wollen wir an dieser Stelle noch nicht."

bis B2 komme ich, wenn ich dann enter drücke, verschwindet kurz das Config Fenster und taucht wieder auf, aber etwas mit Ok bestätigen kann/muss ich nicht.

keine Ahnung ob das Auswirkungen auf das endergebnis hat.

Punkt 2. " Als nächstes richten wir die Autostart Datei von Openbox ein:

sudo nano /etc/xdg/openbox/autostart

Dort fügen wir folgendes am Ende der Datei ein (Rechte Maustaste für Einfügen):"

lässt sich der nachfolgende Text zwar einfügen, aber nicht mit STRG-O und Enter abspeichern. es kommt “[ Error writing /etc/xdg/openbox/autostart: No such file or directory ]”

beim eingeben vorher von: sudo nano /etc/xdg/openbox/autostart
kommt zumindest der rote Text [ Directory ‘/etc/xdg/openbox’ does not exist ]

der Step mit dem Einfügen von: nano /home/pi/.bash_profile

und das einfügen des textes widerrum hat funktioniert,

Was mach ich schon wieder Falsch :confused:

Hast du denn

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox

ausgeführt? Spätestens dabei werden die Ordner /etc/xdg und /etc/xdg/openbox erstellt.

moin,
ich habe mich auch mal an die Touchscreengeschichte begeben und dann tauchte während des “sudo get-apt upgrade” folgender Fehler auf:
“dpkg: unrecoverable fatal error, aborting:
files list file for package ‘libevdev2:armhf’ is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)”

Ich benutze ein 11,9" Waveshare Touchscreen, möchte ihn fast als Widescreen bezeichnen. Die config.txt habe ich passend für das Display angepasst. Die Startroutine wird auch sauber angezeigt, sobald ich jedoch das workaround für die Integration des Displays eingebaut habe bleibt der Bildschirm dunkel…könnte das an der fehlenden Datei liegen?

@KielerJung

eine mögliche Lösung wäre einfach mal das Paket neu zu installieren, also

sudo apt-get remove libevdev2 --purge

und dann

sudo apt-get install libevdev2

evdev wird für Eingabegeräte verwendet, siehe evdev › Wiki › ubuntuusers.de

moin,
die Reinstallation hat er problemlos angenommen, danach blieb das Display dennoch dunkel, via ssh habe ich dann nochmal ein startx versucht, aber dann hat er folgendes ausgeworfen:

(EE)
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (Permission denied)
(EE)
(EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
(EE) Please also check the log file at “/home/pi/.local/share/xorg/Xorg.1.log” for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error
Couldn’t get a file descriptor referring to the console
pi@pekaway:~$ sudo reboot

Session was closed

Funktioniert es mit sudo? Steht in der angegebenen logfile noch was interessantes?
Ansonsten hab ich das hier gefunden: Non root Xorg - Gentoo Wiki
Da steht, man soll den non-root user der video Gruppe hinzufügen, könntest du mal ausprobieren.

moin,
erstmal vielen Dank für deine Mühe, das klappt alles nicht, da muss was anderes im argen liegen, unter Volumio auf einem anderen Pi läuft das Display tadellos und auch unter rasp os wird der Desktop entsprechend des Formats angezeigt, vielleicht muss ich vanpi auf ein bestehendes System aufsetzen, wenn das geht, das HDMI Workaround hier funktioniert definitiv nicht damit…leider

Nachtrag:
RaspiOS als Basis und Pekaway via dem von Vincent veröffentlichten Script funktioniert wunderbar, jedoch nur headless. Das 11,9" Display ist vermutlich zu exotisch…
Die Lösung ein Tablet via remote red als Dashboard zu nutzen scheint mir inzwischen die Systemschonendste zu sein und über einen Netgear Nighthawk läuft das ganze auch schön flink.
Vielleicht schafft es Nexion in Zukunft auch mal einen unter Linux lauffähigen Editor zu veröffentlichen, dann könnte das Vanpi Display wieder Interessant werden.Toll wäre hier auch mal ein rundes Display. Vielleicht bin ich auch zu Steampunkverliebt, daher der Hang zu exotischen Displayformaten und Bakelittastern am VanPi :rofl:

1 Like

Mal ne frage hättest du dann den Chrome laufen lassen um die UI zu sehen ?
Hast du mal dir angesehen was ein Chrome frist an resourcen ?

Hi!

das hätte ich zum ausprobieren tatsächlich so gemacht…grundsätzlich mag ich aber abgespeckte Lösungen lieber und die remote Lösung braucht sogar noch etwas weniger Ressourcen als das Nexion Display obwohl ich die individualisierungsmöglichkeiten richtig gut finde, aber da passiert in Zukunft sicher noch was…

Ich meine aber das der Code für das Display nicht offen ist. Wusste nicht das der Editor nur für Windows gibt. Interessant.

Für die UI Sachen direkt auf dem PI habe ich mal was angefangen:

Aber das kein Editor sondern nur Source Code. Und hat nichts mit Web UI zu tun.

gefällt mir in der Tat sehr gut, übersteigt jedoch(vorerst) meine Programmierfähigkeiten :smile:

Ist halt die frage was man will.

Wenn es nur eine UI sein soll mit Tastern um was zu schalten und es nur auf den MQTT geht.
Kann man vielleicht was machen. Das wäre dann halt Fix also nicht so einstellbar wie das ganz Web UI Zeugs. Oder auch Nexion Editor.

Gefällt mir das es dir gefällt. Wenn sich ein ein paar finden die eine HDMI UI brauchen kann man ja vielleicht zusammen was machen.

Würde mich interessieren ob die UI auf so einem Display wie deinem Funktioniert.

hi, ich hab den raspberry neu aufgespielt(1.1.1) und wollte nun das display wieder “installieren”

der befehl “sudo raspi-config” wirft "sudo: raspi-config: command not found aus.

jemand eine idee was ich machen kann damit ich die folgenden schritte ausführen kann, alle befehle davor und danach haben alle funktioniert