Sorry ... aber das ist dann auch nicht mehr das Problem des Powershell-Skripts. Der FTP-Dialog läuft einwandfrei durch, die Übertragung wird mit der
226 Transfer complete
-Message beendet, selbst wenn das
QUIT
vielleicht etwas zu früh kommen sollte (das ist ja nicht nur beim FTP ein Problem, wenn man sich umhört), weil die hier:
https://github.com/PeterPawn/YourFr...28ca837e8a7/eva_tools/EVA-FTP-Client.ps1#L407 angegebene Wartezeit von 5 Sekunden vielleicht etwas zu kurz ist, um ein Firmware-Image zu schreiben - eigentlich war diese Funktion ja eher für das Schreiben von (deutlich kleineren) TFFS-Images gedacht.
Das
QUIT
ist aber asynchron, bricht die laufende Datenübertragung nicht ab und wird - nach dem Ende der Übertragung - sogar noch korrekt abgearbeitet, wie uns die
221 Goodbye.
-Message (zusammen mit der "Verabschiedung" eine Zeile darüber) verrät. Damit ist das nicht wirklich ein Fehler, was da in Rot unter den anderen Ausgabezeilen steht - nur ein Hinweis, daß die Box länger als erwartet brauchte, die Bestätigung für die erfolgreiche Verarbeitung des
STOR
-Kommandos zu senden.
Wenn die Box danach also nicht mehr startet, liegt das - mit einiger Wahrscheinlichkeit - an Deinem Image ... und wenn Du anstelle des Recovery-Programms einfach denselben Aufruf des Powershell-Skripts, nur mit der originalen
kernel.image
aus einer/der AVM-Firmware, verwenden würdest (etwas anderes macht das Recovery-Programm ja auch nicht, wie Du in dessen Protokoll-Datei
ftp.log
leicht nachlesen kannst - wo die zu finden ist, habe ich bei der Beschreibung der korrekten Handhabung des AVM-Recovery-Programms erklärt), dann könntest Du auch den FTP-Dialog als Ursache Deiner nachfolgenden Probleme mit dem Start der Box ausschließen.
Wenn Du dabei noch die Zeit in der oben verlinkten Zeile bei Dir im Powershell-Skript anpaßt, sollte sogar der Fehler am Ende nicht auftreten ... was ein passender Wert wäre, hängt auch von der Schreibgeschwindigkeit Deiner Box beim Flashen ab (m.W. wird erst komplett übertragen und dann beginnt der Flash-Vorgang). Ich würde mal eine
1
vor die
5000
setzen - da wartest Du dann zwar u.U. etwas länger, aber 10 Sekunden mehr oder weniger sollten hier keine Rolle spielen.
Erst wenn das auch mit einer originalen Firmware nicht funktionieren sollte (natürlich nur mit der erwähnten Datei, nicht mit dem gesamten TAR-File) und auch das "Ziel" mit
mtd1
noch einmal überprüft wurde (auch das steht eben in der erwähnten
ftp.log
), bin ich bereit, hier nach irgendeinem Fehler zu suchen.
------------------- zusammengeführt -------------------
Ich habe mal eine Änderung eingecheckt, die allerdings komplett ungetestet ist (nicht mal auf korrekte Syntax, auch wenn der verwendete Editor da nichts einzuwenden hatte) und über einen gesonderten Branch mit dem Namen
ps_eva
ausgecheckt/geladen werden muß -> "raw URL" ist
https://github.com/PeterPawn/YourFritz/raw/ps_eva/eva_tools/EVA-FTP-Client.ps1 und bitte "Ziel speichern unter ..." verwenden, anstatt die Seite erst einmal anzuzeigen (wogegen auch NICHTS spricht, nur nicht aus dieser Anzeige dann speichern).
Dabei wird die Wartezeit auf die Quittung für das
STOR
-Kommando in Abhängigkeit von der Größe der verwendeten Datei gewählt ... alles unter 1 MB wartet nur 5 Sekunden, alles darüber 15 und sollte das immer noch nicht reichen, erhöhe ich diese Zeit noch einmal.
Es gab/gibt zwar auch noch einen Branch, in dem ich das Thema schon einmal in Angriff genommen hatte (
https://github.com/PeterPawn/YourFritz/compare/main...eva_tools_ps), aber irgendetwas funktionierte damals bei der Warteschleife nicht wie erwartet und das geriet dann wieder in Vergessenheit. Ehe ich mich da aber wieder eingearbeitet habe, ist dieser neue Branch mit der oben erläuterten Lösung erst mal eine, die man üblicherweise als "quick & dirty" bezeichnet, weil sie wirklich schnell (und irgendwo auch "dreckig") ist.
Diese Zeit ist zwar beim Schreiben ins RAM auch involviert, aber auch da gab/gibt es ja immer wieder mal Timeout-Probleme, seitdem die Firmware auch bei AVM deutlich gewachsen ist im Vergleich zu früheren Versionen - das sind also ggf. zwei Fliegen mit einer Klappe.
Ob das nun aber auch noch funktioniert, kann ich (zumindest beim Schreiben in Flash-Speicher, was ja noch einmal ein anderes Timing hat) auch nicht selbst testen ... dazu müßte ich erst mal wieder eine 7390 o.ä. "ausmotten" und irgendwie fehlt mir dazu der Antrieb.
Wer sich also traut (die Änderungen sind nun auch nicht soo gewaltig und solange mir keine Syntax-Fehler angezeigt wurden, vertraue ich da auch mir selbst einigermaßen), kann sich die Version aus dem o.a. Branch laden und damit (erneut) probieren.