[Gelöst] Mit fwmod Firmware manuell verändern

dancedoc

Mitglied
Mitglied seit
12 Okt 2006
Beiträge
338
Punkte für Reaktionen
0
Punkte
16
Hallo zusammen,

ich brauche mal Unterstützung von den Freetz-Experten. Wahrscheinlich ist es nur eine Kleinigkeit, die ich falsch mache.

Also, ich möchte gerne die Firmware für die Fritzbox 7570HN-Edition verändern um Capture und Telnet zu implementieren. Vorliegen tut ein Dump der Firmware 81.05.09.

Entsprechend des HowTos (*Klick*) bin ich folgendermaßen vorgegangen.
* Firmware-Dump ("Alice_IAD_7570_vDSL_81.05.09_Dump.image") in ein Freetz-Unterverzeichnis kopiert
* Die Tools sind schon gebaut worden
* FW entpacken mit "../../../../fwmod -u -d unpacked_firmware Alice_IAD_7570_vDSL_81.05.09_Dump.image", keine Fehlermeldung
* im angelegten Verzeichnis bei "original" die Änderungen eingefügt, u.a. utelnetd nach "original/filesystem/bin" kopiert
* Dann die FW wieder gepackt mit "../../../../fwmod -p -d unpacked_firmware Alice_IAD_7570_vDSL_81.05.09_Dump.image", Ausage beim Packen:
Code:
detected firmware 7570-vDSL_de 81.05.09 rev27443 (11.02.2014 14:24:41)

STEP 3: PACK
  checking for left over Subversion directories
  integrate freetz info file into image
packing var.tar
creating filesystem image
  SquashFS block size: 64 kB (65536 bytes)
merging kernel image
  kernel image size: 7.2 MB, max 15.2 MB, free 8.0 MB (8397922 bytes)
  Aproximately maximal time for the answering machine: 66 min, 41 sec (4001 sec)
packing unpacked_firmware/7570_-.en_20140316-061629.image
  image file size: 8.0 MB
done.

FINISHED
* anschließend ist in "unpacked_firmware" das Verzeichnis "modified" angelegt worden, utelnetd ist in diesem Verzeichnis vorhanden
* außerdem gibt es im Verzeichnis "unpacked_firmware" die Datei "7570_-.en_20140316-061629.image", die ja das neu gepackte Image enthält.
* wenn ich diese Datei jetzt ein Verzeichnis hoch verschiebe und wieder entpacke mit "../../../../fwmod -u -d unpacked_firmware2 7570_-.en_20140316-061629.image" fehlt im neu angelegten Verzeichnis "unpacked_firmware2/original/filesystem/bin" die Datei utelnetd

Ich dachte, dass fwmod das Verzeichnis "modified" packt, aber vielleicht habe ich da auch irgendwo einen Denkfehler. Könnt ihr mich aufklären, was ich falsch mache.

Grüße
dancedoc
 
Zuletzt bearbeitet:
Warum nimmst du nicht einfach im Menuconfig den pkt. 7570 und dann alias Alice AID-7570
 
Ich möchte ja eine Alice/o2-Firmware erstellen und keine Freetz-/Fritz-Firmware für Alien-Hardware. Wenn ich über menuconfig eine Firmware baue, sind ja die ganzen Alice/o2-Funktionen verschwunden. Deshalb erfüllt das leider für mich nicht den Zweck.
 
Bist du da sicher ? Ist bei ewetel und hansenet doch auch nicht so.
 
Eigentlich bin ich mir sicher, es sei denn wir reden komplett aneinander vorbei. Bei der 7570 ist es ja kein Branding, sondern eine komplett eigene Firmware.
Und wenn ich in Menuconfig
Hardware type: 7570
Compile image for 'alien' hardware
Alien hardware type (Alice IAD 7570)

auswähle kommt eine Freetz/Fritz-Firmware raus und keine Alice/o2-Firmware. Oder meintest du etwas anderes?
 
Nee, das meinte ich schon.
Du willst also weiterhin die original Fw behalten ? Dann geht das so nicht. Hast recht.
 
Ja, es soll eine originale Firmware bleiben, nur halt zusätzlich mit utelnetd und der Capture-Möglichkeit.
 
@dancedoc: Ist genau richtig. Bei mir geht es auch:

Code:
joerg@joerg-Ubuntu:/run/shm/trunk$ ./fwmod -u -d nr1 FRITZ.Box_Fon_WLAN_7570_vDSL.en-de-fr.75.04.92.image 
STEP 1: UNPACK
unpacking firmware image
Skipping 0 Bytes garbage.../bin/tar: Ein einzelner Nullblock bei 24680
splitting kernel image
unpacking filesystem image
    3210 inodes (3563 blocks) to write
    created 2238 files
    created 160 directories
    created 629 symlinks
    created 343 devices
    created 0 fifos
unpacking var.tar
done.

detected firmware 7570-vDSL_en-de-fr 75.04.92 rev27423 (10.02.2014 17:36:56)

