Ok, um das näher zu erklären:
Die Option "Push firmware to box via FTP" bewirkt, dass die vom Script erzeugte Firmware per FTP hochgeladen wird.
Unabhängig davon wird mit der Option "Build recover firmware" das Script veranlasst, das Recover-Programm für Windows zu erstellen.
Es geht also beides gleichzeitig. Die Firmware und das zum Hochladen erforderliche kernel.image werden generell erzeugt. Dieses kernel.image versucht das Script hochzuladen, wenn "Push firmware" angewählt ist. Bei einer Abwahl dieser Option wird ebenso alles erzeugt, nur eben nicht automatisch hochgeladen.
Das Erzeugen des Recovers ist dann eine zusätzliche Option. Das kernel.image aus dem Ordner Firmware.new wird dann in ein originales AVM-Recover eingebaut, aus dem die ursprüngliche FritzBox-Firmware entfernt wurde. Dieses Recover hat einen eigenen FTP-Client an Bord, welcher dann das neue kernel.image auf die Box lädt (und dabei auch mtd3 & mtd4 löscht). Das Ursprungsprinzip (Hochladen per FTP) ist also gleich, nur das verwendete Programm (Ubuntu-eigenes FTP oder das FTP des Recovers) ist ein anderes. Dabei wird dann das kernel.image verwendet.
Ein "normales" Firmware-Image ist eine gepackte Datei (ähnlich .zip oder .rar). Neben der eigentlichen Firmware sind dort weitere Dateien enthalten, die ein Update im laufenden Betrieb ermöglichen. Das kenel.image selbst ist dort in einem Unterordner /var/tmp.
Das bedeutet folgendes: Die Firmware wird zunächst in das RAM des Routers geladen und dort überprüft. Ist die Überprüfung ok, wird mtd1 (der Speicherbereich der Firmware) gelöscht und mit der Firmware aus dem RAM überschrieben. Diese Methode wurde im Script ebenfalls verwendet, die Datei fw_C_speedport....image konnte auch bei einem "jungfräulichen" Speedport mit TKOM-Originalfirmware als normales Firmware-Update über die Weboberfläche eingespielt werden.
Diese Methode funktioniert jedoch nicht mehr: die aktuelle modifizierte Firmware der Fritzbox 7170, welche hier verwendet wird, ist so gross geworden, dass im RAM nicht mehr genügend Platz vorhanden ist. Die Firmware kann also daher nur unvollständig geladen werden und die Überprüfung schlägt natürlich fehl. Es wird in dem Fall nichts geflasht, nach dem Neustart ist nach wie vor die alte Firmware vorhanden.
Es bleibt daher nur der FTP-Upload. Hier wird, wie schon gesagt, nur das kernel.image übertragen. Alles andere würde stören, es ist daher grundsätzlich falsch, ein komplettes Firmware-Image nach kernel.image umzubenennen und per FTP hochzuladen. Jedoch, mit welcher Methode der FTP-Upload letztendlich durchgeführt wird, bleibt dem Nutzer überlassen, es kann jedes FTP-Programm dazu benutzt werden, welches den "passiven" Übertragungsmodus beherrscht. Das einzige FTP-Programm, was diesen Modus nicht kann, ist meines Wissens das Windows-eigene FTP, ansonsten sind auch Programme wie z.B. der FTP-Client des
Total Commander o.ä. möglich. Hier müssen die Kommandos dann per Hand eingegeben werden, unnötig, wenn das Script oder das Recover dieses erledigt.
Noch was zur ersten Frage: Das Script lädt die benötigten Firmware-Dateien selbständig aus dem Internet. Das ist dann zum einen die originale TKOM-Firmware des W701v und die ausgewählte bzw. voreingestellte Firmware der Fritzbox 7170. Sind diese dann im Script-Ordner vorhanden, ist kein Internetzugang mehr erforderlich.
Das Script kann also auch wieder neu gestartet werden, die vorhandenen Dateien werden nicht noch einmal neu heruntergeladen.
Da stellt sich dann vermutlich die Frage, warum auch die Original-Firmware geladen wird. Der Grund: aus der Original-Firmware werden Hardware-Treiberdateien benötigt. Die Fritzbox 7170 unterscheidet sich von der Bauweise z.B. dadurch, dass sie einen anderen DSL-Chipsatz hat. Für diesen ist der Treiber in der AVM-Firmware natürlich vorhanden, das Speedport kann aber mit diesem Treiber nichts anfangen. Also muss der falsche Treiber der AVM-Firmware raus und durch einen funktionsfähigen aus der Speedport-Firmware ersetzt werden. Dieser Austausch wird vom Script vorgenommen und ist einer der Gründe, weshalb dazu Linux (Ubuntu) erforderlich ist. Unter Windows sind beispielsweise Ordnernamen wie "Desktop" und "desktop" der gleiche Ordner, unter Linux sind das zwei verschiedene. Weiterhin ist unter Windows der Verweis auf den Speicherort einer Datei (ein sogenannter
symbolischer Link) recht schwierig, unter Windows XP gab es diese Möglichkeit noch gar nicht. Und letztendlich ist das Betriebssystem des Routers Linux, weshalb also hier Umwege machen?
mfg