6.6 KiB
6.6 KiB
MYP Setup-Skript Verbesserungen v5.1.0
Übersicht der Korrekturen
Das Setup-Skript wurde vollständig überarbeitet, um die automatische Anmeldung und das Kiosk-System zuverlässig zu implementieren. Die wichtigsten Verbesserungen:
🧹 PHASE 1: Vollständige Umgebungsbereinigung
complete_environment_cleanup()
- Vollständige Desktop-Environment-Entfernung: GNOME, KDE, XFCE, LXDE, MATE, Cinnamon
- Python-Bereinigung: Entfernt alte Python-Installationen und pip-Pakete
- Snap/Flatpak-Bereinigung: Entfernt alle Snap- und Flatpak-Pakete
- Cache-Bereinigung: Leert alle System-Caches und temporäre Dateien
# Beispiel der Bereinigung
apt-get remove --purge -y gnome* kde* xfce4* lxde* mate* cinnamon*
rm -rf /usr/local/lib/python3.*/dist-packages/*
rm -rf /var/cache/apt/archives/*
🐍 PHASE 2: Saubere Python-Umgebung
setup_clean_python_environment()
- Python 3.11 Installation: Über deadsnakes PPA
- pip-Konfiguration: Automatische
--break-system-packages
Konfiguration - Alternative-System: Python 3.11 als Standard gesetzt
- Entwicklungstools: Alle notwendigen Header und Build-Tools
# pip-Konfiguration für System-Pakete
[global]
break-system-packages = true
trusted-host = pypi.org
pypi.python.org
files.pythonhosted.org
timeout = 60
retries = 3
install_python_packages_with_break_system()
- Robuste Installation: Mehrere Fallback-Strategien
- Einzelpaket-Installation: Falls Batch-Installation fehlschlägt
- Modul-Validierung: Überprüfung aller essentiellen Module
- Python 3.11 spezifisch: Verwendet explizit
python3.11 -m pip
🖥️ PHASE 3: Minimales Desktop-Environment
install_minimal_desktop_environment()
- X11-Basis: Xorg, xinit, x11-xserver-utils
- Window Manager: OpenBox als leichtgewichtiger WM
- Display Manager: LightDM mit automatischer Konfiguration
- Browser: Chromium mit Fallback auf Firefox-ESR
- Audio-Support: PulseAudio und ALSA
- Schriftarten: Vollständige Font-Sammlung
# LightDM Autologin-Konfiguration
[Seat:*]
autologin-user=kiosk
autologin-user-timeout=0
user-session=openbox
🔐 PHASE 4: Robuste Autologin-Konfiguration
configure_autologin_robust()
- Mehrfache Methoden: Getty, LightDM, nodm parallel
- Getty-Service: Systemd-Override für tty1
- LightDM-Integration: Automatische Konfiguration falls verfügbar
- Nodm-Fallback: Minimaler Display Manager als Backup
- Passwort-Entfernung: Automatischer Login ohne Passwort
# Getty-Service Override
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM
Type=idle
Restart=always
RestartSec=0
🚀 PHASE 5: Robuste Kiosk-Autostart-Konfiguration
configure_kiosk_autostart_robust()
- Mehrfache Fallback-Strategien: X11-Server, Browser, Backend
- Lock-Mechanismus: Verhindert mehrfache Ausführung
- X11-Server-Management: Automatischer Start und Überwachung
- Backend-Verfügbarkeit: Wartet auf MYP-Backend (120s timeout)
- Browser-Optimierung: Chromium mit vollständigen Kiosk-Parametern
# Robuste .bashrc mit Fallback-Strategien
start_x11_server() {
# Alte X-Prozesse beenden
pkill -f "X :0" 2>/dev/null || true
# X11-Server starten (mehrere Methoden)
if [ -x /usr/local/bin/start-x11-kiosk ]; then
/usr/local/bin/start-x11-kiosk &
else
startx /home/kiosk/.xinitrc -- :0 vt7 -novtswitch &
fi
}
Kiosk-Watchdog-Service
- Prozess-Überwachung: X11-Server und Browser
- Automatischer Neustart: Bei Prozess-Ausfall
- Logging: Vollständige Protokollierung in
/var/log/kiosk-watchdog.log
- Systemd-Integration: Als Service mit automatischem Restart
📦 PHASE 6: Phasenbasierte Installation
Neue Installationsstruktur
# PHASE 1: UMGEBUNGSBEREINIGUNG
complete_environment_cleanup
setup_clean_python_environment
# PHASE 2: DESKTOP-ENVIRONMENT
install_minimal_desktop_environment
configure_x11_for_raspberry_pi
# PHASE 3: ANWENDUNGS-INSTALLATION
install_python_packages_with_break_system
deploy_application
# PHASE 4: KIOSK-SYSTEM
configure_autologin_robust
configure_kiosk_autostart_robust
# PHASE 5: SERVICES UND OPTIMIERUNG
install_systemd_services
enable_and_start_services
# PHASE 6: SYSTEM-TESTS
test_application
🔧 Technische Verbesserungen
Python 3.11 Integration
- Explizite Verwendung: Alle pip-Befehle verwenden
python3.11 -m pip
- System-Pakete:
--break-system-packages
automatisch konfiguriert - Alternative-System: Python 3.11 als Standard-Python3 gesetzt
X11-Konfiguration
- Raspberry Pi spezifisch: Framebuffer-Konfiguration
- Mehrfache Treiber: fbdev und modesetting als Fallback
- Fehlerbehandlung: Robuste X11-Server-Starts
Browser-Konfiguration
- Chromium-Optimierung: Vollständige Kiosk-Parameter
- Memory-Management: Optimiert für Raspberry Pi
- Sicherheit: Deaktivierte Sicherheitsfeatures für Kiosk
- Vollbild-Modus: Echte Kiosk-Erfahrung
🚨 Wichtige Hinweise
Nach der Installation
- Neustart erforderlich: Für vollständige Kiosk-Aktivierung
- Automatischer Login: Kiosk-User loggt sich automatisch ein
- Browser-Start: Chromium startet automatisch im Kiosk-Modus
- Backend-Abhängigkeit: Wartet auf MYP-Backend auf Port 5000
Fehlerbehebung
- Logs prüfen:
/var/log/kiosk-watchdog.log
- X11-Fehler:
/tmp/x11-error.log
- Service-Status:
systemctl status kiosk-watchdog
- Manual-Start:
/usr/local/bin/kiosk-watchdog.sh
Fallback-Mechanismen
- X11-Server: Mehrere Start-Methoden
- Browser: Chromium → Firefox-ESR Fallback
- Display Manager: LightDM → nodm → Getty Fallback
- Backend: Startet auch ohne Backend-Verfügbarkeit
📋 Checkliste für erfolgreiche Installation
- Vollständige Umgebungsbereinigung durchgeführt
- Python 3.11 als Standard installiert
- pip mit --break-system-packages konfiguriert
- Minimales Desktop-Environment installiert
- Autologin für kiosk-User konfiguriert
- Kiosk-Autostart-Mechanismus implementiert
- Watchdog-Service aktiviert
- System-Neustart durchgeführt
- Automatischer Kiosk-Start funktioniert
- Browser öffnet MYP-Anwendung
🎯 Ergebnis
Nach der Installation:
- System startet automatisch
- Kiosk-User loggt sich automatisch ein
- X11-Server startet automatisch
- Browser öffnet automatisch http://localhost:5000
- Vollständiger Kiosk-Modus ohne Benutzerinteraktion
Das System ist jetzt vollständig automatisiert und benötigt keine manuelle Konfiguration mehr.