Abbruch Browser Vollbild / Kiosk-Mode bei Verlust des HDMI Signal

  • Hallo.

    Ich betreibe schon seit längerem ein paar Raspberry Pi 4 mit x11, wo eine Website im Browser Chrome im Kiosk und Fullscreen Mode ständig angezeigt wird.

    Es wird Zeit diese auf das neuen Pi OS Bookworm und Wayland zu migrieren. (Man will ja aktuell bleiben)
    Der Automatische Browserstart von Chrome, auch im Kiosk Mode, funktioniert schon hervorragend mit der neuen Konfiguration unter wayfire.ini.

    Allerdings wird der Kiosk Mode, nach dem abschalten und wieder einschalten des angeschlossenen HDMI Monitors, im Browser verlassen.

    Dazu muss man wissen das der jeweilige Monitor an einem Bewegungsmelder hängt und nur bei Personen im Raum eingeschaltet wird. Aber jetzt unter Bookworm dann halt wieder im Fenster Mode vom Browser und nicht im gewünschten Vollbildmodus wie es früher bei x11 durchgängig funktioniert hat...

    Das ganze ist Browser unabhängig und mit Firefox das gleiche.

    Jemand eine Idee wie ich das unterbinden kann?

  • Abbruch Browser Vollbild / Kiosk-Mode bei Verlust des HDMI Signal? Schau mal ob du hier fündig wirst!

  • Go to Best Answer
  • Allerdings wird der Kiosk Mode, nach dem abschalten und wieder einschalten des angeschlossenen HDMI Monitors, im Browser verlassen.

    Beschreibe bitte genau wie Du den Kiosk-Mode erstellt hast und zeige uns bitte auch das Skript für den PIR (bitte in einem Codeblock)! Eigentlich sollte ein Moni an und aus nicht den Zustand eines Browsers verändern. :conf:

  • Moin.

    Hier die wayfire.ini:

    Das hab ich tatsächlich von zum Teil von https://www.raspberrypi.com/tutorials/how-…-in-kiosk-mode/ übernommen.

    Das switchtab.sh Skript ist ein Beispiel um Tastendrücke zum Browser zu schicken um zwischen zwei Tabs hin und her zu schalten. Benötige ich jetzt zwar nicht, aber vielleicht kriegt man das ja auch zur Not hin das ein "F11" zum Browser geschickt wird, wenn erkannt wird das man kein Vollbild mehr hat... (so als Workaround) Hier hab ich aber unter Wayland noch nichts gefunden wie ich das auslese in welchem Fenstermodus Chrome gerade läuft.

    Der Fehler ist im übrigen auch unabhängig ob der Monitor gezogen wird, oder man HDMI via Befehle / Skript abschaltet:

    Code
    WAYLAND_DISPLAY=wayland-1 wlr-randr --output HDMI-A-1 --off
    WAYLAND_DISPLAY=wayland-1 wlr-randr --output HDMI-A-1 --on

    Sieht für mich also nach einem generellen Wayland Thema aus.

    Der Beschriebene Bewegungsmelder ist unabhängig vom Pi und nimmt nur die 230 V Stromversorgung vom Bildschirm weg bzw. bei Bewegung wieder an...

  • Hallo rollod,

    hast Du inzwischen eine Lösung oder akzeptablen Workaround für dieses Problem gefunden?

    Ich bin bei meiner kürzlichen Umstellungen auf 'bookworm' nämlich genau wie Du vorgegangen und stehe nun folglich auch vor der gleichen Herausforderung: Chromium verlässt beim Einschalten des Monitors den Vollbildmodus. Ich hatte große Hoffnung in die hier geschilderte Abschaltung der "hdmi hot plug detection" mit vc4.force_hotplug=1 gesetzt. Leider auch ohne Erfolg.

    Edited once, last by bilberry (May 11, 2024 at 11:06 AM).

  • Das Problem habe ich auch wenn das TV nicht schnell genug an ist.
    Ich starte via CEC über die Fernbedienung Chromium dann neu.
    Vielleicht ein Workarround wenn du eh auf den PIR reagierst. Oder da du eine "switchtab" nutzt beim PIR ON ein "sendf11.sh" ?

    Offizieller Schmier und Schmutzfink des Forum.
    Meine PI:

    Display Spoiler

    #1 : Pi1 - Packet Radio Digi mit TNC-PI
    #2 : Pi2 - ADSB Feeder
    #3 : Pi3 - DHCP/DNS Server für 4 VLAN
    #4 : Pi3 - Wireguard Gateway
    #5 : Pi3 - FM Funknetz Gateway mit Shari SA818
    #6 : PI Zero W mit DMR Hotspot
    #7 : Pi4 4GB - Kiosk Browser
    #8 : Pi4 4GB - Kiosk Browser
    #9 : Pi4 8GB - Test Pi

    Dazu noch ein paar Zero und Pi1/2 die noch auf einen sinnvollen Einsatz warten.

  • ja, siehe oben in Beitrag #1:

    Das ganze ist Browser unabhängig und mit Firefox das gleiche.

    Komisch an der Sache finde ich, dass sich das Ausschalten des Monitors hier auswirkt, denn die EDID des Bildschirms werden über zwei I2C-Leitungen im HDMI-Kabel übertragen, die Versorgung des seriellen EEPROMS im Monitor, das die EDID enthält, erfolgt normalerweise über die Videoquelle (RPi, PC, Grafikkarte, ...).
    Deswegen wird in der Regel ein Bildschirm am PC bereits erkannt, wenn das HDMI-Kabel angesteckt wird. Der Bildschirm muss noch nicht zwangsläufig in Betrieb sein. Aber unter Wayland ist vieles anders...

  • Ich habe nach etwas Probieren für mich eine Lösung mit Wayland gefunden und möchte die gern mit Euch teilen:

    Ausgangslage (im Prinzip so wie von rollod eingangs beschrieben):

    • Raspi 4 mit Rasbian 'Bookworm' (64 bit)
    • angeschlossen Touchdisplay wird per Automatisierung bei Bedarf ein- und ausgeschaltet
      WAYLAND_DISPLAY=wayland-1 wlr-randr --output HDMI-A-1 --on bzw. ...off
    • im der wayland.ini habe ich die empfohlenen Autostarteinträge von https://www.raspberrypi.com/tutorials/how-…-in-kiosk-mode/ übernommen
    • die in andern Foren empfohlene Abschaltung der "hdmi hot plug detection" mit vc4.force_hotplug=1 in der /boot/cmdline.txt hatte ich auch gesetzt
    • Resultat: nach Wiedereinschalten war Chromium nicht mehr im Vollbildmodus


    In meiner zuvor noch genutzten 'Buster' - Installation, hatte ich Chromium im Kioskmodus immer über ein Bash-Skript gestartet, um bei Bedarf aus Ferne auch nur mal den Browser neu zu öffnen ohne jedes Mal gleich den Raspi neu starten zu müssen. Dieses Skript hatte ich deshalb auch in die neue Installation übernommen und beim Rumprobieren festgestellt, dass der Browser immer dann wie gewünscht im Vollbild bleibt, wenn er zuvor mit meinem 'alten' Skript gestartet wurde (und nicht mit dem empfohlenen Aufruf aus dem Autostart).

    Also habe ich den Aufruf im Autostart kurzer Hand einfach in den Aufruf meines Skriptes abgeändert:

    also statt chromium = chromium-browser https://forum-raspberrypi.de --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized

    einfach nur kioskbrowser = bash /home/mykioskuser/BrowserStart.sh 

    Das Skript selbst beinhaltet lediglich folgende zwei Zeilen:

    Bash
    #!/bin/bash
    DISPLAY=:0 sudo -u mykioskuser chromium-browser --noerrdialogs --disable-crash-reporter --disable-infobars --force-device-scale-factor=1.00 --kiosk "https://forum-raspberrypi.de"


    Seit dem das nun schon einige Tage prima funktioniert bin ich erst mal happy und habe nicht auch (noch) weiter probiert, welche Option(en) denn beim Browseraufruf im Autostart nun genau zu dem unerwünschten Effekt führten. Vielleicht kann das ja mal jemand genau so nachstellen und bestätigen, dass dieser Weg zum Erfolg führen kann.

  • Hi.

    Ich muss gestehen ich hab seit langem erst mal wieder das Thema verfolgt und hier nachgelesen.

    Die Beschreibung von bilberry war super und hilft mir an dieser Stelle echt weiter.
    Jetzt kann ich meine Raspberry's auch mal auf Wayland umstellen. :)

    Mit dem neuen labwc hab ich auch gerade mal ein wenig rum probiert. Da funktioniert es jetzt scheinbar wieder nicht mehr.
    Aber das setze ich jetzt erstmal aus. Das wird für meine Anwendungszwecke erstmal nicht wichtig sein. :)

    Danke nochmal....


    Viele Grüße!

  • Ich hab nochmal mit meinem Test Pi auf labwc umgestellt und das getestet.

    Hier allerdings erstmal mit folgender Autostart Option:
    Im Verzeichnis ~/.config/labwc die Datei "autostart" mit folgendem Inhalt angelegt:

    bash /home/admin/BrowserStart.sh &

    Damit startet der Pi ordnungsgemäß und führt auch das Skript aus, so dass der Browser im Kiosk Mode startet, aber hier habe ich wieder das Phänomen das beim Ziehen und Stecken des hdmi-Kabel der Browser anschließend wieder im Fenster-Mode ist.

    hyle Ich hab Deine Variante mit der .desktop Datei im ~/.config/autostart Verzeichnis auch getestet.
    Hier ist es das gleich. Es macht auch keinen Unterschied ob ich wie von bilberry beschrieben ein Unter-Skript verwende oder den Browseraufruf direkt in der *.desktop-Datei mache.

    Hier gibt es also wieder einen Unterschied ob man Labwc oder Wayfire verwendet.:rolleyes:

    Hätte ja jetzt gerne mit Labwc gleich was aktuell gesetztes genommen, damit ich meine 7-8 Pi's die ich so betreibe nicht nochmal kurzfristig wieder anfassen muss, aber naja.
    Da kommt ja immer mal wieder was Neues. :)

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!