Projektarbeit-MYP/backend/docs/RASPBERRY_PI_OPTIMIERUNGEN.md
2025-05-31 22:40:29 +02:00

7.4 KiB

Raspberry Pi Kiosk-Optimierungen

Übersicht

Das MYP Installationsskript wurde mit umfassenden Raspberry Pi spezifischen Optimierungen erweitert, basierend auf bewährten Praktiken aus der Community.

Quellen und Referenzen

Implementierte Optimierungen

1. Boot-Konfiguration (/boot/config.txt)

# GPU Memory Split für bessere Browser-Performance
gpu_mem=128

# Disable Rainbow Splash für professionelles Erscheinungsbild
disable_splash=1

# HDMI Force Hotplug für bessere Display-Kompatibilität
hdmi_force_hotplug=1

# Disable Overscan für Kiosk-Displays
disable_overscan=1

# Audio über HDMI aktivieren
hdmi_drive=2

Vorteile:

  • Bessere Chromium-Performance durch mehr GPU-Speicher
  • Professioneller Boot ohne Raspberry Pi Logo
  • Zuverlässige HDMI-Erkennung
  • Vollbild-Nutzung ohne schwarze Ränder

2. Kernel-Parameter (/boot/cmdline.txt)

# Console Blanking deaktivieren
consoleblank=0

# Logo deaktivieren für schnelleren Boot
logo.nologo

# Quiet Boot für saubere Kiosk-Erfahrung
quiet

Vorteile:

  • Bildschirm bleibt immer aktiv
  • Schnellerer Boot-Prozess
  • Keine störenden Boot-Meldungen

3. WLAN Power Management

Systemd-Service

# Automatische Deaktivierung bei jedem Boot
systemctl enable disable-wifi-power-management.service

NetworkManager-Konfiguration

# Globale WLAN Power Save Deaktivierung
wifi.powersave = 2

Problem gelöst:

  • wlan0: carrier lost Fehler
  • Intermittierende Netzwerkverbindung
  • Kiosk-Unterbrechungen durch WLAN-Standby

4. Erweiterte Chromium-Optimierungen

Raspberry Pi spezifische Flags

--disable-gpu-compositing
--enable-gpu-rasterization
--disable-smooth-scrolling
--disable-2d-canvas-image-chromium
--disable-accelerated-2d-canvas
--num-raster-threads=2
--enable-zero-copy
--force-device-scale-factor=1.0
--disable-pinch
--overscroll-history-navigation=0

Chromium-Richtlinien (/etc/chromium-browser/policies/managed/)

{
  "DefaultBrowserSettingEnabled": false,
  "BackgroundModeEnabled": false,
  "BookmarkBarEnabled": false,
  "BrowserSignin": 0,
  "DefaultNotificationsSetting": 2,
  "PasswordManagerEnabled": false,
  "TranslateEnabled": false,
  "MetricsReportingEnabled": false
}

Vorteile:

  • Optimierte Performance auf ARM-Hardware
  • Reduzierte CPU/GPU-Last
  • Deaktivierte störende Browser-Features
  • Kiosk-optimierte Benutzeroberfläche

5. Crash-Recovery-System

Chromium Restart-Loop

while true; do
    chromium-browser [flags] "$KIOSK_URL"
    EXIT_CODE=$?
    
    # Bei normalem Exit nicht neustarten
    if [ $EXIT_CODE -eq 0 ] || [ $EXIT_CODE -eq 15 ]; then
        break
    fi
    
    # Bei Crash: Neustart nach 3 Sekunden
    sleep 3
    pkill -f chromium
done

Chromium Preferences Bereinigung

# Crash-Flags vor jedem Start bereinigen
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' Preferences

Vorteile:

  • Automatischer Neustart bei Browser-Crashes
  • Keine "Chromium didn't shut down correctly" Meldungen
  • Unterbrechungsfreier Kiosk-Betrieb

6. Temperatur-Monitoring

Automatisches Monitoring

# Alle 5 Minuten Temperatur-Check
*/5 * * * * root /usr/local/bin/pi-temp-check

Warnungen und Logging

  • 70°C+: Warnung in Logs
  • 80°C+: Kritische Warnung + Syslog
  • Kontinuierliche Aufzeichnung in /var/log/pi-temperature.log

