Linux

Chromium im Kiosk-Modus auf Debian 12 Bookworm automatisch starten

aktualisiert am 3 min Lesezeit

Ich wollte meinen Raspberry Pi so einrichten, dass Chromium im Kiosk-Modus automatisch startet, mehrere Tabs öffnet, die sich automatisch durchwechseln, und dass sich das Gerät jeden Morgen neu startet. So habe ich das auf Debian Bookworm 12 umgesetzt.

1. systemd-Service für den Chromium-Kiosk erstellen

Lege zuerst einen systemd-Service an, der Chromium beim Hochfahren automatisch startet:

Bash
sudo nano /etc/systemd/system/chromium-kiosk.service

Inhalt der Datei:

INI
[Unit]
Description=Chromium Kiosk Mode
After=graphical.target

[Service]
User=pi
Environment=DISPLAY=:0
Environment=XAUTHORITY=/home/pi/.Xauthority
ExecStart=/home/pi/start-chromium.sh
Restart=always
RestartSec=5

[Install]
WantedBy=graphical.target

Die wichtigsten Einträge:

  • User=pi: Chromium läuft unter dem Benutzer pi. Aktuelle Images von Raspberry Pi OS legen diesen Benutzer nicht mehr automatisch an. Ersetze pi dann hier und in allen Pfaden durch deinen Benutzer.
  • Environment=DISPLAY=:0: zeigt auf den Hauptbildschirm.
  • ExecStart: Start-Skript für Chromium.
  • Restart=always: startet Chromium neu, falls es abstürzt.
  • WantedBy=graphical.target: startet den Service nach der grafischen Oberfläche.

Lade danach den Daemon neu und aktiviere den Service:

Bash
sudo systemctl daemon-reload
sudo systemctl enable chromium-kiosk
sudo systemctl start chromium-kiosk

2. Start-Skript für Chromium anlegen

Erstelle jetzt das Start-Skript, das Chromium mit allen gewünschten Optionen öffnet:

Bash
nano /home/pi/start-chromium.sh

Inhalt:

Bash
#!/bin/bash
/usr/bin/chromium \
  --kiosk \
  --noerrdialogs \
  --disable-infobars \
  --disable-session-crashed-bubble \
  --disable-translate \
  --disable-features=TranslateUI,RendererCodeIntegrity,TabHoverCards,TabHoverCardImages \
  --disable-prompt-on-repost \
  --disable-save-password-bubble \
  --disable-browser-side-navigation \
  --disable-component-update \
  --disable-background-networking \
  --no-first-run \
  --no-default-browser-check \
  --disable-notifications \
  --disable-restore-session-state \
  --disable-popup-blocking \
'https://site1.example' \
'https://site2.example' \
'https://site3.example' \
'https://site4.example'

Die wichtigsten Optionen:

  • --kiosk: Vollbildmodus ohne Menüs.
  • --disable-*: entfernt störende Meldungen und Popups.
  • --disable-features: Alle Features gehören in einen einzigen Parameter, durch Kommas getrennt. Mehrfach angegeben gilt nur der letzte.
  • Die URLs am Ende: Tabs, die beim Start geöffnet werden.

Für das automatische Durchwechseln der Tabs habe ich ein Add-on aus dem Chrome Web Store verwendet, das die Tabs in einem festen Intervall rotiert. So zeigt der Bildschirm alle Seiten abwechselnd an.

Mach das Skript anschließend ausführbar:

Bash
chmod +x /home/pi/start-chromium.sh

3. Zusätzliche Automatisierungen per cron

Damit der Pi zum Beispiel jeden Morgen frisch startet, nutzt du cron als root:

Bash
sudo crontab -e

Füge folgende Zeilen hinzu:

Bash
# Updates immer Sonntags um 20 Uhr installieren
0 20 * * 0 apt update && apt upgrade -y

# Täglicher Reboot um 7 Uhr
0 7 * * * /sbin/reboot

# Angeschlossenen Monitor um 17 Uhr in den Standby schicken
0 17 * * * /bin/bash -c 'echo "standby 0" | /usr/bin/cec-client -s -d 1'

Ergebnis

Beim nächsten Boot startet Chromium automatisch im Kiosk-Modus mit allen Tabs, jeden Morgen um 7 Uhr startet der Raspberry Pi neu, und um 17 Uhr geht der Monitor in den Standby. Das eignet sich für Digital Signage, Infoterminals oder permanente Dashboards.

Tippe, um alle Artikel zu durchsuchen.

Nachricht schreiben

Die Daten nutze ich nur, um dir zu antworten. Mehr dazu im Datenschutz.