This commit is contained in:
Sebastian Hanz 2025-02-17 17:56:00 +01:00
commit 6a8b9708fd
9 changed files with 320 additions and 0 deletions

View file

@ -0,0 +1,50 @@
#!/bin/bash
url=$1
filename="${url##*/}"
device=$2
if [ -z "$1" ]; then
echo -e "\nParameter fehlen!\n"
echo -e "Die Firmware findest du hier: https://deconz.dresden-elektronik.de/deconz-firmware/\n"
echo -e "Usage: firmware-upgrade.sh <url> <device>\n"
echo -e "Beispiel: ./firmware-upgrade.sh https://deconz.dresden-elektronik.de/deconz-firmware/deCONZ_ConBeeII_0x26780700.bin.GCF /dev/ttyACM0\n"
exit
fi
# Check ob Gerät existiert
if [ -e "$device" ]; then
echo -e "\nDas Gerät $device existiert."
else
echo -e "\nDas Gerät $device existiert nicht. Hast du dich verschrieben?\n"
exit 1 # Abbruch mit Fehlercode 1
fi
#Wechse in das Arbeits-Verzeichnis und lade die Firmware herunter
cd /tmp
wget $url
# Check ob Download erfolgreich war
if [ $? -eq 0 ]; then
echo -e "\nDownload erfolgreich!\n"
else
echo -e "\nDownload fehlgeschlagen! Die URL ist eventuell nicht korrekt!\n"
exit 1 # Abbruch mit Fehlercode 1
fi
#Starte deconz-docker-container
docker run -d --name deconz-firmware --privileged --cap-add=ALL -v /dev:/dev -v /lib/modules:/lib/modules -v /sys:/sys -v /tmp:/tmp deconzcommunity/deconz:stable
#Führen den Flasher im deconz-container aus mit den zugehörigen Parametern
docker exec deconz-firmware /bin/bash -c "cd /tmp && GCFFlasher_internal -d $device -f ./$filename"
#Cleanup
echo -e "Stopped deconz-firmware\n"
docker stop deconz-firmware
echo -e "Removed deconz-firmware\n"
docker rm deconz-firmware
echo -e "Cleanup\n"
rm -f /tmp/$filename
echo "Done"