Compare commits

...

2 Commits

Author SHA1 Message Date
42557a1d18 🎉 Improved database log files and cleanup process 🎉 2025-06-04 14:40:19 +02:00
1835367560 📚 Improved X11 framebuffer script and related files 🖱️ 2025-06-04 14:24:57 +02:00
27 changed files with 1969 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

237
fix-x11-framebuffer.sh Normal file
View File

@ -0,0 +1,237 @@
#!/bin/bash
# ===================================================================
# MYP X11 Framebuffer-Fix für Raspberry Pi
# Behebt den "Cannot run in framebuffer mode" Fehler
# ===================================================================
set -euo pipefail
# Farben für Ausgabe
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log() {
echo -e "${GREEN}[$(date '+%H:%M:%S')] $1${NC}"
}
warning() {
echo -e "${YELLOW}[WARNUNG] $1${NC}"
}
error() {
echo -e "${RED}[FEHLER] $1${NC}"
exit 1
}
info() {
echo -e "${BLUE}[INFO] $1${NC}"
}
# Prüfe root-Berechtigung
if [ "$EUID" -ne 0 ]; then
error "Dieses Skript muss als Root ausgeführt werden: sudo $0"
fi
log "=== X11 FRAMEBUFFER-FIX FÜR RASPBERRY PI ==="
# Stoppe laufende X-Server
log "Stoppe laufende X-Server..."
pkill -f "X :0" 2>/dev/null || true
pkill -f "Xorg" 2>/dev/null || true
pkill -f "xinit" 2>/dev/null || true
pkill -f "chromium" 2>/dev/null || true
sleep 2
# Erstelle X11-Konfigurationsverzeichnis
log "Erstelle X11-Konfiguration..."
mkdir -p /etc/X11/xorg.conf.d
# Erstelle Framebuffer-Fix-Konfiguration
cat > /etc/X11/xorg.conf.d/99-fbdev.conf << 'EOF'
# X11 Konfiguration für Raspberry Pi - behebt Framebuffer-Fehler
Section "Device"
Identifier "Raspberry Pi FBDEV"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
Option "SwapbuffersWait" "true"
EndSection
Section "Screen"
Identifier "Primary Screen"
Device "Raspberry Pi FBDEV"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080" "1680x1050" "1600x900" "1280x1024" "1280x800" "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Primary Screen"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "DPMS" "false"
EndSection
EOF
# Alternative Modesetting-Konfiguration
cat > /etc/X11/xorg.conf.d/20-modesetting.conf << 'EOF'
# Alternative Modesetting-Konfiguration
Section "Device"
Identifier "Raspberry Pi Modesetting"
Driver "modesetting"
Option "AccelMethod" "none"
EndSection
EOF
# Installiere fehlende Video-Treiber
log "Installiere Video-Treiber..."
apt-get update
apt-get install -y xserver-xorg-video-fbturbo 2>/dev/null || {
# Fallback zu Standard-Treibern
apt-get install -y xserver-xorg-video-all 2>/dev/null || true
}
# Erstelle X11-Start-Wrapper
log "Erstelle X11-Start-Wrapper..."
cat > /usr/local/bin/start-x11-kiosk << 'EOF'
#!/bin/bash
# X11 Kiosk-Start-Wrapper für Raspberry Pi
export DISPLAY=:0
export XAUTHORITY=/home/kiosk/.Xauthority
# Erstelle .Xauthority
if [ ! -f "$XAUTHORITY" ]; then
touch "$XAUTHORITY"
chown kiosk:kiosk "$XAUTHORITY"
chmod 600 "$XAUTHORITY"
fi
# Stoppe alte X-Server
pkill -f "X :0" 2>/dev/null || true
pkill -f "Xorg" 2>/dev/null || true
sleep 2
echo "Starte X-Server..."
# Versuche verschiedene Start-Methoden
if ! xinit /home/kiosk/.xinitrc -- :0 vt7 -novtswitch -nolisten tcp -dpi 96 2>/tmp/x11-error.log; then
echo "Methode 1 fehlgeschlagen, versuche Alternative..."
if ! xinit /home/kiosk/.xinitrc -- :0 vt7 -config /etc/X11/xorg.conf.d/99-fbdev.conf -ignoreABI 2>>/tmp/x11-error.log; then
echo "Methode 2 fehlgeschlagen, versuche Fallback..."
xinit /home/kiosk/.xinitrc -- :0 2>>/tmp/x11-error.log
fi
fi
if [ -f /tmp/x11-error.log ]; then
echo "X11 Fehler-Log:"
tail -20 /tmp/x11-error.log
fi
EOF
chmod +x /usr/local/bin/start-x11-kiosk
# Erstelle einfaches .xinitrc für kiosk
log "Erstelle korrigiertes .xinitrc..."
cat > /home/kiosk/.xinitrc << 'EOF'
#!/bin/bash
# Fehlerlog
exec 2>/tmp/xinitrc-error.log
# X11 Einstellungen
xset s off
xset s noblank
xset -dpms
# Window Manager
openbox-session &
sleep 2
# Browser starten
BROWSER=""
if command -v chromium >/dev/null 2>&1; then
BROWSER="chromium"
elif command -v chromium-browser >/dev/null 2>&1; then
BROWSER="chromium-browser"
else
BROWSER="firefox-esr"
fi
# Starte Browser mit GPU-Deaktivierung
exec $BROWSER \
--kiosk \
--no-sandbox \
--disable-gpu \
--disable-software-rasterizer \
--disable-dev-shm-usage \
--no-first-run \
--start-fullscreen \
http://localhost:5000
EOF
chmod +x /home/kiosk/.xinitrc
chown kiosk:kiosk /home/kiosk/.xinitrc
# Konfiguriere Raspberry Pi Boot-Einstellungen
if [ -f /boot/config.txt ]; then
log "Konfiguriere Raspberry Pi GPU-Einstellungen..."
# Backup
cp /boot/config.txt /boot/config.txt.backup
# GPU-Einstellungen
if ! grep -q "^gpu_mem=" /boot/config.txt; then
echo "gpu_mem=128" >> /boot/config.txt
fi
if ! grep -q "^hdmi_force_hotplug=" /boot/config.txt; then
cat >> /boot/config.txt << 'EOF'
# X11 Kiosk-Modus Optimierungen
hdmi_force_hotplug=1
hdmi_drive=2
config_hdmi_boost=4
disable_overscan=1
framebuffer_width=1920
framebuffer_height=1080
framebuffer_depth=32
framebuffer_ignore_alpha=1
EOF
fi
fi
log "✅ X11 Framebuffer-Fix installiert!"
info ""
info "📋 Was wurde konfiguriert:"
info " - X11 fbdev-Konfiguration erstellt"
info " - Video-Treiber installiert"
info " - X11-Start-Wrapper erstellt: /usr/local/bin/start-x11-kiosk"
info " - GPU-Einstellungen optimiert"
info ""
info "🔧 Nächste Schritte:"
info " 1. System neustarten: sudo reboot"
info " 2. Als kiosk-User einloggen"
info " 3. X11 wird automatisch mit den Fixes starten"
info ""
info "💡 Manueller Test:"
info " su - kiosk"
info " /usr/local/bin/start-x11-kiosk"
info ""
# Prüfe ob Neustart erforderlich
if [ -f /boot/config.txt.backup ]; then
warning "⚠️ Boot-Konfiguration geändert - Neustart erforderlich!"
fi

