- Mitglied seit
- 7 Feb 2007
- Beiträge
- 674
- Punkte für Reaktionen
- 0
- Punkte
- 16
Hallo,
Fertige Lösung siehe Ende des Posts
ich habe mich heute ein bisschen damit beschäftigt, wie man mittels wget und curl aus der Linux-Shell ein Firmware-Update machen kann, und bin dabei auf ein Problem gestoßen, aus dem ich nicht ganz schlau werde. Vielleicht fällt ja jemandem was dazu ein. Wenn das Ganze funktioniert, kann man daraus ein Script bauen, was das Ganze mit einem einzigen Befehl erledigt - vor allem praktisch, wenn man seine Firmware auf einer Linux-Kiste ohne GUI baut.
Hier mal meine Vorgehensweise:
Ich fürchte, dass ich irgendwas übersehe. Sieht jemand vielleicht das Problem oder hat eine Erklärung, oder will es selbst mal probieren? Wenn man bei den Kommandos jeweils das /dev/null durch einen Dateinamen ersetzt, wird das Ergebnis der Abfrage in dieser Datei gespeichert. So kann man sich den Ablauf ansehen.
Fertige Lösung:
Script aus dem Anhang auspacken und ausführen.
Ich selbst habe es nur mit meiner 7170 getestet. Mit einem funktionierenden Image funktioniert es ohne Probleme. Es gibt auch eine Behandlung des Fehlers, der auftritt, wenn die angebene Datei kein korrektes Image ist, dies funktioniert aber nicht immer korrekt, zumindest bei mir. Ich bekomme das gleiche Ergebnis raus, wie bei einem richtigen Image. Wer eine Lösung weiss, bitte her damit.
Weiters ist der Codeteil ungetestet, der auf einer Box ohne Hash-Prüfung die letzte Bestätigung überspringen sollte. Wenn wer mag, kann er das ja auch mal ausprobieren.
Gruss, Nico
PS: Natürlich alles wie üblich auf eigene Gefahr.
Fertige Lösung siehe Ende des Posts
ich habe mich heute ein bisschen damit beschäftigt, wie man mittels wget und curl aus der Linux-Shell ein Firmware-Update machen kann, und bin dabei auf ein Problem gestoßen, aus dem ich nicht ganz schlau werde. Vielleicht fällt ja jemandem was dazu ein. Wenn das Ganze funktioniert, kann man daraus ein Script bauen, was das Ganze mit einem einzigen Befehl erledigt - vor allem praktisch, wenn man seine Firmware auf einer Linux-Kiste ohne GUI baut.
Hier mal meine Vorgehensweise:
- Anmelden am Webinterface der Fritzbox
Code:wget -O /dev/null --post-data=login%3Acommand%2Fpassword=<password> http://fritz.box/cgi-bin/webcm
- Upload des Firmware-Images
Code:curl -o /dev/null -F "upgrade=Update" -F "UploadFile=@<path_to_image_file>;filename=\\firmware.image" http://fritz.box/cgi-bin/firmwarecfg
- Update bestätigen (wenn keine Original-AVM-FW)
Code:wget -O /dev/null --post-data="install=Update%20fortsetzen" http://fritz.box/cgi-bin/firmwarecfg
Ich fürchte, dass ich irgendwas übersehe. Sieht jemand vielleicht das Problem oder hat eine Erklärung, oder will es selbst mal probieren? Wenn man bei den Kommandos jeweils das /dev/null durch einen Dateinamen ersetzt, wird das Ergebnis der Abfrage in dieser Datei gespeichert. So kann man sich den Ablauf ansehen.
Fertige Lösung:
Script aus dem Anhang auspacken und ausführen.
Ich selbst habe es nur mit meiner 7170 getestet. Mit einem funktionierenden Image funktioniert es ohne Probleme. Es gibt auch eine Behandlung des Fehlers, der auftritt, wenn die angebene Datei kein korrektes Image ist, dies funktioniert aber nicht immer korrekt, zumindest bei mir. Ich bekomme das gleiche Ergebnis raus, wie bei einem richtigen Image. Wer eine Lösung weiss, bitte her damit.
Weiters ist der Codeteil ungetestet, der auf einer Box ohne Hash-Prüfung die letzte Bestätigung überspringen sollte. Wenn wer mag, kann er das ja auch mal ausprobieren.
Gruss, Nico
PS: Natürlich alles wie üblich auf eigene Gefahr.
Anhänge
Zuletzt bearbeitet: