 
    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