Raspberry Pi 4 im Kiosk-Modus installieren

Diese Anleitung zeigt, wie der Raspberry Pi 4 im Publikumsverkehr genutzt werden kann. Zentraler Bestandteil ist ein Web-Browser. Die Einbindung von Exponiert wird beschrieben, kann aber auch weggelassen werden.

Installiert wird das normale Raspi OS 32bit mit Desktop.



SSH-Server einschalten

sudo raspi-config

Nodejs installieren

curl -sL https://deb.nodesource.com/setup_19.x | sudo bash -
sudo apt-get -y install nodejs

In /etc/xdg/lxsession/LXDE-pi/autostart diese Zeilen einfügen:

# Start Exponiert Server
@node /home/pi/klimastation/node-server/server.js

Mit $pstree oder $ps aux kann kontrolliert werden, ob der Thread kastanie-exponiert läuft. Abschießen funktioniert mit $killall kastanie-exponiert.

HDMI-Ausgang

Der Raspberry Pi 4 kann HDMI-Geräte nicht erkennen, wenn die grafische Oberfläche bereits gestartet ist. Wenn also der Monitor während des Starts nicht eingeschaltet ist, wird er später nicht richtig eingestellt. Er sollte fest auf eine Auflösung gestellt werden, die gilt, egal ob zur Startzeit der Monitor an war oder nie angeschlossen wird. Diese Auflösung gilt sogar auch für grafische Fernsteuerungen, wenn nie ein Monitor angeschlossen wird.

In $ raspi-config Full HD (CEA 16) auswählen und Underscan (overscan compensation) ausschalten. Die Einstellungen stehen dann in /boot/config.txt:
hdmi_group=1
hdmi_mode=16

In /boot/config.txt kann ganz unten diese Zeile auskommentiert werden: dtoverlay=vc4-fkms-v3d Das verhindert das Laden eines Grafik-Treibers oder so. Nur ohne dieser Zeile startet der Raspi in Full HD. Allerdings ruckeln Videos damit. Also besser drin lassen.

In /boot/config.txt vor hdmi_group das hier schreiben:
hdmi_ignore_edid=0xa5000080
Damit schaltet der Raspi auch ohne Monitor und trotz KMS-Beschleunigung in Full HD.

Paket unclutter installieren, damit der Mauszeiger nach fünf Sekunden ausgeblendet wird. Das Programm muss nicht extra gestartet werden.

In /etc/xdg/lxsession/LXDE-pi/autostart diese Zeilen einfügen:
# Disable any form of screen saver / screen blanking / power management
xset s off
xset s noblank
xset -dpms

Videos in Chrome ruckeln und haben kaputtes VSync. Das soll besser werden, wenn in $sudo raspi-config → Advanced Options → Compositor → no der xcompmgr composition manager ausgeschaltet wird. Keine Ahnung, ob es stimmt.

Videos in Chrome ruckeln weniger, wenn in $sudo raspi-config → Advanced Options → GL Driver der Fake KMS eingeschaltet wird.

Browser

In /etc/xdg/lxsession/LXDE-pi/autostart diese Zeilen einfügen:

# Start Chromium in kiosk mode
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' ~/.config/chromium/'Local State'
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/; s/"exit_type":"[^"]\+"/"exit_type":"Normal"/' ~/.config/chromium/Default/Preferences
chromium-browser --start-fullscreen --incognito --noerrdialogs --disable-translate --no-first-run --fast --fast-start --disable-infobars --disable-features=TranslateUI --disk-cache-dir=/dev/null --password-store=basic --disable-pinch --overscroll-history-navigation=disabled --disable-features=TouchpadOverscrollHistoryNavigation --autoplay-policy=no-user-gesture-required file:///home/pi/klimastation/frontend/index.html

start-fullscreen ist ausreichend, wenn keine Tastatur oder Maus angeschlossen sind. Ansonsten muss auch kiosk eingegeben werden.

no-user-gesture-required lässt Sound auch ohne vorherigem Klick starten.

In chrome://flags diese drei Optionen einschalten:
Override software rendering list #ignore-gpu-blocklist
GPU rasterization #enable-gpu-rasterization
Hardware-accelerated video decode #enable-accelerated-video-decode (gibt es nicht mehr)

Ferngesteuerter Bildschirm

In $ raspi-config unter Interface Options VNC-Server einschalten. In der Startleiste ist jetzt RealVNC. Dort den Cloud-Modus konfigurieren. Auf dem Client muss die Anwendung der Datenkrake von RealVNC installiert werden.

I2C

Mit sudo raspi-config die Schnittstelle Arm I2C einschalten. Zum Testen, ob Geräte am Exponiert-Bus zu sehen sind: i2cdetect -y 1

Sound

Der Sound aus dem Raspi kann ruckeln. Über HDMI oder einen USB-Klinke-Adapter funktioniert Sound problemlos.

USB-Stick

Beim Einstecken von USB-Sticks meldet sich der Dateimanager pcmanfm. Darin lässt sich die Reaktion abstellen unter edit > preferences > volume management.



Text und Fotos: The MIT License 2021 Kastanie Eins GmbH