View File

@ -148,3 +148,4 @@
2025-06-04 07:21:03 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 09:22:06 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 09:24:06 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 14:24:39 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert

View File

@ -3930,3 +3930,42 @@ WHERE jobs.status = ?) AS anon_1]
2025-06-04 09:27:18 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 09:38:42 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 09:38:44 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 14:24:38 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\manage-your-printer\database\myp.db
2025-06-04 14:24:42 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration verwendet
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
2025-06-04 14:24:42 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-04 14:24:42 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-04 14:24:42 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-04 14:24:42 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration aktiv (keine Optimierungen)
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-04 14:24:42 - [app] app - [INFO] INFO - Keine Drucker zur Initialisierung gefunden
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-04 14:24:42 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-04 14:24:42 - [app] app - [INFO] INFO - 🔧 Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-04 14:24:42 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-04 14:26:05 - [app] app - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich abgemeldet
2025-06-04 14:32:48 - [app] app - [INFO] INFO - OTP generiert für Guest Request 2
2025-06-04 14:38:00 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_schedules: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 14:38:00 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosenschaltzeiten
2025-06-04 14:38:00 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-04 14:38:00 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-04 14:38:01 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_schedules_calendar: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 14:38:01 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_schedules_statistics: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 14:38:01 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-04 14:38:01 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-04 14:38:55 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 14:38:55 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 14:38:55 - [app] app - [ERROR] ERROR - Fehler beim Abrufen der Dashboard-Statistiken: tuple index out of range
2025-06-04 14:38:55 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 0, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 14:38:55 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 14:39:27 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 14:39:27 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 14:39:27 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 14:39:27 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}

View File

@ -1274,3 +1274,8 @@
2025-06-04 00:52:08 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
2025-06-04 00:52:09 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-04 00:52:10 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1
2025-06-04 14:25:17 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
2025-06-04 14:25:17 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-04 14:25:18 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1
2025-06-04 14:26:36 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
2025-06-04 14:26:37 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet

View File

@ -153,3 +153,4 @@
2025-06-04 07:21:03 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 09:22:06 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 09:24:06 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 14:24:39 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)

View File

@ -626,3 +626,7 @@
2025-06-04 09:24:06 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 09:24:06 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit eventlet initialisiert
2025-06-04 09:24:06 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: eventlet)
2025-06-04 14:24:41 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 14:24:42 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 14:24:42 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 14:24:42 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)

View File

@ -149,3 +149,4 @@
2025-06-04 07:21:03 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 09:22:06 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 09:24:06 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 14:24:39 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet

View File

@ -103,3 +103,6 @@
2025-06-04 09:24:07 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 09:24:07 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 09:24:07 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
2025-06-04 14:24:42 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 14:24:42 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 14:24:42 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...

View File

@ -145,3 +145,4 @@
2025-06-04 07:21:04 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 09:22:06 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 09:24:06 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 14:24:41 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)

View File

@ -119,3 +119,7 @@
2025-06-04 09:24:07 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 09:24:07 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 09:24:07 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
2025-06-04 14:24:42 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
2025-06-04 14:24:42 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 14:24:42 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 14:24:42 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database

View File

@ -1 +1,2 @@
2025-06-01 17:19:50 - [guest] guest - [INFO] INFO - Neue Gastanfrage erstellt: ID 1, Name: Till Tomczak, OTP generiert
2025-06-04 14:32:48 - [guest] guest - [INFO] INFO - Neue Gastanfrage erstellt: ID 2, Name: Martin Noack, OTP generiert

View File

@ -296,3 +296,5 @@
2025-06-04 09:22:06 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 09:24:06 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 09:24:06 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 14:24:41 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 14:24:42 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet

View File

@ -294,3 +294,5 @@
2025-06-04 09:22:06 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 09:24:06 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 09:24:06 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 14:24:42 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 14:24:42 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt

View File

@ -147,3 +147,4 @@
2025-06-04 07:21:04 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 09:22:06 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 09:24:06 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 14:24:42 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert

View File

@ -3960,3 +3960,60 @@
2025-06-04 09:24:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 09:24:38 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-04 09:24:44 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.1s
2025-06-04 14:24:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-04 14:24:39 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-04 14:24:41 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-04 14:24:41 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-04 14:24:41 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-04 14:24:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-04 14:24:42 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-04 14:24:47 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-04 14:24:53 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-04 14:24:59 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-04 14:25:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 14:25:11 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-04 14:25:17 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.1s
2025-06-04 14:38:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:25 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:28 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:28 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:28 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:28 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:57 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:38:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:38:57 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 14:39:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 14:39:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden

View File

@ -7096,3 +7096,36 @@
2025-06-04 01:00:45 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 01:00:45 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 01:00:45 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.81ms
2025-06-04 14:38:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 15.59ms
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.60ms
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:25 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.35ms
2025-06-04 14:38:27 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:27 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:27 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.59ms
2025-06-04 14:38:28 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:28 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:28 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.43ms
2025-06-04 14:38:31 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:31 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:31 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 2.49ms
2025-06-04 14:38:57 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:38:57 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:38:57 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.21ms
2025-06-04 14:39:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:39:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:39:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.78ms
2025-06-04 14:39:27 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:39:27 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:39:27 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 11.57ms
2025-06-04 14:39:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:39:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:39:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.34ms
2025-06-04 14:39:31 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 14:39:31 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 14:39:31 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.67ms

