Raspberry Pi als Kiosk Anzeige verwenden

In diesem Artikel geht es kurz darum, wie wir einen Raspberry Pi so umbauen können, dass dieser als „Kiosk Anzeigebildschirm“ verwendet werden kann.

Damit zeigt der Raspberry Pi immer eine Webseite an. Dies kann ein Grafana Dashboard, oder etwas anderes sein. Als Voraussetzung sollte das Gerät im Netzwerk (LAN oder WLAN) sein und das neuste Raspberry OS installiert sein.

Durchführung

Im ersten Schritt müssen wir unseren Raspberry Pi einmal auf die aktuellste Version bringen. Dazu führen wir den folgenden Befehl aus:

sudo apt update && sudo apt upgrade -y

Sobald das erledigt ist, müssen wir sicherstellen, dass der Chromium Browser auf dem Gerät installiert ist. In der Regel ist das der Fall. Wenn nicht, führe den folgenden Befehl aus:

sudo apt install chromium -y

Im nächsten Schritt erstellen wir jetzt einen neuen „Kiosk-Service“ über den wir die Parameter und Laufzeiten steuern. Bei diesem ist das so eingestellt, dass der Browser alle 30 Minuten einmal neustartet, um Laufzeitfehler oder Probleme zu vermeiden. Ich habe es gerne insbesondere bei Grafana Dashboards gehabt, dass diese nach einer gewissen Zeit eingefroren, sind da diese die Verbindung zum Websocket verloren haben. Daher dieser Workarround. Falls dies nicht gewünscht ist, einfach die Option mit RuntimeMaxSec entfernen.

Wir legen zuerst die Service-Datei mit dem folgenden Befehl an:

[Unit]
Description=Chromium Kiosk
After=graphical.target network-online.target
Wants=network-online.target

[Service]
Type=simple
User=administrator
Environment=DISPLAY=:0
RuntimeMaxSec=30min

# Feste Pfade, kein %E{}, kein Shell-Quoting erforderlich
ExecStartPre=/usr/bin/mkdir -p /home/administrator/.kiosk-profile
ExecStart=/usr/bin/chromium \
  --kiosk \
  --user-data-dir=/home/administrator/.kiosk-profile \
  --password-store=basic \
  --no-first-run \
  --fast-start \
  --disable-session-crashed-bubble \
  --disable-infobars \
  --disable-translate \
  --lang=de \
  https://url.de/url

Restart=always
RestartSec=3

[Install]
WantedBy=graphical.target

Wichtig: Bitte den Benutzer und den Pfad anpassen, wenn hier ein anderer Benutzer verwendet wird.

Jetzt müssen wir einmal eine Datei erstellen, mit dem wir die Option für das Übersetzen deaktivieren, da dieses in der Ansicht nur stört. Dafür führen wir die folgenden Befehle aus:

sudo mkdir /etc/chromium/policies/
sudo mkdir /etc/chromium/policies/managed/
sudo tee /etc/chromium/policies/managed/disable_translate.json >/dev/null <<'EOF'
{
  "TranslateEnabled": false
}
EOF

Und im letzten Schritt aktivieren wir jetzt den Service und starten den Rechner neu. Wenn wir alles richtig gemacht haben, sollte sich beim neu hochfahren des Raspberry’s die Webseite öffnen.

sudo systemctl daemon-reload
sudo systemctl enable kiosk
sudo reboot