📝 "Erweitert die Protokolldateien mit detaillierten Debug-Informationen zur Installation und Systemanalyse (🐛)"

This commit is contained in:
2025-06-10 09:46:02 +02:00
parent 12483a5bdd
commit d619b8b22f
5 changed files with 565 additions and 147 deletions

View File

@ -1 +1,202 @@
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
```bash
# 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
1. **Neustart erforderlich**: Für vollständige Kiosk-Aktivierung
2. **Automatischer Login**: Kiosk-User loggt sich automatisch ein
3. **Browser-Start**: Chromium startet automatisch im Kiosk-Modus
4. **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:
1. System startet automatisch
2. Kiosk-User loggt sich automatisch ein
3. X11-Server startet automatisch
4. Browser öffnet automatisch http://localhost:5000
5. Vollständiger Kiosk-Modus ohne Benutzerinteraktion
Das System ist jetzt vollständig automatisiert und benötigt keine manuelle Konfiguration mehr.

View File

@ -2,3 +2,39 @@
MYP Installation DEBUG Log - 2025-06-10 09:33:12
=================================================================
[2025-06-10 09:33:20] DEBUG von setup.sh:860
Debian erkannt über /etc/debian_version: 12.11
---
[2025-06-10 09:33:20] DEBUG von setup.sh:928
Kein Raspberry Pi erkannt. Hardware-Info:
---
[2025-06-10 09:33:20] DEBUG von setup.sh:929
- Device Tree: nicht verfügbar
---
[2025-06-10 09:33:20] DEBUG von setup.sh:930
- CPU Hardware: nicht verfügbar
---
[2025-06-10 09:33:20] DEBUG von setup.sh:970
Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
---
[2025-06-10 09:33:20] DEBUG von setup.sh:1026
DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup.
---
[2025-06-10 09:33:20] DEBUG von setup.sh:1127
Externe IP ermittelt über ifconfig.me: 163.116.178.113
---
[2025-06-10 09:35:06] DEBUG von setup.sh:1391
flask erfolgreich importiert
---
[2025-06-10 09:35:06] DEBUG von setup.sh:1391
requests erfolgreich importiert
---

View File

@ -20,3 +20,184 @@ Log-Verzeichnis: /mnt/logs
[2025-06-10 09:33:12] === AUTOMATISCHE INSTALLATIONSMODUS-ERKENNUNG ===
[2025-06-10 09:33:12] 🔍 Viel RAM ( MB) erkannt (+1 Punkt für Entwicklung)
[2025-06-10 09:33:12] 🔍 Kein Desktop-Environment erkannt (+1 Punkt für Produktion)
[2025-06-10 09:33:13] 📊 Bewertung: Produktion=1, Entwicklung=1
[2025-06-10 09:33:13] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION
[2025-06-10 09:33:13] → Verwenden Sie --production für Kiosk-Installation
[2025-06-10 09:33:20] 🔧 Starte ENTWICKLUNGS-INSTALLATION...
[2025-06-10 09:33:20] === AUTOMATISCHE ENTWICKLUNGS-INSTALLATION ===
[2025-06-10 09:33:20] === SYSTEM-RESSOURCEN PRÜFUNG ===
[FORTSCHRITT] Prüfe RAM...
[FORTSCHRITT] Verfügbarer RAM: 3914MB
[ERFOLG] ✅ Ausreichend RAM verfügbar (3914MB)
[FORTSCHRITT] Prüfe Festplattenplatz...
[FORTSCHRITT] Verfügbarer Festplattenplatz: 12,0GB (12284MB)
[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (12,0GB)
[FORTSCHRITT] Prüfe CPU...
[FORTSCHRITT] CPU: 4 Kern(e) - 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz
[ERFOLG] ✅ CPU-Information erfolgreich ermittelt
[2025-06-10 09:33:20] ✅ System-Ressourcen-Prüfung abgeschlossen
[FORTSCHRITT] Prüfe Debian/Raspbian-System...
[DEBUG] Debian erkannt über /etc/debian_version: 12.11
[2025-06-10 09:33:20] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11)
[FORTSCHRITT] Prüfe Raspberry Pi Hardware...
[INFO] 💻 Standard-PC/Server System (kein Raspberry Pi)
[DEBUG] Kein Raspberry Pi erkannt. Hardware-Info:
[DEBUG] - Device Tree: nicht verfügbar
[DEBUG] - CPU Hardware: nicht verfügbar
[FORTSCHRITT] Prüfe System-Architektur...
[INFO] 📐 System-Architektur: x86_64
[INFO] → 64-Bit x86 Architektur erkannt
[FORTSCHRITT] Prüfe Kernel-Version...
[INFO] 🐧 Kernel-Version: 6.1.0-37-amd64
[DEBUG] Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
[2025-06-10 09:33:20] ✅ System-Analyse abgeschlossen
[FORTSCHRITT] Prüfe Internetverbindung (erweiterte Methoden)...
[FORTSCHRITT] Teste DNS-Auflösung...
[DEBUG] DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup. 
[ERFOLG] ✅ Internetverbindung verfügbar
[INFO] 🔍 Erkannt via: DNS-Auflösung (nslookup: 8.8.8.8)
[FORTSCHRITT] Ermittle externe IP-Adresse...
[INFO] 🌐 Externe IP: 163.116.178.113
[DEBUG] Externe IP ermittelt über ifconfig.me: 163.116.178.113
[2025-06-10 09:33:20] === KONFIGURIERE HOSTNAME ===
[2025-06-10 09:33:20] ✅ Hostname bereits korrekt: 'raspberrypi'
[2025-06-10 09:33:20] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1
[2025-06-10 09:33:20] === ANTI-HÄNGE SYSTEM-UPDATE MIT TIMEOUTS ===
[FORTSCHRITT] Konfiguriere APT für bessere Zuverlässigkeit (timeout-gesichert)...
[FORTSCHRITT] Validiere APT-Repositories (timeout-gesichert)...
[FORTSCHRITT] Bereinige APT-Lock-Dateien...
[FORTSCHRITT] Aktualisiere Paketlisten (max 60s timeout)...
[ERFOLG] ✅ APT Update erfolgreich
[FORTSCHRITT] Führe System-Upgrade durch (max 120s timeout)...
[ERFOLG] ✅ System Upgrade erfolgreich
[FORTSCHRITT] Installiere essenzielle System-Tools...
[FORTSCHRITT] Installiere Pakete: ca-certificates
[FORTSCHRITT] Installiere Pakete: gnupg
[FORTSCHRITT] Installiere Pakete: curl
[FORTSCHRITT] Installiere Pakete: wget
[FORTSCHRITT] Installiere Pakete: git
[FORTSCHRITT] Installiere Pakete: nano
[FORTSCHRITT] Installiere Pakete: htop
[FORTSCHRITT] Installiere Pakete: rsync
[FORTSCHRITT] Installiere Pakete: unzip
[FORTSCHRITT] Installiere Pakete: sudo
[FORTSCHRITT] Installiere Pakete: systemd
[FORTSCHRITT] Installiere Pakete: lsb-release
[FORTSCHRITT] Installiere Pakete: apt-transport-https
[FORTSCHRITT] Installiere Pakete: software-properties-common
[FORTSCHRITT] Installiere Pakete: bc
[FORTSCHRITT] Installiere Pakete: dbus
[FORTSCHRITT] Installiere Pakete: systemd-timesyncd
[FORTSCHRITT] Synchronisiere Systemzeit...
[2025-06-10 09:33:27] ✅ Robustes System-Update abgeschlossen
[2025-06-10 09:33:27] === SIMPLE NETZWERK-SICHERHEIT (ANTI-HÄNGE VERSION) ===
[INFO] 🚀 Netzwerk-Sicherheit übersprungen für schnellere Installation
[INFO] 📝 Kann später manuell aktiviert werden mit: SKIP_NETWORK_SECURITY=0
[2025-06-10 09:33:27] === ROBUSTE PYTHON-INSTALLATION ===
[FORTSCHRITT] Installiere Python 3 und Build-Abhängigkeiten...
[FORTSCHRITT] Installiere Pakete: python3
[FORTSCHRITT] Installiere Pakete: python3-pip
[FORTSCHRITT] Installiere Pakete: python3-dev
[FORTSCHRITT] Installiere Pakete: python3-setuptools
[FORTSCHRITT] Installiere Pakete: python3-venv
[FORTSCHRITT] Installiere Pakete: python3-wheel
[FORTSCHRITT] Installiere Pakete: build-essential
[FORTSCHRITT] Installiere Pakete: libssl-dev
[FORTSCHRITT] Installiere Pakete: libffi-dev
[FORTSCHRITT] Installiere Pakete: libbz2-dev
[FORTSCHRITT] Installiere Pakete: libreadline-dev
[FORTSCHRITT] Installiere Pakete: libsqlite3-dev
[FORTSCHRITT] Installiere Pakete: libncurses5-dev
[FORTSCHRITT] Installiere Pakete: libncursesw5-dev
[FORTSCHRITT] Installiere Pakete: zlib1g-dev
[FORTSCHRITT] Installiere Pakete: sqlite3
[FORTSCHRITT] Validiere Python-Installation...
[2025-06-10 09:33:33] ✅ Python Version: 3.11.2
[FORTSCHRITT] Konfiguriere pip für bessere Zuverlässigkeit...
[FORTSCHRITT] Erstelle systemweite pip-Konfiguration...
[FORTSCHRITT] Konfiguriere pip für alle Benutzer...
[2025-06-10 09:33:33] ✅ pip konfiguriert für Benutzer: user
[FORTSCHRITT] Aktualisiere pip mit Retry...
[2025-06-10 09:33:34] ✅ pip Version: 25.1.1
[2025-06-10 09:33:34] ✅ Robuste Python-Umgebung installiert
[2025-06-10 09:33:34] === ROBUSTE NODE.JS UND NPM INSTALLATION ===
[FORTSCHRITT] Bereinige alte Node.js-Installationen...
[FORTSCHRITT] Installiere Node.js mit Fallback-Strategie...
[FORTSCHRITT] Verwende Debian Repository als Fallback...
[FORTSCHRITT] Installiere Pakete: nodejs npm
[2025-06-10 09:35:02] ✅ Node.js via Debian Repository installiert
[FORTSCHRITT] Validiere Node.js Installation...
[2025-06-10 09:35:02] ✅ Node.js Version: v18.19.0
[2025-06-10 09:35:03] ✅ npm Version: 9.2.0
[FORTSCHRITT] Optimiere npm-Konfiguration...
[2025-06-10 09:35:04] ✅ Node.js und npm erfolgreich installiert
[2025-06-10 09:35:04] === ANTI-HÄNGE SSL-ZERTIFIKATE KONFIGURATION ===
[FORTSCHRITT] Installiere SSL-Grundkomponenten (timeout-gesichert)...
[ERFOLG] ✅ SSL-Grundkomponenten installiert
[FORTSCHRITT] Überspringe CA-Update um Hänger zu vermeiden...
[INFO] 💡 CA-Zertifikate werden beim nächsten Boot automatisch aktualisiert
[FORTSCHRITT] Kopiere Mercedes-Zertifikate (max 30s)...
[INFO] Mercedes-Zertifikate werden beim nächsten Boot aktiv
[FORTSCHRITT] Konfiguriere SSL-Umgebungsvariablen (schnell)...
[2025-06-10 09:35:04] ✅ SSL-Zertifikate anti-hänge konfiguriert
[INFO] 📝 CA-Updates werden automatisch beim nächsten Boot durchgeführt
[2025-06-10 09:35:04] === PYTHON-PAKETE INSTALLATION ===
[FORTSCHRITT] Installiere Python-Pakete...
[FORTSCHRITT] Installiere requirements.txt...
[ERFOLG] ✅ requirements.txt erfolgreich installiert
[FORTSCHRITT] Validiere essenzielle Python-Module...
[DEBUG] flask erfolgreich importiert
[DEBUG] requests erfolgreich importiert
[ERFOLG] ✅ Essenzielle Python-Module verfügbar
[2025-06-10 09:35:06] ✅ Python-Pakete Installation abgeschlossen
[FORTSCHRITT] Zeige installierte Python-Pakete...
[2025-06-10 09:35:06] === ROBUSTES ANWENDUNGS-DEPLOYMENT ===
[FORTSCHRITT] Erstelle sicheres Zielverzeichnis: /opt/myp
[FORTSCHRITT] Validiere Source-Dateien...
[FORTSCHRITT] Kopiere Anwendungsdateien (robust)...
[FORTSCHRITT] Kopiere kritische Datei: app.py
[ERFOLG] ✅ app.py erfolgreich kopiert
[FORTSCHRITT] Kopiere kritische Datei: models.py
[ERFOLG] ✅ models.py erfolgreich kopiert
[FORTSCHRITT] Kopiere kritische Datei: requirements.txt
[ERFOLG] ✅ requirements.txt erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: blueprints
[ERFOLG] ✅ blueprints erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: config
[ERFOLG] ✅ config erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: database
[ERFOLG] ✅ database erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: static
[ERFOLG] ✅ static erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: templates
[ERFOLG] ✅ templates erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: uploads
[ERFOLG] ✅ uploads erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: utils
[ERFOLG] ✅ utils erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: logs
[ERFOLG] ✅ logs erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: certs
[ERFOLG] ✅ certs erfolgreich kopiert
[FORTSCHRITT] Kopiere optionale Datei: package.json
[FORTSCHRITT] Kopiere optionale Datei: package-lock.json
[FORTSCHRITT] Kopiere optionale Datei: tailwind.config.js
[FORTSCHRITT] Kopiere optionale Datei: postcss.config.js
[FORTSCHRITT] Kopiere optionale Datei: README.md
[FORTSCHRITT] Erstelle Verzeichnisstruktur...
[FORTSCHRITT] Setze sichere Berechtigungen...
[FORTSCHRITT] Konfiguriere robuste Python-Umgebung...
[2025-06-10 09:35:16] ✅ Python-Pfad konfiguriert: /usr/local/lib/python3.11/dist-packages/myp-app.pth
[FORTSCHRITT] Konfiguriere Umgebungsvariablen...
[FORTSCHRITT] Versuche Bash-Profile zu aktualisieren (optional)...
[FORTSCHRITT] Validiere Application Deployment...
[ERFOLG] ✅ Application Deployment vollständig validiert
[2025-06-10 09:35:16] ✅ Robustes Anwendungs-Deployment abgeschlossen
[2025-06-10 09:35:16] 📁 App-Verzeichnis: /opt/myp
[2025-06-10 09:35:16] 🐍 Python-Pfad konfiguriert
[2025-06-10 09:35:16] 🔧 Bash-Profile konfiguriert
[2025-06-10 09:35:16] 🛡️ Sichere Berechtigungen gesetzt
[2025-06-10 09:35:16] === NPM-ABHÄNGIGKEITEN INSTALLATION ===
[FORTSCHRITT] Installiere npm-Abhängigkeiten...
[2025-06-10 09:35:17] ✅ npm install erfolgreich (Standard)
[FORTSCHRITT] Korrigiere npm-Berechtigungen für kiosk-User...

View File

@ -1,4 +1,4 @@
#!/bin/bash
w#!/bin/bash
# Einfacher Syntax-Check für das Setup-Skript
echo "Prüfe Bash-Syntax von setup.sh..."