Raspberry PI Kiosk Modus - einrichten

[HOW TO] Raspberry Pi Chromium kiosk mode Autostart und Vollbildmodus

Kurzanleitung – Kiosk Mode mit Chromium Raspbian Buster auf einem Raspberry PI 4 oder 3 zu realisieren. Einsatz von z. B. io.Broker, Monitoring etc. Diese Methode ist geeignet, wenn diese Privat im Einsatz ist.

Dies ist einer von vielen Wegen die nach Rom führen. Ich bevorzuge diesen Weg, da ich damit die wenigsten Probleme hatte.

In Kombination mit dem Automatischen ein und Ausschalten vom Raspberry Display ist es eine gut funktionierende Lösung.

Vorbereitung

Wir benötigen einen Raspberry PI, ein Display.
Die Installation von Raspbian, habe ich bereits hier erklärt.

Zusätzlich zur Grundinstallation benötigen wir noch diese Pakete:

sudo apt-get install chromium-browser
sudo apt-get install unclutter

Einen Browser: chromium-browser – versteht sich und den unclutter damit wir den Mauszeiger ausblenden können. Dieser stört in den meisten fällen.

Konfiguration Autostart

Wir öffnen nun die Autostartdatei, um dieser mitzuteilen, dass wir den Chromium und wenn gewünscht ohne „Mauszeiger“ ein Browser Fenster öffnen möchten. Dazu öffnen wir die folgenden Konfigurationsdateien.
Beim Raspberry PI4 mit Buster:

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart 

bzw. bei den älteren Systemen:

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

Wir fügen nun diese Codezeilen zu den bestehenden dazu!

# Mauszeiger Ausblenden
@unclutter

# Bildschirmschoner ausschalten
#@xscreensaver -no-splash  
@xset s off
@xset -dpms
@xset s noblank

# startet Chromium im vollbild und incognito Modus - öffnet die Webseite http://b12w4.myraidbox.de
@chromium-browser --incognito --kiosk http://b12w4.myraidbox.de 

Danach Speichern und Schließen sowie den Raspberry neu starten.
STRG + o und STRG + x

sudo reboot

Tipp – Webcam mit Benutzername und Passwort öffnen:

@chromium-browser --incognito --kiosk http://user:password@192.168.0.100/bild.jpg 

Zwischen Benutzername und Passwort muss ein „Doppelpunkt“ : das ganze gefolgt von einem @ Zeichen.
Damit kann z. B. eine Mobotix Kamera direkt in ein Livestream geladen werden.

Tipp – io.Broker / lokale Seiten / localhost

Wenn Ihr lokale Webseiten die sowieso auf demselben Raspberry gehostet sind öffnen möchtet, könnt Ihr als Link „localhost“ verwenden.

@chromium-browser --incognito --kiosk http://localhost:8081/...

Weitere Attributen, display, position

Um verschiedene Bildschirme ansteuern zu können, wird ein weiteres Attribut beim Autostart benötigt -- display=:0

@chromium-browser --display=:0 --incognito --kiosk http://localhost:8081/...

Auch kann das Fenster auf einem Monitor positioniert werden, macht im Vollbildmodus natürlich keinen Sinn 🙂

@chromium-browser --display=:0 --display=:0 --incognito http://localhost:8081/...

Sichere Methode – etwas komplizierter

Hier eine alternative sichere Methode sollte der Vollbildmodus an öffentlichen Screens benötigt werden.

Quellen: https://www.raspberrypi.org/documentation/hardware/display/troubleshooting.md

Christoph Purin
Christoph Purin

Mein Name ist Christoph Purin und befasse mich mit IoT Geräten wie Raspberry, Arduino, ESP. Auch Aktivitäten wie die FFW, Quad-fahren, Amateurfunk zählen zu meinen bevorzugten Hobbys.
Dieser Blog, stellt eine Sammlung meiner Projekte dar, wie Dinge gelöst oder umgebaut werden können.

Artikel: 345