File diff suppressed because it is too large Load Diff

View File

@ -147,3 +147,4 @@
2025-06-04 07:21:04 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 09:22:06 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 09:24:06 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 14:24:42 - [security] security - [INFO] INFO - 🔒 Security System initialisiert

View File

@ -248,3 +248,4 @@
2025-06-04 07:21:04 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 09:22:06 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 09:24:06 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 14:24:42 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert

View File

@ -1315,3 +1315,12 @@
2025-06-04 09:24:06 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: /mnt
2025-06-04 09:24:06 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T09:24:06.858917
2025-06-04 09:24:06 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\manage-your-printer
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T14:24:42.153355
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 14:24:42 - [startup] startup - [INFO] INFO - ==================================================

View File

@ -28,3 +28,4 @@
2025-06-04 07:21:04 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 09:22:06 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 09:24:07 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 14:24:42 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert

View File

@ -591,3 +591,7 @@
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-04 14:24:38 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-04 14:24:38 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 14:24:38 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 14:24:38 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet

309
setup.sh
View File

@ -1241,6 +1241,209 @@ install_minimal_x11() {
log "✅ Minimale X11-Umgebung installiert"
}
# =========================== X11 KONFIGURATION FÜR RASPBERRY PI ===========================
configure_x11_for_raspberry_pi() {
log "=== KONFIGURIERE X11 FÜR RASPBERRY PI ==="
progress "Erstelle X11-Konfiguration für Raspberry Pi..."
# Erstelle xorg.conf.d Verzeichnis
mkdir -p /etc/X11/xorg.conf.d
# Erstelle 99-fbdev.conf um Framebuffer-Fehler zu beheben
cat > /etc/X11/xorg.conf.d/99-fbdev.conf << 'XORGEOF'
# X11 Konfiguration für Raspberry Pi - behebt Framebuffer-Fehler
Section "Device"
Identifier "Raspberry Pi FBDEV"
Driver "fbdev"
Option "fbdev" "/dev/fb0"
Option "SwapbuffersWait" "true"
EndSection
Section "Screen"
Identifier "Primary Screen"
Device "Raspberry Pi FBDEV"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080" "1680x1050" "1600x900" "1280x1024" "1280x800" "1024x768"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Primary Screen"
EndSection
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "DPMS" "false"
EndSection
XORGEOF
# Alternative: Verwende modesetting Treiber statt fbdev
cat > /etc/X11/xorg.conf.d/20-modesetting.conf << 'MODESETEOF'
# Alternative Modesetting-Konfiguration
Section "Device"
Identifier "Raspberry Pi Modesetting"
Driver "modesetting"
Option "AccelMethod" "none"
EndSection
MODESETEOF
# Erstelle Wrapper-Skript für X11-Start mit korrekten Parametern
cat > /usr/local/bin/start-x11-kiosk << 'KIOSKSTARTEOF'
#!/bin/bash
# X11 Kiosk-Start-Wrapper für Raspberry Pi
# Behebt Framebuffer und Permission-Probleme
export DISPLAY=:0
export XAUTHORITY=/home/kiosk/.Xauthority
# Erstelle .Xauthority falls nicht vorhanden
if [ ! -f "$XAUTHORITY" ]; then
touch "$XAUTHORITY"
chown kiosk:kiosk "$XAUTHORITY"
chmod 600 "$XAUTHORITY"
fi
# Stoppe eventuell laufende X-Server
pkill -f "X :0" 2>/dev/null || true
pkill -f "Xorg" 2>/dev/null || true
sleep 2
# Versuche verschiedene X-Server Start-Methoden
echo "Starte X-Server für Kiosk-Modus..."
# Methode 1: Mit vt und novtswitch (empfohlen für Raspberry Pi)
if ! xinit /home/kiosk/.xinitrc -- :0 vt7 -novtswitch -nolisten tcp -dpi 96 2>/tmp/x11-error.log; then
echo "Methode 1 fehlgeschlagen, versuche Alternative..."
# Methode 2: Mit config und ignoreABI
if ! xinit /home/kiosk/.xinitrc -- :0 vt7 -config /etc/X11/xorg.conf.d/99-fbdev.conf -ignoreABI 2>>/tmp/x11-error.log; then
echo "Methode 2 fehlgeschlagen, versuche Fallback..."
# Methode 3: Minimaler Start
xinit /home/kiosk/.xinitrc -- :0 2>>/tmp/x11-error.log
fi
fi
# Fehlerlog anzeigen bei Problem
if [ -f /tmp/x11-error.log ]; then
echo "X11 Fehler-Log:"
tail -20 /tmp/x11-error.log
fi
KIOSKSTARTEOF
chmod +x /usr/local/bin/start-x11-kiosk
# Installiere fehlende Video-Treiber
progress "Installiere Video-Treiber für Raspberry Pi..."
apt-get install -y xserver-xorg-video-fbturbo 2>/dev/null || {
# Fallback zu Standard-Treibern
apt-get install -y xserver-xorg-video-all 2>/dev/null || true
}
# Raspberry Pi spezifische Video-Treiber
if [ -f /boot/config.txt ]; then
progress "Konfiguriere Raspberry Pi GPU-Einstellungen..."
# Backup config.txt
cp /boot/config.txt /boot/config.txt.backup
# GPU-Speicher erhöhen für bessere Grafik-Performance
if ! grep -q "^gpu_mem=" /boot/config.txt; then
echo "gpu_mem=128" >> /boot/config.txt
fi
# HDMI-Einstellungen für bessere Kompatibilität
if ! grep -q "^hdmi_force_hotplug=" /boot/config.txt; then
cat >> /boot/config.txt << 'BOOTEOF'
# X11 Kiosk-Modus Optimierungen
hdmi_force_hotplug=1
hdmi_drive=2
config_hdmi_boost=4
disable_overscan=1
framebuffer_width=1920
framebuffer_height=1080
framebuffer_depth=32
framebuffer_ignore_alpha=1
BOOTEOF
fi
fi
# Erstelle alternatives .xinitrc für kiosk User
cat > /home/kiosk/.xinitrc-fixed << 'XINITRCEOF'
#!/bin/bash
# Fehlerbehandlung
set -e
exec 2>/tmp/xinitrc-error.log
# X11 Einstellungen
xset s off
xset s noblank
xset -dpms
# Mauszeiger verstecken
unclutter -idle 0.1 -root -noevents &
# Window Manager starten (lightweight)
openbox-session &
# Warte kurz
sleep 2
# Browser starten
if command -v chromium >/dev/null 2>&1; then
BROWSER="chromium"
elif command -v chromium-browser >/dev/null 2>&1; then
BROWSER="chromium-browser"
else
BROWSER="firefox-esr"
fi
# Starte Browser im Kiosk-Modus
exec $BROWSER \
--kiosk \
--no-sandbox \
--disable-gpu-sandbox \
--disable-software-rasterizer \
--disable-dev-shm-usage \
--disable-setuid-sandbox \
--disable-gpu \
--no-first-run \
--noerrdialogs \
--disable-infobars \
--start-fullscreen \
http://localhost:5000
XINITRCEOF
chmod +x /home/kiosk/.xinitrc-fixed
chown kiosk:kiosk /home/kiosk/.xinitrc-fixed
# Aktualisiere die .bashrc für den alternativen Start
cat > /home/kiosk/.bashrc-kiosk << 'BASHRCEOF4'
# Kiosk-Autostart mit X11-Fixes
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = "1" ]; then
echo "Starte Kiosk-Modus mit X11-Fixes..."
# Verwende das neue Start-Skript
exec /usr/local/bin/start-x11-kiosk
fi
BASHRCEOF4
log "✅ X11-Konfiguration für Raspberry Pi erstellt"
info " 📁 Konfiguration: /etc/X11/xorg.conf.d/"
info " 🚀 Start-Skript: /usr/local/bin/start-x11-kiosk"
info " 🔧 Alternative .xinitrc: /home/kiosk/.xinitrc-fixed"
}
# =========================== KIOSK-BENUTZER MANAGEMENT ===========================
create_kiosk_user() {
log "=== KIOSK-BENUTZER SETUP ==="
@ -1495,6 +1698,111 @@ EOF
log "✅ Automatischer Kiosk-Start konfiguriert"
info "Der Kiosk-Modus startet automatisch beim Login des $KIOSK_USER"
# Wenn X11-Konfiguration für Raspberry Pi vorhanden ist, verwende sie
if [ -f /usr/local/bin/start-x11-kiosk ]; then
progress "Aktualisiere .bashrc für X11-Fix-Integration..."
# Backup der aktuellen .bashrc
cp "$kiosk_home/.bashrc" "$kiosk_home/.bashrc.backup"
# Verwende die korrigierte Version
cat > "$kiosk_home/.bashrc" << 'BASHRCFIXED'
# Automatischer Kiosk-Start beim Login mit X11-Fixes
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = "1" ]; then
echo "Starte Kiosk-Modus mit X11-Fixes..."
# Verwende das X11-Fix Start-Skript wenn vorhanden
if [ -x /usr/local/bin/start-x11-kiosk ]; then
exec /usr/local/bin/start-x11-kiosk
else
# Fallback zum normalen Start
startx /home/kiosk/.xinitrc -- :0 vt1 &
sleep 5
export DISPLAY=:0
# Warte auf HTTP-Backend
echo "Warte auf HTTP-Backend..."
for i in {1..60}; do
if curl -s http://localhost:5000 >/dev/null 2>&1; then
echo "HTTP-Backend erreichbar"
break
fi
echo "Warte... ($i/60)"
sleep 2
done
# Bildschirmschoner deaktivieren
xset s off
xset s noblank
xset -dpms
# Mauszeiger verstecken
unclutter -idle 0.1 -root -noevents &
# Browser im Kiosk-Modus starten
if command -v chromium >/dev/null 2>&1; then
BROWSER="chromium"
elif command -v chromium-browser >/dev/null 2>&1; then
BROWSER="chromium-browser"
else
BROWSER="firefox-esr"
fi
echo "Starte $BROWSER im Kiosk-Modus..."
if [[ "$BROWSER" == "chromium"* ]]; then
exec $BROWSER \
--kiosk \
--no-sandbox \
--disable-infobars \
--disable-session-crashed-bubble \
--disable-restore-session-state \
--disable-features=TranslateUI \
--disable-extensions \
--disable-plugins \
--disable-popup-blocking \
--disable-prompt-on-repost \
--disable-sync \
--disable-translate \
--noerrdialogs \
--no-first-run \
--no-default-browser-check \
--autoplay-policy=no-user-gesture-required \
--start-fullscreen \
--start-maximized \
--user-data-dir=/home/kiosk/.chromium-kiosk \
--disable-background-mode \
--force-device-scale-factor=1.0 \
--disable-pinch \
--overscroll-history-navigation=0 \
--disable-dev-shm-usage \
--memory-pressure-off \
--max_old_space_size=512 \
--disable-background-timer-throttling \
--disable-backgrounding-occluded-windows \
--disable-renderer-backgrounding \
--disable-features=VizDisplayCompositor \
--enable-features=OverlayScrollbar \
--hide-scrollbars \
--ignore-certificate-errors \
--ignore-ssl-errors \
--ignore-certificate-errors-spki-list \
--disable-web-security \
--allow-running-insecure-content \
http://localhost:5000
else
exec firefox-esr \
--kiosk \
http://localhost:5000
fi
fi
fi
BASHRCFIXED
chown "$KIOSK_USER:$KIOSK_USER" "$kiosk_home/.bashrc"
log "✅ .bashrc für X11-Fix-Integration aktualisiert"
fi
}
# =========================== ROBUSTE SSL-ZERTIFIKATE INSTALLATION ===========================
@ -2955,6 +3263,7 @@ install_full_production_system() {
# Desktop-Environments entfernen und minimale X11 installieren
remove_desktop_environments
install_minimal_x11
configure_x11_for_raspberry_pi
# Performance-Optimierungen für Raspberry Pi Webapp
optimize_webapp_performance