FINISHED
joerg@joerg-Ubuntu:/run/shm/trunk$ echo "Huhu" > nr1/original/filesystem/bin/meintest
joerg@joerg-Ubuntu:/run/shm/trunk$ ./fwmod -p -d nr1 FRITZ.Box_Fon_WLAN_7570_vDSL.en-de-fr.75.04.92.image 
detected firmware 7570-vDSL_en-de-fr 75.04.92 rev27423 (10.02.2014 17:36:56)

STEP 3: PACK
WARNING: Modifications (STEP 2) and this step should never
         ever be run with different configurations!
         This can result in invalid images!!!
WARNING: firmware does not seem to be modified by the script
  checking for left over Subversion directories
  integrate freetz info file into image
packing var.tar
creating filesystem image
  SquashFS block size: 1024 kB (1048576 bytes)
merging kernel image
  kernel image size: 10.2 MB, max 15.4 MB, free 5.1 MB (5393408 bytes)
  Aproximately maximal time for the answering machine: 41 min, 51 sec (2511 sec)
packing nr1/7570_-.en_20140316-220550.image
  image file size: 11.0 MB
done.

FINISHED
joerg@joerg-Ubuntu:/run/shm/trunk$ ./fwmod -u -d nr2 nr1/7570_-.en_20140316-220550.image 
STEP 1: UNPACK
unpacking firmware image
Skipping 0 Bytes garbage...splitting kernel image
unpacking filesystem image
    3323 inodes (3291 blocks) to write
    created 2240 files
    created 163 directories
    created 629 symlinks
    created 453 devices
    created 1 fifos
unpacking var.tar
done.

detected firmware 7570-vDSL_en-de-fr 75.04.92 rev27423 (10.02.2014 17:36:56)

FINISHED
joerg@joerg-Ubuntu:/run/shm/trunk$
joerg@joerg-Ubuntu:/run/shm/trunk$ ls -l nr2/original/filesystem/bin/meintest 
-rw-r--r-- 1 joerg joerg 5 Mär 16 22:05 nr2/original/filesystem/bin/meintest
joerg@joerg-Ubuntu:/run/shm/trunk$
joerg@joerg-Ubuntu:/run/shm/trunk$ cat nr2/original/filesystem/bin/meintest 
Huhu
joerg@joerg-Ubuntu:/run/shm/trunk$

Hast du evtl. das Verzeichnis vorher nicht gelöscht?
 
Also ich habe jetzt noch mal getestet. Wenn ich das ganze direkt im Freetz-Hauptverzeichnis mache, dann funktioniert es problemlos und alle geänderten Dateien sind auch so im erstellten Image.
Wenn ich aber das ganze in einem Unterverzeichnis mache und fwmod über "../../../../fwmod" aufrufe, funktioniert es nicht.
Ich habe dabei genau die gleichen Befehle ausgeführt, nur natürlich mit dem veränderten Pfad für fwmod. Scheinbar hat fwmod also Probleme damit, wenn sich die Dateien in Unterverzeichnissen befinden oder es aus einem Unterverzeichnis heraus aufgerufen wird.

Naja, ich habe jetzt mein Image, welches ich dann morgen mal flashen werde.

Vielen Dank für die Hilfe!
 
Wenn das wirklich nicht geht, dann sollten wir fwmod nur im gleichen Verzeichnis zulassen?
 
War bei mir auch so. Liegt an den Pfaden, die fwmod nutzt, da wird beim Packen immer ein Verzeichnis "im Freetz" gesucht.
Das Squashfs wird so gepackt:
Code:
$TOOLS_DIR/$MKSQUASHFS_TOOL $FILESYSTEM_MOD_DIR/* [B]$ABS_BASE_DIR[/B]/$CORE_FILESYSTEM_MOD $MKSQUASHFS_OPTIONS -b $FREETZ_SQUASHFS_BLOCKSIZE >> $MOD_DIR/filesystem.log 2>&1
ABS_BASE_DIR ist vom Pfad des "fwmod" abhängig.
Code:
# Freetz base + tools directories
BASE_DIR="$(dirname "$0")"
ABS_BASE_DIR="$(readlink -f "$BASE_DIR")"
TOOLS_DIR="${ABS_BASE_DIR}/tools"

Warum da nicht $DIR genommen wird, wie beim Entpacken, ist mir auf die Schnelle nicht klar geworden...
 
Ich denke auch, dass es sinnvoll wäre fwmod entweder so anzupassen, dass es auch aus Unterverzeichnissen aufgerufen werden kann oder eine entsprechende Fehlermeldung auszugeben (eine Fehlermeldung hätte mir auch einiges an Zeit gespart).
 
@Ralf: Meinst du das aus #11 (beim Packen wird mit "$ABS_BASE_DIR" immer der Ordner im Pfad unterhalb des "fwmod"-Verzeichnisses genutzt)???
 
Ich hab es nicht weiter probiert, und bin jetzt zwei Tage unterwegs ...
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,866
Beiträge
2,303,224
Mitglieder
378,522
Neuestes Mitglied
Christian_B70