39 Kommentare

  1. Hallo zusammen,
    ich habe am Pi einen Autostart hinterlegt, indem eine Webseite geöffnet wird.
    @unclutter
    #@xscreensaver -no-splash
    @xset s off
    @xset -dpms
    @xset s noblank
    @chromium-browser –incognito –kiosk https://www.welt.de

    Ich wollte nun die Webseite ändern und habe die URL geändert. Nach sudo reboot öffnet er aber immer noch die alte Webseite. Was mache ich hier falsch? Kann mir jemand helfen?

  2. Hallo,

    vielen Dank für die sehr gute Anleitung. Mit einem Display klappt es einwandfrei.
    Jetzt will ich versuchen zwei Display in einem Raspberry Pi zu machen.
    Gibt es auch Einleitung dafür? Bis jetzt erkennt das Raspi nur ein Display, obwohl beide Displays schon eingesteckt sind.

    Viele Grüße,
    Martin

  3. Danke für die sehr Gute Anleitung,
    funktioniert alles sauber aber am Ende habe ich nur eine schwarze Seite mit der Fehlermeldung „Untitled“ und die Webseite wird nicht geladen. weder http noch https

    Kannst ihr bitte mir dabei helfen?

    Beste Grüße
    Wakil

  4. Hallo, ich benutze ein Raspberry Pi Zero und versuche ein DAKBoard dadrauf anzuzeigen.
    Wenn ich das DAKBoard so aufrufe funktioniert das auch.
    Nun wollte ich es aber im Kiosk Modus starten aber nach dem Neustart bekomme ich nur ein schwarzes Bild. Wenn ich in den Taskmanager gehe sehe ich das Chromium offen ist, aber halt nur als schwarzer Screen. wodran könnte das liegen oder wie könnte ich das beheben?

  5. Hallo,
    super Anleitung hat auf Anhieb funktioniert.
    Ich habe an meinem Raspi einen Fernseher über HDMI hängen.
    Im KIOSK Modus kommt dauerhaft eine Ansage.
    Klar könnte ich nun einfach die Lautstärke abdrehen. Eleganter wäre es natürlich wenn man Absage abschalten könnte.
    Eine Idee?
    Vielen Dank für die Unterstützung
    Thomas

  6. Hallo,
    danke für die Anleitung, klappt soweit. Ich habe es mit einem PiZero umgesetzt, leider ist dieser zu schwach dafür. Ich hatte dann die Idee es mit der Lite Version zu versuchen, aber dabei lässt sich die Playlist nicht starten. Würde es auch mit der Lite Version eine Möglichkeit geben?
    Gruß Thorsten

  7. Hallo,

    danke für die tolle anleitung.

    Habe nur ein probem, an meinem tv habe ich im kiosk modus einen scharzen rand um das bild.
    so als wäre er nich tkomplett im vollbild modus.
    wenn ich das normale pi desktop anzeige ist alles gut.

    jemand eine idee?

    lg
    mike

  8. Servus,
    Echt gute Anleitung! Vielen Dank!
    Ich habe nur Touch Display an meinen Pi und möchte gerne nur über das Display den Kiosk Modus (also Vollbildmodus) beenden. Alt+F4 funktioniert mit Tastatur. Wie bekomme ich das nur über das Display hin?
    Villeicht weist du ja was…:)

    MFG
    Kevin

    • Hallo Kevin,
      wenn du die Windows Taste drückst, kannst du über das menü Zubehör in den Taskmanager dort den Prozess chromium… meisten der mit dem meisten Arbeitsspeicher killen.
      Menü: Menü Bild
      Chromium Prozess
      Ich habe es nochmals mit alt + F4 probiert – bei mir geht das reibungslos.

      Die Tastatureinstellungen sind richtig gesetzt?

      Versuche es alternativ über VNC – damit muss es gehen.

      Gruß
      Stoffl

  9. Hallo,
    Danke für die sehr Gute Anleitung,
    Jetzt wäre es für mich gut wenn nach einer bestimmten Zeit der Bildschirm ausgeht. Wie setzte ich das am besten um.
    Angeschlossen ist ein Touchscreen.
    Mfg

    • Hallo Florian,

      ich löse, dass über zwei Einträge in der Crontab, um die Helligkeit zuschalten.
      0 21 * * * echo 1 > /sys/class/backlight/rpi_backlight/bl_power
      0 7 * * * echo 0 > /sys/class/backlight/rpi_backlight/bl_power

      Um 21:00 schalte ich das Backlight aus und um 7:00 wieder an.

      Gruß
      Stoffl

  10. Servus Stoffl,

    ui, super. Jetzt stell dir aber mal vor, dass ich keinerlei Ahnung hätte von Linux. 🙂

    Ich muss das nicht in die Autostart schreiben, sondern nur einmal auf die von dir geschilderte Weise crontab aufrufen und dann die Werte eingeben?

    Aus Sicherheitsgründen – weil ich ja nicht weiß, wann das Ding genau abstürzt – würde ich gerne das Ding jeden Tag um 6.30 Uhr in der Früh restarten…
    Stimmt dann die Zeile
    30 6 * * * sudo reboot
    ?

    Wird crontab immer automatisch gestartet oder muss das ins autostart?

    Nur um vorzubeugen: Wenn ich den Raspberry mit einer Tastatur verbinde, um das alles einzugeben, reicht ein Strg+F4 zum beenden des Kiosk-Modes und dann ein Strg+Alt+T fürs Terminal?

    Viele Grüße

    • Hallo Gerhard,

      30 6 * * * sudo reboot ist richtig 🙂
      um es ganz nobel zu machen:
      30 6 * * * sudo reboot >/dev/null 2>&1 Damit wird bei einer Ausgabe, die Ausgabe verworfen.

      Ja, du kannst einfach eine Tastatur anschließen und die Tastaturkürzel verwenden – wenn du einen Touch auch integriert hast, sollte dieser auch funktionieren.
      Ich drücke selber immer auf die „Windows“ Taste für das Menü und navigiere mich per Pfeiltasten durch.

      Mit „Alt + F4“ schließt es bei mir die Fenster.

      Bitte schau aber auch mal in die LOGS /var/logs/ Ordner, dort sollte es eine Datei „Syslog“ geben – eventuell findest du dort heraus, warum sich der Raspberry hier verabschiedet. (Alle Logs sind normalerweise dort drinnen, je nachdem was alles installiert ist.)

      Mit sudo nano /var/log/syslog den log öffnen und du kannst mit STRG+W und dann einfach STRG+V an das Ende der Datei springen.
      Danach mit Pfeiltasten nach oben oder unten springen.
      STRG+W Und Begriff eingeben um zu suchen – mit enter bestätigen. Mit nochmaligen str+w springt er durch die Suchergebnisse.

      STRG + x – schließen (sollte eine Meldung wegen speichern kommen, einfach N drücken.)

      Hoffe, du kommst dahinter, warum der RPI immer aussetzt.
      Ein zu schwaches Netzteil hast du bereits ausgeschlossen? PI4 braucht richtig viel Strom, 3A + würde ich dir empfehlen. Bei PI3 mindestens 2,1 / 2,5 bevorzugt verwenden.

      VNC
      Edit: — Wenn du VNC aktivierst in den sudo raspi - config über das Terminal – dann kannst du mit VNC auf deinen Raspberry zugreifen und auch bedienen – dann musst du nicht die 4 Meter hoch.
      sudo raspi-config
      3 - Interface Options
      P3 - VNC
      aktivieren - JA

      Auf deinem PC das Tool VNC herunterladen: https://www.realvnc.com/de/connect/download/viewer/

      Danach einfach neue Verbindung -> IP von deinem Raspberry -> verbinden und mit den Raspberry Zugangsdaten (Benutzer: pi Passwort:raspberry) anmelden.
      Schon hast du das Bild vom Raspberry auf deinem Gerät.

      Gruß
      Stoffl

  11. Die Anleitung funktionierte bei mir ganz hervorragend, danke. Einmal pro Woche (meist am Wochenende – aber warum nur…?) crasht der Chromium mit

    Oh nein!
    Fehler beim Anzeigen dieser Webseite
    Fehlercode 9
    Weitere Informationen

    Nun habe ich das Ding in vier Meter Höhe installiert und das anschließen von / arbeiten mit Tastatur & Maus da oben ist eher blöd.

    Wie kann ich den Fehler denn beheben? Ich habe gegooglet, aber nicht mal was zu dem Fehlercode gefunden.
    Kann ich Chromium bzw. den Raspberry so einstellen, dass er diese Errors abfängt? Bzw. meinetwegen auch einmal am Tag einen Restart macht oder so, das wäre mir egal…

    • Hallo Gerhard,

      ich habe das über einen Neustart, der einmal pro Woche gemacht wird, gelöst.
      Das Problem tritt bei mir auf, wenn der Arbeitsspeicher ans Limit kommt.

      sudo crontab -e

      und dort habe ich einfach diesen Eintrag hinzugefügt:

      0 6 * * 1 sudo reboot

      Gruß
      Stoffl

  12. Vielen lieben Dank, klappte auf Anhieb und ist mehr als nützlich.

    Gibt es eine Möglichkeit diese Funktion individuell für Display A & B beim Raspberry PI 4 zu konfigurieren?

    Beste Grüße
    Sascha

    • Hallo Sascha,
      soweit ich weiß, kann dies über die Attribute „ --display=:0“ gesteuert werden.

      chromium-browser --display=:0 --kiosk --incognito --window-position=0,0 http://webseite.info

      Über „--windows-postion=0,0“ kann die Position gesteuert werden.

      Ich hoffe, das funktioniert bei dir

      Gruß
      Stoffl

      • Hallo Christoph,

        Leider scheint das bei mir nicht zu funktionieren,

        –display=:0 funktioniert, aber sobald ich es mit –display=:1 versuche, erhalte ich nur den Denktophintergrund ohne Startmenü.

        Gruß

        Sascha

          • Hallo Christoph,

            Ich versuchte es erst so:
            (Ziel: Loxone Webinterface auf 0 und IOBroker auf 1)

            @chromium –display=:0 –kiosk http://192.168.169.197/
            @chromium –display=:1 –kiosk http://192.168.169.25:8081/

            Da gab er mir den Browser auf Display 0 und auf 1 nur den Denktophintergrund. Dann versuchte ich das mit einer Zeile zu testen.

            @chromium –display=:1 –kiosk http://192.168.169.197/

            ergibt kein Browser Fenster und auf beiden Displays nur den Desktop Hintergrund.

            @chromium –display=:0 –kiosk http://192.168.169.197/

            ergibt das Browser Fenster auf Display 0 und auf 1 nur den Denktophintergrund. (wie am Anfang mit der 2 Zweiligen Anweisung)

            Und jup, die Links funktionieren, ich nutze sie mit deiner Anleitung jetzt auf 3 Displays, superstabil, auch nach zahlreichen Neustarts.

            Beste Grüße
            Sascha

            ps. RaspiOS ist frisch aufgesetzt, nur die regulären Updates, keine Tools, läuft eigentlich supergut mit 2 Browsern/Displays im GUI.

          • Hallo Sascha, ich verstehe
            @chromium-browser --disable-infobars --window-position=0,0 --window-size=900,440 --app=http://*address1* --user-data-dir="/home/pi/Documents/Profiles/1
            @chromium-browser --disable-infobars --window-position=0,500 --window-size=900,440 --app=http://*address2* --user-data-dir="/home/pi/Documents/Profiles/2
            @chromium-browser --disable-infobars --window-position=0,1000 --window-size=900,440 --app=http://*address3* --user-data-dir="/home/pi/Documents/Profiles/3

            Quelle: https://www.raspberrypi.org/forums/viewtopic.php?t=257688

            Hier sind die möglichen Optionen, eventuell hilft dir das weiter.
            https://peter.sh/experiments/chromium-command-line-switches/

            Leider hab ich zu wenig HDMI Adapter, um beide Monitore an meinem PI4 anzuschließen.
            Ich hoffe, du kommst damit etwas weiter – mit --app

            Gruß
            Stoffl

  13. Hallo, erstmal vielen Dank. Ich kann leider keine längeren Webseiten hinzufügen z.B: 192.178.168.20:8022/vis/edit.html#PW_Eingabe

    Hier wird nur bis 192.178.168.20:8022 und der rest nicht mit übertragen.

    An was kann das liegen ?

    • Hallo Hakan,
      vielen dank 🙂
      zum Anzeigen bei IOBroker muss anstatt von edit.html index.html eingefügt werden.
      Anstatt: 192.178.168.20:8022/vis/edit.html#PW_Eingabe
      richtig: 192.178.168.20:8022/vis/index.html#PW_Eingabe

      Beim Port bin ich mir bei dir nicht sicher, ob 8022 – ich muss mit Port 8082 den View ansprechen.

      Meine Config:

      @lxpanel –profile LXDE-pi
      @pcmanfm –desktop –profile LXDE-pi
      @xscreensaver -no-splash
      @unclutter
      @xset s off
      @xset -dpms
      @xset s noblank
      @chromium-browser –incognito –kiosk http://localhost:8082/vis/index.html#stoffl-home
      @/home/pi/auto.sh

      Gruß
      Stoffl

  14. Hallo Stoffl,
    herzlichen Dank für die gute und kompakte Anleitung! Funktioniert perfekt!

    Eine Frage hätte ich noch, weil ich selbst nicht auf die Lösung komme:
    Wenn ich den Kiosk-Mode über ALT+F4 verlassen habe, kann ich ihn aktuell nur durch Reboot wieder starten.
    Wie müsste ein Skript bzw. eine Desktop-Verknüpfung aussehen, um wieder in den Kiosk-Mode zu kommen?
    (das selbe Skript als SH oder PY-Datei scheint ja nicht zu gehen – sorry, bin kein Programmierer 😉

    Danke und viele Grüße
    Tobias

    • Hallo Tobias,
      vielen Dank.

      Derzeit kenne ich nur die Lösung über einen Neustart. Ich habe auch bereits im Internet recherchiert, leider ohne Erfolg.
      Sollte ich fündig werden, aktualisiere ich den Artikel.

      Gruß
      Stoffl

    • Hallo,

      bei mir funktioniert folgender Weg:
      Datei am Desktop anlegen (z.B. start.sh)
      Richtigen Befehl reinkopieren (bei mir funktionierte nur „chromium“ anstatt chromium-browser -> hat wohl kein Kiosk mode)
      Datei mit chmod +x ausführbar machen und dann doppelklicken.

      Gutes Tutorial, danke.

      Gruß,
      Michael

  15. Der Chromium-Browser heißt inzwischen nur noch Chromium, daher muss bei neuen Versionen die Befehlszeile entsprechend angepasst werden.

    VG

    Jörg

  16. Sehr gute Anleitung, hat sofort geklappt.
    Gibt es eine Möglickeit die Anzeige zur vergrössen Ctrl/+ o.ä.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert