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

Links

Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Affiliate/Provision-Links. Wenn du auf so einen Verweis klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine (kleine) Provision. Für dich verändert sich der Preis dadurch nicht. Ich empfehle nur Produkte die ich selber besitze und wenn ich überzeugt bin, dass sie für andere interesssant sind.


Protokoll

erstellt: 2015-11-15 | Stand: 2024-03-22