- Mitglied seit
- 7 Nov 2006
- Beiträge
- 2,927
- Punkte für Reaktionen
- 3
- Punkte
- 36
Ich wurde per (PN) Privatnachricht etwas gefragt. Da ich privat keinen Support leiste, die Frage aber einigermaßen interessant und von allgemeinem Interesse ist, sollen auch alle etwas von der Antwort haben.
Update: Schritt 2 (make tools) hatte ich zunächst vergessen zu erwähnen, danke Oliver!
Am einfachsten ist es, doch Freetz als Infrastruktur zu benutzen, und zwar das Skript fwmod aus dem Freetz-Hauptverzeichnis. Wenn man es ohne Parameter aufruft, verrät es sogar, wie es benutzt werden möchte:
Wir brauchen also einmal den Aufruf mit -u zum Entpacken, dann nach der Modifikation den mit -p zum erneuten Packen.
Ich gehe im Folgenden davon aus, daß sich der Benutzer im Hauptverzeichnis des frisch ausgepackten oder ausgecheckten Freetz befindet und das zu modifizierende Firmware-Image bereits in dieses Verzeichnis heruntergeladen hat. Dann sind folgende Schritte auszuführen:
Danach heißt es: happy flashing! :-D
P.S.: Wer hat Lust, das mal ins Freetz-Wiki zu übertragen? Ich habe leider wenig Zeit und dachte nicht daran, es gleich dort zu hinterlegen.
hägga schrieb:Da du dich ja mit FB-Mods beschäftigst wollt ich mal fragen, ob du mir evtl. helfen könntest.
Ich möcht die FB 7170 Firmware 29.04.59 entpacken, von Hand ändern( kein Freetz! ) und wieder packen. Leider hab ich bis jetzt keine funktionierende Anleitung gefunden.
Könntest du vll. eine solche schreiben?
Wäre echt toll!
Update: Schritt 2 (make tools) hatte ich zunächst vergessen zu erwähnen, danke Oliver!
Am einfachsten ist es, doch Freetz als Infrastruktur zu benutzen, und zwar das Skript fwmod aus dem Freetz-Hauptverzeichnis. Wenn man es ohne Parameter aufruft, verrät es sogar, wie es benutzt werden möchte:
Code:
$ ./fwmod
Usage: fwmod [-u|-m|-p|-a] [-i <cfg>] [-d <dir>] <orig_fw> [<tk_fw>]
actions
-u unpack firmware image
-m modify previously unpacked image
-p pack firmware image
-a all: unpack, modify and pack firmware image (-u -m -p)
input/output
-i <cfg> input file for configuration data (default: .config)
-d <dir> build directory (default: <orig_firmware>.mod)
<orig_fw> original firmware name
<tk_fw> 2nd firmware name (e.g. for merging in web UI)
Ich gehe im Folgenden davon aus, daß sich der Benutzer im Hauptverzeichnis des frisch ausgepackten oder ausgecheckten Freetz befindet und das zu modifizierende Firmware-Image bereits in dieses Verzeichnis heruntergeladen hat. Dann sind folgende Schritte auszuführen:
- Zunächst müssen wir eine passende Konfigurationsdatei .config erzeugen, damit beim Packen später das Skript fwmod die erforderlichen Informationen findet. Dazu rufen wir einmal
Code:
make menuconfig
- Bevor wir fwmod erstmals aufrufen können, müssen einige Werkzeuge gebaut werden, die später indirekt aufgerufen werden, um die Firmware zu entpacken und später wieder zusammenzubauen:
Code:
make tools
- Jetzt entpacken wir das von AVM heruntergeladene Firmware-Image in ein Verzeichnis, das ich willkürlich und beispielhaft unpacked_firmware nenne:
Code:
./fwmod -u -d unpacked_firmware FRITZ.Box_Fon_WLAN_7170.29.04.59.image
- Unter unpacked_firmware/original/filesystem modifizieren wir nun nach Herzenslust das Dateisystem der Firmware, wobei ich hier nicht darauf eingehe, was dabei zu beachten ist - das würde den Rahmen sprengen.
- Zum guten Schluß packen wir nun wieder das Firmware-Image:
Code:
./fwmod -p -d unpacked_firmware FRITZ.Box_Fon_WLAN_7170.29.04.59.image
- Nach einer Weile steht am Ende der Skript-Ausgabe so etwas wie
Code:
creating filesystem image merging kernel image kernel image size: 6969088 (max: 7798784, free: 829696) packing [COLOR="Blue"][B]7170_.de_20080923-200251.image[/B][/COLOR] done. FINISHED
Danach heißt es: happy flashing! :-D
P.S.: Wer hat Lust, das mal ins Freetz-Wiki zu übertragen? Ich habe leider wenig Zeit und dachte nicht daran, es gleich dort zu hinterlegen.
Zuletzt bearbeitet: