Kiosk-Anzeigesystem auf dem Raspberry Pi
Auf Anfrage einer Bildungseinrichtung, die ein Anzeigesystem für aktuell laufende Kurse auf ihrer Webseite realisieren möchte, habe ich nach einer Möglichkeit gesucht, ein stabiles, kostengünstiges und quelloffenes System umzusetzen.
Hardware-Auswahl
Bei der Hardware fiel die Entscheidung nicht schwer: Ein Raspberry Pi ist für diesen Einsatzzweck bestens geeignet. Als Gehäuse empfiehlt sich ein passiv gekühltes Modell aus Aluminium, um einen lautlosen und langlebigen Betrieb zu gewährleisten.
Installation
Bereits vor einigen Jahren habe ich ein ähnliches System für eine Fahrschule realisiert, das seit nunmehr fast fünf Jahren zuverlässig als „Schaufensterwerbung“ im Dauerbetrieb läuft.
Als Grundlage für das aktuelle Projekt diente mir die Anleitung „Fullscreen-Browser nach Boot auf Raspberry Pi – Kiosk-Mode“ von Easy Tec. Ich setze voraus, dass auf dem Raspberry Pi bereits Raspberry Pi OS installiert ist und ein SSH-Zugang besteht.
Benötigte Pakete installieren
sudo apt install xdotool unclutter
Mit xdotool kann der Chromium-Browser automatisiert gesteuert werden. unclutter blendet den Mauszeiger nach kurzer Inaktivität aus.
Kiosk-Skript erstellen
Nun wird das Skript kiosk.sh erstellt. Wichtig: Den Benutzernamen intux ggf. durch den tatsächlich verwendeten Benutzer ersetzen. Für einen ersten Testlauf greife ich meine eigene Website intux.de ab.
sudo nano /home/intux/kiosk.sh
Inhalt von kiosk.sh:
#!/bin/bash xset s noblank xset s off xset -dpms unclutter -idle 0.5 -root & sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/intux/.config/chromium/Default/Preferences sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/intux/.config/chromium/Default/Preferences /usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk https://intux.de while true; do xdotool keydown ctrl+Tab; xdotool keyup ctrl+Tab; sleep 10 done
Systemd-Dienst einrichten
Um sicherzustellen, dass Chromium nach jedem Neustart automatisch im Kiosk-Modus gestartet wird, wird ein systemd-Dienst eingerichtet:
sudo nano /lib/systemd/system/kiosk.service
Inhalt von kiosk.service:
[Unit] Description=Chromium Kiosk Wants=graphical.target After=graphical.target [Service] Environment=DISPLAY=:0.0 Environment=XAUTHORITY=/home/intux/.Xauthority Type=simple ExecStart=/bin/bash /home/intux/kiosk.sh Restart=on-abort User=intux Group=intux [Install] WantedBy=graphical.target
Anschließend wird der Dienst aktiviert und gestartet:
sudo systemctl enable kiosk.service sudo systemctl start kiosk.service
Ein Neustart schließt die Einrichtung ab:
sudo reboot
Auflösung anpassen
Ich habe mich für eine Bildschirmauflösung von 1280 × 720 Pixel (16:9) entschieden. Diese lässt sich bequem über die grafische Oberfläche des Raspberry Pi OS einstellen.



Erster Testlauf

System duplizieren
Da das System nun wie gewünscht funktioniert, habe ich es auf weitere Geräte dupliziert – eines für jede Etage des Gebäudes. Um die einzelnen Systeme im Netzwerk unterscheiden zu können, erhielten sie unterschiedliche Hostnamen:
- Uranus
- Venus
- Mars
- Pluto
Der Hostname lässt sich über raspi-config anpassen:
sudo raspi-config
Nach dem Klonen stellte ich jedoch fest, dass der Kiosk-Dienst auf den neuen Systemen nicht wie erwartet startete. Die Ursache war die Datei SingletonLock von Chromium. Diese muss gelöscht werden:
rm -rf /home/intux/.config/chromium/SingletonLock
Fazit
Mit überschaubarem Aufwand und etwas Recherche ließ sich ein praktikables Open-Source-Projekt umsetzen, das nun im Realbetrieb zeigen kann, wie zuverlässig es funktioniert.
Der Beitrag Kiosk-Anzeigesystem auf dem Raspberry Pi erschien zuerst auf intux.de.