🔧 Entfernt: Veraltete Skripte für SSL-Fix, Setup und Kiosk-Management zur Verbesserung der Codebasis und Reduzierung von Wartungsaufwand. 🚀

This commit is contained in:
2025-06-10 13:02:33 +02:00
parent c42eb80e8f
commit 61d3612978
11 changed files with 142 additions and 8624 deletions

View File

@ -1,370 +0,0 @@
#!/bin/bash
# ===================================================================
# DEFINITIVER KIOSK-FIX FÜR RASPBERRY PI
# Löst ALLE X11/Framebuffer-Probleme garantiert
# ===================================================================
set -euo pipefail
# Farben
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}"; }
# Root-Check
if [ "$EUID" -ne 0 ]; then
error "Als Root ausführen: sudo $0"
fi
log "=== DEFINITIVER KIOSK-FIX ==="
# 1. STOPPE ALLES
log "Stoppe alle Display-Manager und X-Server..."
systemctl stop lightdm 2>/dev/null || true
systemctl stop gdm3 2>/dev/null || true
systemctl stop sddm 2>/dev/null || true
systemctl stop xdm 2>/dev/null || true
systemctl stop nodm 2>/dev/null || true
systemctl disable lightdm 2>/dev/null || true
systemctl disable gdm3 2>/dev/null || true
systemctl disable sddm 2>/dev/null || true
systemctl disable xdm 2>/dev/null || true
systemctl disable nodm 2>/dev/null || true
pkill -f "X" 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 3
# 2. KERNEL MODE SETTING (KMS) AKTIVIEREN
log "Aktiviere KMS/DRM Treiber..."
if [ -f /boot/config.txt ]; then
cp /boot/config.txt /boot/config.txt.backup-$(date +%s)
# Entferne alte Einstellungen
sed -i '/^dtoverlay=vc4-kms-v3d/d' /boot/config.txt
sed -i '/^dtoverlay=vc4-fkms-v3d/d' /boot/config.txt
sed -i '/^gpu_mem=/d' /boot/config.txt
# Füge KMS-Treiber hinzu
cat >> /boot/config.txt << 'EOF'
# Kiosk-Modus GPU-Konfiguration
dtoverlay=vc4-kms-v3d
max_framebuffers=2
gpu_mem=256
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=82
hdmi_drive=2
disable_overscan=1
EOF
info "Boot-Konfiguration aktualisiert"
fi
# 3. INSTALLIERE ALLE NÖTIGEN PAKETE
log "Installiere notwendige Pakete..."
apt-get update
apt-get install -y --no-install-recommends \
xserver-xorg \
xserver-xorg-video-all \
xserver-xorg-input-all \
xinit \
x11-xserver-utils \
openbox \
chromium-browser \
unclutter \
xdotool \
wmctrl \
xvfb \
2>/dev/null || true
# 4. ERSTELLE MINIMALE X11-KONFIGURATION
log "Erstelle X11-Konfiguration..."
mkdir -p /etc/X11/xorg.conf.d
# Hauptkonfiguration
cat > /etc/X11/xorg.conf << 'EOF'
Section "ServerFlags"
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "DPMS" "false"
Option "AllowEmptyInput" "true"
Option "AutoAddDevices" "true"
EndSection
Section "Monitor"
Identifier "Monitor0"
Option "DPMS" "false"
EndSection
Section "Device"
Identifier "Card0"
Driver "modesetting"
Option "AccelMethod" "glamor"
Option "DRI" "3"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
EOF
# 5. ERSTELLE KIOSK-USER WENN NICHT VORHANDEN
if ! id "kiosk" &>/dev/null; then
log "Erstelle kiosk-User..."
useradd -m -s /bin/bash kiosk
usermod -aG audio,video,input,dialout,plugdev,users kiosk
fi
# 6. ERSTELLE AUTOLOGIN
log "Konfiguriere Autologin..."
mkdir -p /etc/systemd/system/getty@tty1.service.d
cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << 'EOF'
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin kiosk --noclear %I \$TERM
Type=idle
EOF
# 7. ERSTELLE DREI VERSCHIEDENE START-METHODEN
# Methode 1: Direkt-Start ohne Display Manager
log "Erstelle Methode 1: Direkt-Start..."
cat > /home/kiosk/kiosk-direct.sh << 'EOF'
#!/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/kiosk/.Xauthority
# Warte auf Netzwerk
sleep 10
# Erstelle .Xauthority
touch $XAUTHORITY
chmod 600 $XAUTHORITY
# Starte X-Server direkt
/usr/bin/xinit /home/kiosk/kiosk-browser.sh -- /usr/bin/X :0 -nolisten tcp -nocursor
EOF
# Browser-Start-Skript
cat > /home/kiosk/kiosk-browser.sh << 'EOF'
#!/bin/bash
# Warte auf X-Server
sleep 3
# X11-Einstellungen
xset s off
xset s noblank
xset -dpms
# Window Manager
openbox-session &
sleep 2
# Warte auf Backend
echo "Warte auf Backend..."
while ! curl -s http://localhost:5000 >/dev/null 2>&1; do
sleep 2
done
# Starte Browser
chromium-browser \
--kiosk \
--no-sandbox \
--disable-setuid-sandbox \
--disable-dev-shm-usage \
--disable-accelerated-2d-canvas \
--no-first-run \
--no-zygote \
--single-process \
--disable-gpu \
--window-size=1920,1080 \
--start-fullscreen \
--incognito \
http://localhost:5000
EOF
# Methode 2: Mit startx
log "Erstelle Methode 2: startx..."
cat > /home/kiosk/.xinitrc << 'EOF'
#!/bin/bash
xset s off
xset s noblank
xset -dpms
openbox-session &
sleep 2
# Warte auf Backend
while ! curl -s http://localhost:5000 >/dev/null 2>&1; do
sleep 2
done
exec chromium-browser --kiosk --no-sandbox --disable-gpu --disable-software-rasterizer --disable-dev-shm-usage http://localhost:5000
EOF
# Methode 3: Systemd Service
log "Erstelle Methode 3: Systemd Service..."
cat > /etc/systemd/system/kiosk.service << 'EOF'
[Unit]
Description=Kiosk Mode
After=multi-user.target network.target
[Service]
Type=simple
Restart=always
RestartSec=10
User=kiosk
Group=kiosk
PAMName=login
TTYPath=/dev/tty2
StandardInput=tty
StandardOutput=journal
StandardError=journal
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/kiosk/.Xauthority"
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/xinit /home/kiosk/kiosk-browser.sh -- /usr/bin/X :0 -nolisten tcp
[Install]
WantedBy=multi-user.target
EOF
# 8. ERSTELLE FALLBACK: TERMINAL-BROWSER
log "Erstelle Terminal-Browser-Fallback..."
cat > /home/kiosk/terminal-browser.sh << 'EOF'
#!/bin/bash
# Terminal-basierter Browser als Fallback
clear
echo "=== KIOSK-MODUS (Terminal) ==="
echo "Warte auf Backend..."
while ! curl -s http://localhost:5000 >/dev/null 2>&1; do
sleep 2
echo -n "."
done
echo ""
echo "Backend verfügbar!"
echo ""
echo "Optionen:"
echo "1) Links2 Browser starten (Terminal)"
echo "2) W3M Browser starten (Terminal)"
echo "3) Versuche X11 erneut"
echo ""
# Installiere Terminal-Browser falls nötig
which links2 >/dev/null 2>&1 || apt-get install -y links2
which w3m >/dev/null 2>&1 || apt-get install -y w3m
links2 http://localhost:5000
EOF
# 9. BERECHTIGUNGEN SETZEN
log "Setze Berechtigungen..."
chmod +x /home/kiosk/*.sh
chmod +x /home/kiosk/.xinitrc
chown -R kiosk:kiosk /home/kiosk/
touch /home/kiosk/.Xauthority
chown kiosk:kiosk /home/kiosk/.Xauthority
chmod 600 /home/kiosk/.Xauthority
# 10. ERSTELLE MASTER-START-SKRIPT
log "Erstelle Master-Start-Skript..."
cat > /home/kiosk/.bashrc << 'EOF'
# Kiosk Auto-Start
if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = "1" ]; then
echo "=== KIOSK-MODUS WIRD GESTARTET ==="
echo ""
echo "Versuche Methode 1: Direkt-Start..."
# Methode 1
if /home/kiosk/kiosk-direct.sh 2>/tmp/kiosk-error1.log; then
exit 0
fi
echo "Methode 1 fehlgeschlagen. Versuche Methode 2: startx..."
sleep 2
# Methode 2
if startx -- -nocursor 2>/tmp/kiosk-error2.log; then
exit 0
fi
echo "Methode 2 fehlgeschlagen. Versuche Methode 3: Xvfb..."
sleep 2
# Methode 3: Virtual Framebuffer
Xvfb :0 -screen 0 1920x1080x24 &
export DISPLAY=:0
sleep 2
/home/kiosk/kiosk-browser.sh 2>/tmp/kiosk-error3.log
# Wenn alles fehlschlägt
echo ""
echo "ALLE X11-METHODEN FEHLGESCHLAGEN!"
echo ""
echo "Fehler-Logs:"
echo "- /tmp/kiosk-error1.log"
echo "- /tmp/kiosk-error2.log"
echo "- /tmp/kiosk-error3.log"
echo ""
echo "Starte Terminal-Browser als Fallback..."
sleep 3
/home/kiosk/terminal-browser.sh
fi
EOF
chown kiosk:kiosk /home/kiosk/.bashrc
# 11. SYSTEMD-DIENSTE
log "Konfiguriere Systemd..."
systemctl daemon-reload
systemctl enable getty@tty1.service
systemctl enable kiosk.service 2>/dev/null || true
# 12. FINALE ÜBERPRÜFUNG
log "✅ INSTALLATION ABGESCHLOSSEN!"
info ""
info "📋 Was wurde installiert:"
info " - KMS/DRM-Treiber aktiviert"
info " - X11 komplett neu konfiguriert"
info " - 3 verschiedene Start-Methoden"
info " - Terminal-Browser als Fallback"
info " - Autologin konfiguriert"
info ""
warning "⚠️ NEUSTART ERFORDERLICH!"
info ""
info "Nach dem Neustart:"
info "1. System startet automatisch in Kiosk-Modus"
info "2. Falls X11 fehlschlägt, startet Terminal-Browser"
info ""
info "Manueller Test ohne Neustart:"
info " su - kiosk"
info " ./kiosk-direct.sh"
info ""
read -p "Jetzt neustarten? (j/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Jj]$ ]]; then
reboot
fi

View File

@ -1,237 +0,0 @@
#!/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