Hallo,
ich möchte gern aus einer laufenden NAND-Box ein Firmwareimage zum Flashen (per EVA) erstellen. Bei NOR-Boxen war das ja simpel, einfach kernel.image aus mtd1 auslesen und bei Bedarf wieder dort einspielen, da ja dort neben dem eigentlichen kernel.image auch das Filesystem.image enthalten war.
Bei NAND-Boxen komm ich nicht recht weiter, ich habe schon Stunden mit der Suche im Forum und im Netz verbracht, jedoch außer "das geht ganz einfach" nichts konkretes gefunden. Vielleicht kann mir jemand etwas auf die Sprünge helfen.
Was habe ich bisher versucht?
Meine Versuchsbox, eine 7412, per Telnet ausgelesen. Kernel.image aus mtd0 (bzw. mtd2) mit Telnet über cat /dev/mtd0 ausgelesen, per FTP aus der Box geschleußt, per HEX-Editor die überflüssigen "Auffüllbits" abgeschnitten. Funktioniert, Kernel.image in gestripptes Originalimage eingepackt (per Freetz im No-Freetz-Modus) und gefasht. Klappt.
Filesystem aus mtd1 (bzw. mtd3) per Telnet ausgelesen (sowohl mtd1, als auch blockweise über mtdblock1) und wieder per FTP aus der Box geschleußt.
Nun scheitere ich aber. Ich habe den Dump mittels Hexeditor geöffnet und angesehen. IMHO sollte doch hier das Filesystem.image enthalten sein, oder nicht? Die erhaltene Datei beginnt mit
00 00 00 03 00 00 00 01 FF FF 62 69 6E 00 00 00 (IMHO Füllzeichen und dann BIN)
Ich habe daraufhin im Dump nach der Zeichenfolge 73 71 73 68 (sqsh) gesucht und alles vorher abgeschnitten. Auch die Füllzeichen am Ende der Datei habe ich entfernt.
So bekomme ich eine Datei, von der ich meinte, es könnte sich um das Filesystem.image handeln. Leider ist das eine Fehleinschätzung gewesen. Während sich das originale, aus der Firmwaredatei entpackte Filesystem.image natürlich entpacken läßt und das Filesystem freigibt, ist das bei meiner Datei nicht der Fall, sie enthält kein Archiv. Entpackungsversuch mit 7-Zip sagt z.B. "Es wurde versucht, den Dateizeiger vor den Anfang der Datei zu bewegen", also die Fehlermeldung, die bei zerstörten Archiven kommt.
Wo liegt mein Fehler? Was habe ich hier noch nicht verstanden? Vielleicht kann mir jemand auf die Sprünge helfen, vielleicht hab ich auch nur mit den falschen Begriffen gesucht?
ich möchte gern aus einer laufenden NAND-Box ein Firmwareimage zum Flashen (per EVA) erstellen. Bei NOR-Boxen war das ja simpel, einfach kernel.image aus mtd1 auslesen und bei Bedarf wieder dort einspielen, da ja dort neben dem eigentlichen kernel.image auch das Filesystem.image enthalten war.
Bei NAND-Boxen komm ich nicht recht weiter, ich habe schon Stunden mit der Suche im Forum und im Netz verbracht, jedoch außer "das geht ganz einfach" nichts konkretes gefunden. Vielleicht kann mir jemand etwas auf die Sprünge helfen.
Was habe ich bisher versucht?
Meine Versuchsbox, eine 7412, per Telnet ausgelesen. Kernel.image aus mtd0 (bzw. mtd2) mit Telnet über cat /dev/mtd0 ausgelesen, per FTP aus der Box geschleußt, per HEX-Editor die überflüssigen "Auffüllbits" abgeschnitten. Funktioniert, Kernel.image in gestripptes Originalimage eingepackt (per Freetz im No-Freetz-Modus) und gefasht. Klappt.
Filesystem aus mtd1 (bzw. mtd3) per Telnet ausgelesen (sowohl mtd1, als auch blockweise über mtdblock1) und wieder per FTP aus der Box geschleußt.
Nun scheitere ich aber. Ich habe den Dump mittels Hexeditor geöffnet und angesehen. IMHO sollte doch hier das Filesystem.image enthalten sein, oder nicht? Die erhaltene Datei beginnt mit
00 00 00 03 00 00 00 01 FF FF 62 69 6E 00 00 00 (IMHO Füllzeichen und dann BIN)
Ich habe daraufhin im Dump nach der Zeichenfolge 73 71 73 68 (sqsh) gesucht und alles vorher abgeschnitten. Auch die Füllzeichen am Ende der Datei habe ich entfernt.
So bekomme ich eine Datei, von der ich meinte, es könnte sich um das Filesystem.image handeln. Leider ist das eine Fehleinschätzung gewesen. Während sich das originale, aus der Firmwaredatei entpackte Filesystem.image natürlich entpacken läßt und das Filesystem freigibt, ist das bei meiner Datei nicht der Fall, sie enthält kein Archiv. Entpackungsversuch mit 7-Zip sagt z.B. "Es wurde versucht, den Dateizeiger vor den Anfang der Datei zu bewegen", also die Fehlermeldung, die bei zerstörten Archiven kommt.
Wo liegt mein Fehler? Was habe ich hier noch nicht verstanden? Vielleicht kann mir jemand auf die Sprünge helfen, vielleicht hab ich auch nur mit den falschen Begriffen gesucht?