Ein Browser als Display mit dem Raspberry Pi
Diese Seite zeigt eine Lösung für den Raspberry Pi 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. mit eiem Windows-PC oder Mac. Der SSH Zugriff soll daher am Raspberry freigeschaltet sein. Die folgende Beschreibung basiert auf den Standard User pi der durch die Distribution angelegt wurde.
Vorbereitungen für den Kiosk Mode
Für den Kiosk Mode am Raspberry benötigst du zwei zusätzliche Tools. Du loggst dich daher auf dem Raspberry ein und gibst in der Folge mehrere Kommandos ein. Beginne mit der Aktualisierung der Paket-Liste und deren Upgrade.
sudo apt-get update && sudo apt-get upgrade -y
Anschließend installierst du den 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ötigst du noch einige Änderungen im LX Autostart. Du musst daher die passende autostart Datei im entsprechenden Verzeichnis anpassen. In diesem Beispiel für den User pi (aus der Installation von Raspbian) daher: LXDE-pi:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Du kannst den Screensaver-Eintrag durch Voranstellen von # auskommentieren:
#@xscreensaver -no-splash
Raspberry Bildschirmschoner deaktivieren
Danach ergänzt du 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, kannst du 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 Übersetzungsvorschläge abgeschaltet:
@chromium-browser --noerrdialogs --disable-translate --kiosk --incognito http://www.google.at
Alternativ kannst du eine Seite am lokalen Webserver aufrufen. Verwende dazu
die
Angabe http://localhost
In diesem Fall benötigst du auch einen Webserver auf dem Raspberry. Chromium
bietet viele weitere Optionen, siehe den Link am Ende der Seite.
Mit STRG-X kannst du 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, kannst du das in den Startoptionen verändern. Stelle daher den Bootup mit der raspi-config um - 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.
Verlasse die raspi-config verlassen und führe abschließend einen Reboot durch
sudo reboot
Bingo, der Raspberry bootet in den Desktop, startet Chromium und ruft die 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 ein guter 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
SSH Passwort Warnung
Raspberry Pi OS gibt eine Warnung aus wenn man die Standardeinsteluung von User/Passwort nicht ändert. Das "Warning" kann zwar mit OK weggeklickt werden, aber wenn man wirklich nicht das Passwort ändert, kommt nach jedem Start ein "SSH is enabled and the default password for the 'pi' user has not been changed."
Wenn du die Datei sshpwd.sh löscht (oder umbenennst) wird der Hinweis nicht mehr ausgegeben:
sudo rm /etc/xdg/lxsession/LXDE-pi/sshpwd.sh