🔧 Entfernt: Veraltete Skripte für SSL-Fix, Setup und Kiosk-Management zur Verbesserung der Codebasis und Reduzierung von Wartungsaufwand. 🚀
This commit is contained in:
@ -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
|
@ -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
|
Reference in New Issue
Block a user