Freetz flashen unter Linux

fungs

Neuer User
Mitglied seit
31 Aug 2006
Beiträge
11
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich habe ein Freetz-Image, dass ich gerne auf meine Fritzbox schieben würde, das noch mit Original-Firmware (ADAM2) läuft. Dazu gibt es ja das Script

tools/push_firmware

im Freetz-Paket.

Frage 1: Kann ich damit das Image auch über die serielle Konsole pushen? Die funktioniert bei mir wunderbar und ich müsste nicht extra mit IP-Adressen rummachen.
Frage 2: Ich würde gerne noch die Konfigurations-Dateien via "clear mtd3+4" löschen. Geht das auch über push_firmware oder wie kann ich das sonst machen?

Danke.
 
Ein Versuch meine Frage 2 zu beantworten: Aus den Scripten des Tools ruspu geht hervor, dass man einfach

ncftpput -d stdout -u adam2 -p adam2 -W "quote MEDIA FLSH" -Y "quit" -C XXX.XXX.XXX.XXX %ruSPUempty% mtd3
ncftpput -d stdout -u adam2 -p adam2 -W "quote MEDIA FLSH" -Y "quit" -C XXX.XXX.XXX.XXX %ruSPUempty% mtd4

machen kann, wobei statt %ruSPUempty% wohl für eine leere Dummy-Datei "empty.bin" angegeben werden muss (da mich ich mir aber nicht ganz sicher).
Zuvor muss aber das Programm ncftp installiert werden.

Richtig?
 
Da Du hier bei Freetz schreibst, wir haben noch nie empfohlen, mtd3 und mtd4 zu löschen. Wenn Du die Konfiguration löschen willst, mach einen Reset auf Werkseinstellungen.

Wenn Du schon eine serielle Konsole an die Box angeschlossen hast, wird es sicher nicht zu mühsam sein, auf dem Linux eine passende IP-Adresse zu konfigurieren.
 
Richtig, nach ein bisschen Recherche hatte ich den Eindruck, das das Löschen von Vorteil sei, weil die Box momentan mit einer "sehr anderen" Firmware läuft. Einige Leute haben von Reboot-Schleifen berichtet, die ich von vornherein verhindern will. Das rKT macht das wohl standardmäßig.

Für einen Werksreset drückt man 30 Sek. auf den Reset-Knopf? Also erst mit push_firmware flashen und danach resetten?

Das Flashen per serieller Konsole ist reine Bequemlichkeit, natürlich kann ich das auch übers Netzwerk machen... Hatte schon mit dem Gedanken gespielt, einfach ein cat image > /dev/mtdx zu machen, aber das lasse ich wohl besser, sonst verwechsle ich noch irgendwelche Speicherbereiche und überschreib mir den Bootloader oder so.
 
Es fehlen Essentielle Informationen. Welche FritzBox? Welche Freetz Version ?
Von dem was das ruKernelTool da macht ist dringenst abzuraten, diese Speicherbereiche zu überschreiben löscht gewisse informationen unwiderruflich die nicht widerherrstellbar sind, der Werksresett und sogar das Recovery Tool von AVM achten darauf diese Bereiche zu schützen. Und warum so extrem ? Die Standard DSL Boxen die original von AVM sind, kann man gewöhnlich über das Webinterface Flashen (man muss ein Passwort im Webinterface setzen um eine nicht signierte Firmware flashen zu können). Nachdem du die Firmware geflasht hast kannst du immer noch einen Werksresett im Webinterface durchführen und soweit ich weiß, konvertiert AVM Einstellungsdateien die nicht mit der Version passen oder löst Automatisch einen Werksresett aus wenn die Einstellungen fehlerhaft sind.
Noch eine berichtigung:
Original-Firmware (ADAM2)
Bei ADAM2 handelt es sich um den Bootloader, in neueren Versionen heißt er EVA. Die Firmware nennt man einfach Firmware, allerding hat AVM bei den neueren Boxen (7270, 7390...) die Firmware in Fritz!OS umgetauft.
 
