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.