ich geh behindert
This commit is contained in:
237
backend/debug/fix-x11-framebuffer.sh
Normal file
237
backend/debug/fix-x11-framebuffer.sh
Normal 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
|
||||
Reference in New Issue
Block a user