Zuletzt bearbeitet:
Es handelt sich um eine IAD7570, baugleich zur FB7570. Diese Box ist, wie ihr sicherlich wisst, arg beschnitten, sogar der Bootloader hat ein paar Kommandos weniger. Das Löschen der Konfig-Bereiche wurde von allen "zufriedenen" Wechslern durchgeführt. Auch wenn ihr von Freetz das nicht empfehlt, wäre es doch schön, wenn es via push_firmware oder ein eigenes Script aus der Tools-Sammlung möglich wäre (von mir aus mit fetter Warnung). In push_firmware gibt es ja auch eine Sonderbehandlung für die Speicheraufteilung der IAD7570.

Es handelt sich um die neueste stabile Freetz-Version 1.1.5

Auszug "cat /proc/sys/urlader/environment":

HWRevision 153
ProductID Fritz_Box_7570_HN
annex B
bootloaderVersion 1.541
firmware_version hansenet
firmware_info 81.04.96
mtd0 0x90000000,0x90000000
mtd1 0x907E0000,0x90F80000
mtd2 0x90000000,0x90040000
mtd3 0x90F80000,0x90FC0000
mtd4 0x90FC0000,0x91000000
mtd5 0x90040000,0x907E0000
prompt Eva_AVM
 
Was genau wolltest du denn? Über die serielle Schnittstelle ein Übertragen der FW "anstoßen" (die Übertragung der FW dann über die Netzwerkschnittstelle) oder die gesammte FW über die "Serielle"? Das letztere geht nicht (mal abgesehen davon, dass bei voller Ausnutzung der 38400 Baud eine 8MB Datei 30 Minuten übertragungszeit benötigt, wenn ich richtig gerechnet habe).
Die möglichen Befehle im ADAM findest du hier, so dass die Antwort auf Frage 2 wäre
"erase mtd3".

Auch da gilt (wie imer bei solchen "Operationen am offenen Herzen" der Box) aber dein Hinweis, dass Fehler für die Box fatal sein können...
 
Danke für die Infos. Das mit der Geschwindigkeit hatte ich natürlich nicht bedacht :)

Was ist denn genau der Unterschied zwischen der Erase-Methode aus #7 und der Put-Methode aus #2? Aus o.g. Gründen würde ich erst mal den Werksreset probieren und danach, falls es Instabilitäten oder Rebootschleifen gibt, zum Löschen von mtd3+4 greifen. Hat schon mal jemand Methode #7 probiert? Ansonsten würde ich eher zu #2 greifen, da dies aus einer funktionierenden Implementierung hervorgeht und wahrscheinlich vom ruKernelTool, dem Nachfolger, ähnlich implementiert ist.
 
Wie Du selbst schreibst ist das IAD7570 nur bedingt eine Fritzbox, und baugleich ist allenfalls die Hardware.

Der Unterschied zwischen erase an der Konsole und senden einer leeren Datei per FTP ist dass man für das eine die serielle Konsole braucht und für das andere nur einen FTP Zugriff.

Die AVM Boxen haben im Web-Interface einen Punkt um auf Werkseinstellungen zurückzusetzen. Dabei wird die komplette Konfiguration gelöscht.
Um das von der Konsole im laufenden Betrieb zu machen, kann man folgende Kommandos verwenden (aus /var/install einer Firmware):
Code:
    id=$((0x64))
    while [ $id -le 255 ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
    id=$((0x4000))
    while [ $id -le $((0x4040)) ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
    id=$((0x4400))
    while [ $id -le $((0x4440)) ] ; do
        echo "clear_id $id" >/proc/tffs
        id=$(($id + 1))
    done
Vermutlich reicht es auch, nur die Dateien in /var/flash durchzugehen:
Code:
for id in $(ls -l /var/flash|awk '{print $6}'); do
        echo "clear_id $id" >/proc/tffs
done
Die wichtigste Datei ist ar7.cfg, die hat bei mir die Nummer 113.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.