Raspberry Pi im Kiosk-Mode (Wayfire)

Hallo Leute,

bin etwas am Verzweifeln - versuche es (mal wieder) einen Raspberry Pi 4 mit Bookworm 64-Bit in den Kiosk-Mode zu bringen. Ich hatte das hier schon mal thematisiert - irgendwann hat es funktioniert - warum auch immer, ich kann es nicht mehr nachvollziehen…

Die aktuellen Anleitungen im Internet beziehen sich auf “Wayfire”, was habe ich gemacht:

In der config.txt:

Hier bin ich unsicher, was der beiden aktiviert bzw. deaktiviert werden muss:

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
#dtooverlay=vc4-fkms-v3d

Darüber hinaus sind die Einträge die für den Monitor (10 Zoll, Touchscreen) hinzugefügt werden sollen:

max_usb_current=1
hdmi_force_hotplug=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=87
hdmi_drive=1
display_rotate=0
hdmi_cvt 1280 800 60 6 0 0 0

Über die raspi-config:

Über “System Options” → “Boot” können zwei Optionen gewählt werden:

“Console Text Console” oder “Desktop Desktop GUI” - welche davon muss gewählt werden?

Über “Advanced Options” → “Wayland” → “Wayfire” gesetzt.

Über “sudo nano .config/wayfire.ini”:

[idle]
dpms_timeout=600

[autostart]
panel = wfrespawn wf-panel-pi
background = wfrespawn pcmanfm --desktop --profile LXDE-pi
xdg-autostart = lxsession-xdg-autostart
chromium = chromium-browser 127.0.0.1:3777/legacy/ --kiosk --noerrdialogs --disable-infobars --no-first-run --ozone-platform=wayland --enable-features=OverlayScrollbar --start-maximized
screensaver = false
dpms = false

So wie jetzt eingestellt ist, startet der Raspberry Pi in die GUI, ich kann dann den Browser aufrufen und dort das Symcon Webfront aufrufen und bedienen.

Was ist falsch eingestellt? Muss ich mit der Wayfire-Ini-Datei noch etwas machen?

Joachim

…bin auch offen für andere - funktionierende - Vorschlage für die Kombination Raspberry Pi4 und die aktuelle Bookworm 64-Bit… :wink:

Mal die original Anleitung versucht:?

How to use a Raspberry Pi in kiosk mode - Raspberry Pi

https://www.raspberrypi.com/tutorials/how-to-use-a-raspberry-pi-in-kiosk-mode/

Muss es Bookworm sein? Und brauchst Du die UI zwingend?

Ich beschreibe mal mein Setup:

  • RaspberryPi 4B // Hyperpixel Touch (direkt über GPIO angeschlossen).
  • Meine Vorgabe war: keine GUI, Chromium im Kiosk-Modus direkt über CLI Autostart

Hatte das vor vielen Jahren schon einmal mit glaub Buster umgesetzt. Vor ein paar Tagen wollte ich eine zusätzliche RPI/Display-Kombination einrichten und bin bei Trixie/Bookworm grandios gescheitert. Habe es selbst mit stundenlangen ChatGPT-Sitzungen nicht hinbekommen. Problem war, dass sobald der Pi gebootet hatte (Displayinhalt war zu sehen) und es Richtung Chrome gehen sollte, alles schwarz blieb.

Meine Recherchen zeigten, dass sich wohl “irgendwas” Wesentliches bei Bookworm geändert hatte, aber ich hatte keine Lust mehr darauf, weil mir die Version vom OS eigentlich ziemlich wurscht ist.

Bei mir läuft es erfolgreich mit der letzten verfügbaren Version von Bullseye (zu finden auf den offiziellen RPI-Serviern).

Das hier müsste mein letztes erfolgreiches Vorgehen sein

Meine Schritte:

  • Raspberry OS (latest Bullseye Lite(!)) mit Raspberry Pi Imager geflasht (incl. WLAN und SSH)

  • add dtoverlay=vc4-kms-dpi-hyperpixel4sq to /boot/config.txt (das ist aber die config für den Hyperpixel)

  • Software installieren
    sudo apt update
    sudo apt install --no-install-recommends xserver-xorg x11-xserver-utils xinit matchbox-window-manager chromium

  • sudo raspi-config → System Options → Boot / Auto Login → Console Autologin

  • nano ~/.xinitrc (content below)

  • chmod +x ~/.xinitrc

  • nano ~/.bash_profile (content below)

  • sudo reboot

.xinitrc:

#!/bin/sh
# Bildschirm nie abschalten <= Das kann natürlich angepasst werden
xset -dpms
xset s off
xset s noblank

# Window-Manager ohne Deko & Cursor
matchbox-window-manager -use_titlebar no -use_cursor no &

# Variablen definieren
CHROME="/usr/bin/chromium"
URL="http://homeassistant.local:8123"   # <- ggf. https://<deine-IP>:8123

