90 lines
3.1 KiB
Bash
Executable File
90 lines
3.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# MYP Kiosk-Modus Einrichtungsskript
|
|
|
|
# Fehlerabbruch aktivieren
|
|
set -e
|
|
|
|
echo "===== MYP Kiosk-Modus Einrichtungsskript ====="
|
|
echo "Dieses Skript richtet MYP für den automatischen Start im Kiosk-Modus ein."
|
|
echo ""
|
|
|
|
# 1. Benötigte Pakete installieren
|
|
echo "1. Installiere benötigte Pakete..."
|
|
sudo apt update
|
|
sudo apt install -y python3 python3-pip python3-venv chromium-browser \
|
|
unclutter xdotool xscreensaver git
|
|
|
|
# 2. Verzeichnis für MYP erstellen und Projekt kopieren
|
|
echo "2. Kopiere MYP nach /opt/myp..."
|
|
sudo mkdir -p /opt/myp
|
|
sudo chown $USER:$USER /opt/myp
|
|
|
|
# Aktuelle Verzeichnisstruktur ermitteln
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
echo "Kopiere Dateien von $SCRIPT_DIR nach /opt/myp..."
|
|
cp -r "$SCRIPT_DIR"/* /opt/myp/
|
|
|
|
# 3. Python-Umgebung und Abhängigkeiten einrichten
|
|
echo "3. Richte Python-Umgebung ein..."
|
|
cd /opt/myp
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt
|
|
|
|
# 4. Systemd-Dienst für Flask-Backend einrichten
|
|
echo "4. Richte Flask-Backend-Dienst ein..."
|
|
sudo cp /opt/myp/myp.service /etc/systemd/system/
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable myp.service
|
|
sudo systemctl start myp.service
|
|
|
|
# 5. Kiosk-Script einrichten
|
|
echo "5. Richte Kiosk-Script ein..."
|
|
cp /opt/myp/kiosk.sh /home/pi/
|
|
chmod +x /home/pi/kiosk.sh
|
|
|
|
# 6. Systemd-User-Dienst für Kiosk einrichten
|
|
echo "6. Richte Kiosk-Dienst ein..."
|
|
mkdir -p /home/pi/.config/systemd/user
|
|
cp /opt/myp/kiosk.service /home/pi/.config/systemd/user/
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable kiosk.service
|
|
|
|
# 7. Linger für den pi-Benutzer aktivieren
|
|
echo "7. Aktiviere User-Linger für pi-Benutzer..."
|
|
sudo loginctl enable-linger pi
|
|
|
|
# 8. Watchdog-Script einrichten
|
|
echo "8. Richte Watchdog-Script ein..."
|
|
cp /opt/myp/watchdog.sh /home/pi/
|
|
chmod +x /home/pi/watchdog.sh
|
|
|
|
# 9. Cron-Job für Watchdog einrichten
|
|
echo "9. Richte Cron-Job für Watchdog ein..."
|
|
(crontab -l 2>/dev/null || echo "") | grep -v "watchdog.sh" | { cat; echo "*/5 * * * * /home/pi/watchdog.sh > /dev/null 2>&1"; } | crontab -
|
|
|
|
# 10. Automatischen Login einrichten
|
|
echo "10. Automatischer Login wird manuell über raspi-config eingerichtet"
|
|
echo " Führe 'sudo raspi-config' aus und wähle:"
|
|
echo " 1 System Options → S5 Boot/Auto Login → B4 Desktop Autologin"
|
|
|
|
# 11. Bildschirm nie ausschalten
|
|
echo "11. Deaktiviere Bildschirmschoner..."
|
|
sudo sed -i 's/#BLANK_TIME=.*/BLANK_TIME=0/' /etc/xdg/lxsession/LXDE-pi/autostart
|
|
|
|
echo ""
|
|
echo "===== Installation abgeschlossen ====="
|
|
echo "Um die Einrichtung zu vervollständigen, führe 'sudo raspi-config' aus"
|
|
echo "und aktiviere den automatischen Login: "
|
|
echo "1 System Options → S5 Boot/Auto Login → B4 Desktop Autologin"
|
|
echo ""
|
|
echo "Nach einem Neustart sollte der Raspberry Pi automatisch:"
|
|
echo "1. Die MYP-Flask-Anwendung starten"
|
|
echo "2. Den Chromium-Browser im Kiosk-Modus öffnen"
|
|
echo ""
|
|
echo "MYP ist erreichbar unter: http://localhost:5000/"
|
|
echo ""
|
|
echo "Ein Watchdog-Script überwacht alle 5 Minuten, ob Chromium und der MYP-Dienst"
|
|
echo "noch laufen und startet sie bei Bedarf neu."
|
|
echo ""
|
|
echo "Starte den Raspberry Pi neu mit 'sudo reboot'" |