Vorteile:

  • Frühwarnung bei Überhitzung
  • Präventive Wartung möglich
  • Langzeit-Temperaturverlauf

7. Performance-Optimierungen

Kernel-Parameter

# Swappiness reduzieren
vm.swappiness=10

# Dirty Ratio optimieren
vm.dirty_ratio=15
vm.dirty_background_ratio=5

Hardware-Erkennung

# Automatische Pi-Erkennung
if grep -q "Raspberry Pi" /proc/cpuinfo; then
    # Pi-spezifische Optimierungen aktivieren
fi

Vorteile:

  • Bessere I/O-Performance
  • Reduzierte SD-Karten-Belastung
  • Optimierte Speicherverwaltung

8. Multiple Autostart-Methoden

1. LXDE Autostart (Klassisch)

# ~/.config/lxsession/LXDE-pi/autostart
@bash /home/kiosk/start-kiosk.sh

2. Desktop Autostart (Modern)

# ~/.config/autostart/myp-kiosk.desktop
[Desktop Entry]
Type=Application
Exec=/bin/bash /home/kiosk/start-kiosk.sh

3. Systemd Service (Robust)

# /lib/systemd/system/kiosk.service
[Service]
ExecStart=/bin/bash /home/kiosk/start-kiosk.sh

Vorteile:

  • Mehrfache Absicherung
  • Kompatibilität mit verschiedenen Desktop-Umgebungen
  • Fallback-Mechanismen

9. Energiesparmodus-Deaktivierung

X-Server Level

# LightDM Konfiguration
xserver-command=X -s 0 -dpms

systemd-logind Level

# Alle Power-Events ignorieren
HandlePowerKey=ignore
HandleSuspendKey=ignore
HandleLidSwitch=ignore
IdleAction=ignore

Application Level

# In Kiosk-Skript
xset s off
xset s noblank
xset -dpms

Vorteile:

  • Bildschirm bleibt permanent aktiv
  • Keine ungewollten Standby-Modi
  • 24/7 Kiosk-Betrieb möglich

Wartung und Monitoring

Neue Wartungstools

# Raspberry Pi spezifische Checks
myp-maintenance check-health

# Temperatur-Monitoring
tail -f /var/log/pi-temperature.log

# WLAN Power Management Status
iwconfig wlan0 | grep "Power Management"

Troubleshooting

WLAN-Probleme

# WLAN Power Save manuell deaktivieren
sudo iwconfig wlan0 power off

# NetworkManager neu starten
sudo systemctl restart NetworkManager

Performance-Probleme

# GPU Memory Check
vcgencmd get_mem gpu

# Temperatur Check
vcgencmd measure_temp

# Chromium-Prozesse prüfen
ps aux | grep chromium

Display-Probleme

# HDMI-Status prüfen
tvservice -s

# X-Server neu starten
sudo systemctl restart lightdm

Kompatibilität

Getestete Raspberry Pi Modelle

  • Raspberry Pi 4 (empfohlen)
  • Raspberry Pi 3B+
  • Raspberry Pi 3B
  • ⚠️ Raspberry Pi 2 (eingeschränkt)
  • Raspberry Pi 1/Zero (nicht empfohlen)

Getestete Betriebssysteme

  • Raspberry Pi OS (Debian Bullseye/Bookworm)
  • Ubuntu Server 20.04+ für ARM
  • Debian 11+ ARM64

Best Practices

Hardware-Empfehlungen

  • RAM: Mindestens 2GB (4GB empfohlen)
  • SD-Karte: Class 10, mindestens 16GB
  • Kühlung: Aktive Kühlung bei Dauerbetrieb
  • Netzteil: Offizielles Pi-Netzteil verwenden

Konfiguration-Tipps

  • GPU Memory auf 128MB+ setzen
  • Hochwertige SD-Karte verwenden
  • Regelmäßige Temperatur-Überwachung
  • Backup der Boot-Konfiguration

Wartung

  • Monatliche Temperatur-Log-Auswertung
  • Quartalsweise SD-Karten-Gesundheitscheck
  • Jährliche Neuinstallation bei Dauerbetrieb

Status: Produktionsreif
Letzte Aktualisierung: $(date +%Y-%m-%d)
Version: 3.0 (Raspberry Pi Optimiert)

Referenzen