# Warte optional aufs Netzwerk/Home Assistant (verhindert sofortiges Aus)
for i in $(seq 1 20); do
  ping -c1 -W1 homeassistant.local >/dev/null 2>&1 && break
  sleep 1
done

# Chromium im Loop: wenn er crasht oder geschlossen wird, Neustart nach 2s
while true; do
  "$CHROME" \
    --kiosk "$URL" \
    --no-first-run \
    --noerrdialogs \
    --disable-translate \
    --overscroll-history-navigation=0 \
    --check-for-update-interval=31536000 \
    --enable-features=OverlayScrollbar \
    --simulate-outdated-no-au='Tue, 31 Dec 2099 23:59:59 GMT'
  sleep 2
done

.bash_profile:

# Starte X nur auf TTY1 und nur, wenn noch kein DISPLAY gesetzt ist:
[[ -z $DISPLAY && ${XDG_VTNR:-0} -eq 1 ]] && startx -- -nocursor

Ich bin hier kein Experte, aber bei mir läuft es so, wie ich mir das vorstelle:

Sobald der RPI Strom hat, bootet er ohne GUI direkt in den Kiosk-Modus von Chromium und ruft die entsprechende URL auf.

Vielleicht hilft es ja weiter :man_shrugging:

Hallo ihr beiden! Vielen Dank für Eure Beiträge!

Bookworm muss wahrscheinlich sein, weil Symcon ja jetzt oder später jeweils die aktuelle Version benötigt, das GUI muss nicht, benötigt wahrscheinlich nur unnötig Ressourcen. Ich würde behaupten das das im Wohnwagen auch nicht läuft.

Eine Konstellation hatte ich bei meinen diversen Versuchen auch, wo der Bildschirm schwarz wurde und man konnte oben ganz links noch so etwas wie einen “Cursor” sehen…

Ich probiere es mal weiter - mal sehen wie weit ich komme… :wink:

Joachim

….ich habe es mal mit der oben geteilten Anleitung versucht, habe über rasip-config in “System Options” → “Boot” → “Console Text Console” eingestellt.

Über “Advanced Option”→”Wayland” alle drei vorhandene Variante probiert, er bleibt dann nach dem Reboot mit dem Prompt im CLI stehen.

Die Datei .config/labwc/autostart sieht wie folgt aus:

hromium http://127.0.0.1:3777/legacy/ --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized

Läuft so aber eben nicht… :frowning:

Was soll das sein? Fehlt da ein c?
Michael

….ich habe es mal mit der oben geteilten Anleitung versucht, habe über rasip-config in “System Options” → “Boot” → “Console Text Console” eingestellt.

Über “Advanced Option”→”Wayland” alle drei vorhandene Variante probiert, er bleibt dann nach dem Reboot mit dem Prompt im CLI stehen.

Die Datei .config/labwc/autostart sieht wie folgt aus:

chromium http://127.0.0.1:3777/legacy/ --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized

Läuft so aber eben nicht… :frowning:

Sehr aufmerksam - aber leider fehlt das “c” nur hier im Posting… :wink:

…nach Stunden der Versuche habe ich jetzt nach dieser Anleitung geschafft…

Ich hoffe das hat jetzt Bestand… :wink:

Hallo Leute,

der Raspberry Pi läuft ja nun dank der Anleitung nach dem Start endlich direkt in den Chromium-Browser und zeigt den Symcon-Webfront-Auswahlbildschirm. Dazu zwei Fragen:

  1. In dem Link zum Start den Chromium-Browsers kann ich ja kein “#” im Link unterbringen weil das dann darauf folgende als “auskommentiert” gewertet wird. Gibt es da einen Trick um direkt im Webfront in die entsprechende Seite des “richtigen” Webfronts zu starten?
  2. Was mir weiterhin auffällt: Das Webfront auf dem direkt am Raspberry Pi angeschlossenen HDMI-Monitor regiert manchmal sehr träge, stürzt auch öfters ab. Wenn ich parallel dazu das gleiche Webfront auf einem MacBook laufen lasse (Anbindung über WLAN), dann reagiert das deutlich schneller auf Veränderungen und stürzt auch nicht ab. Woran könnte das liegen? Ist der Chromium-Browser nicht so gut für das Symcon Webfront geeignet?

Joachim

Moin, versuch mal mit “\” als Escape vor dem “#”.

zu 1.) mal versucht die Url in Hochkommas einzuschließen?

Nur als Versuch - habe kein chronium zu laufen!

…vielen Dank für Eure Unterstützung! :slight_smile:

Leider hat keine der beiden Varianten funktioniert… :frowning:

Joachim

Nachtrag: Aber so funktioniert es! :slight_smile:

chromium-browser --kiosk --noerrdialogs --disable-infobars --no-first-run --enable-features=OverlayScrollbar --start-maximized "http://127.0.0.1:3777/legacy/#43356"