Ein Browser als Display mit dem Raspberry
Das dritte "Projekt" am Raspberry Pi ist eine Lösung für die Anzeige einer Webseite auf einem Bildschirm. Geplant ist eine "Statusanzeige" in HTML. Der Browser soll so weit wie möglich unsichtbar bleiben, und das Gerät soll nach einem Neustart auch wieder automatisch in diesem Modus starten.
Raspberry in Kiosk Mode
Die Aufgabe ist, den Raspberry in einen sogennanten Kiosk Mode beizubringen. Dabei setze ich auf eine Raspberry OS Distribution, weshalb ich mich auf die Erweiterung um einen Kiosk Modus beschränke.
Als Browser kann der Chromium verwendet werden. Er hat einen Kiosk Modus und man kann alle Symbolleisten, Statusleisten, Adresszeilen ausbleben.
Weiters setze ich vorraus, dass der Zugriff auf die Konsole des Raspberry über die Konsole klappt, z.B. auf einem Windows-PC mittels PC. Der SSH Zugriff soll daher am Raspberry freigeschaltet sein und der Standard User pi wurde durch die Distribution angelegt.
Vorbereitungen für den Kiosk Mode
Für den Kiosk Mode am Raspberry benötigen wir zwei zusätzliche Tools. Wir loggen uns daher auf dem Raspberry ein und geben in der Folge mehrere Kommandos ein.
Wir beginnen mit der Aktualisierung der Paket-Liste und deren Upgrade.
sudo apt-get update && sudo apt-get upgrade -y
Anschließend erfolgt die Installation vom Chromium Browser (dieser hat einen Kiosk-Mode), ein Hilfsprogramm für den X-Server und Unclutter um den Mauszeiger ausblenden zu können. Wenn Chromium bereits installiert ist, reicht auch die Angabe der x11-xserver-utils und unclutter:
sudo apt-get install chromium x11-xserver-utils unclutter
Unclutter blendet den Mauszeiger aus. Wird die Maus (oder ein Trackball, Touchscreen) bewegt, erscheint der Mauszeiger wieder.
Autostart von Chromium am Raspberry
Um Chromium automatisch am Raspberry zu starten und eine bestimmte Seite aufrufen zu lassen, benötigen wir noch einige Änderungen im LX Autostart. In meinem Fall für den User pi (aus der Installation von Raspbian). Daher passen wir die autostart Datei im Verzeichnis LXDE-pi an:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Den Screensaver-Eintrag durch Voranstellen von # auskommentieren:
#@xscreensaver -no-splash
Raspberry Bildschirmschoner deaktivieren
Danach ergänzen wir 3 Befehle für die x11-xserver-utils: damit werden Powermanagement und Bildschirmschoner (Screen-blanker) am Raspberry deaktiviert.
@xset s off @xset -dpms @xset s noblank
Zur Absicherung nach einem unvorhergesehenen Reboot, kann man eventuelle Warnmeldungen ausblenden
@sed -i 's/"exited_cleanly": false/"exited_cleanly": true/' ~/.config/chromium/Default/Preferences
Nun kommt noch der eigentliche Start von Chromium-Browser und die Angabe der Startseite. Weiters werden diverese Fehlermeldungen und die lästigen Übersetzungsvorschläge abgeschaltet:
@chromium-browser --noerrdialogs --disable-translate --kiosk --incognito http://www.google.at
Man kann auch eine Seite am lokalen Webserver aufrufen. Dazu verwendet man die
Angabe http://localhost
In diesem Fall benötigt man auch einen Webserver auf dem Raspberry. Chromium
bietet viele weitere Optionen, siehe den Link am Ende der Seite.
Mit STRG-X kann man die autostart Datei verlassen, abspeichern mit Y nicht vergessen. Einige Tutorials machen all diese Änderung in der autostart im Verzeichnis LXDE. Das hat bei mir jedoch nicht funktioniert.
Bootup des Raspberry Pi anpassen
In dieser Variante muss ein grafischer Desktop geladen werden. Wird der Desktop nicht automatisch vom Raspberry OS geladen, kann man das in den Startoptionen verändern. Daher den Bootup mit der raspi-config umstellen, damit wird (z.B. mit dem User pi) automatisch in eine grafische Oberfläche gestartet.
sudo raspi-config
In der Buster Version vom September 2019 ist die Einstellung unter Punkt "3 Boot Options", "B1 Desktop / CLI" Enable "B4 Desktop Autologin Desktop GUI" zu finden.
Die raspi-config verlassen und abschließend führen wir einen Reboot durch
sudo reboot
Bingo, der Raspberry bootet in den Desktop, startet Chromium und ruft unsere definierte Seite auf!
Für einen richtigen Kioskbetrieb mit Tastatur und Maus ist das ganze natürlich noch zu unsicher. Aber für ein reines Display das von extern gewartet werden kann ist das schon mal ein Anfang.
Kiosk Modus beenden
Mit folgenden Befehl kann man über SSH Chromium auch remote wieder beenden:
pkill -HUP chromium
Raspberry runterfahren/power off
Übrigens, so fährt man den Raspberry runter
sudo shutdown -h now sudo halt
und das wäre ein restart
sudo shutdown -r now sudo reboot