Das irritiert mich jetzt mächtig. Ich habe extra noch einmal in das Handbuch der 7590 geschaut und da steht es genau so, wie es bei anderen FRITZ!Boxen auch der Fall ist (
https://assets.avm.de/files/docs/fritzbox/fritzbox-7590/fritzbox-7590_man_de_DE.pdf - Seite 30) ... die Info-LED signalisiert einen laufenden Flash-Vorgang.
Wenn der hier gar nicht gestartet wird, muß ja irgendetwas zuvor das verhindern ... denn das Einschalten der LED (bzw. das Starten des Blinkens) erfolgt ziemlich am Beginn der "E03-flash_update", sowie feststeht, daß es etwas zu flashen gibt. Bis dahin sind nur die "S0X-irgendwas"-Skripte durchgelaufen - der "udevd" sollte nicht gestartet werden (weil da noch einmal derselbe Test wie in der "E03-flash_update" erfolgt und wenn geflasht werden soll, wird der Daemon gar nicht erst angetreten.
Die ersten 10 Sekunden mit Power-LED dauerhaft an, sind erwartbar und die von mir beschriebene Zeit, in der der Kernel entpackt und gestartet wird - irgendwo findest Du bestimmt auch ein Protokoll der seriellen Schnittstelle einer 7590 (oder die "dmesg"-Ausgabe aus einer Support-Datei) und da kann man in etwa sehen, was da zu welchem Zeitpunkt geschieht. Das Entpacken des Kernels braucht keine zwei Sekunden und dann startet seine Initialisierung. Die Power-LED fängt dann erst wieder an zu blinken, wenn (ca. 9-10 Sekunden, nachdem der Kernel die serielle Schnittstelle initialisiert hat und die Ausgaben dort starten) das AVM-LKM "led_module.ko" geladen wurde.
Und jetzt müßte sich zeitnah das Flashen anschließen ... was hier bei Dir offenbar nicht der Fall ist. Aus irgendeinem Grund bleibt das Flashen entweder hängen (und zwar VOR dem "update_led_on") oder wird gar nicht erst in Betracht gezogen und nach ca. 2:10 min startet dann offensichtlich der 120-Sekunden-Watchdog, der in "S05-watchdog" scharf gemacht wird (ca. 10 Sekunden nach dem Start des Kernels), die Box neu und zwar ohne daß irgendwie das System in den Flash geschrieben wurde. Die 1:50 min würde ich als "Schätzung" interpretieren und als "zu kurz" ansehen (oder ich habe das falsch zusammengerechnet aus #27) ... nach so langer Zeit kann eigentlich nichts anderes als der Watchdog zum Neustart führen und der wird eben auf 120 Sekunden gesetzt.
Die Aufteilung des NAND-Flashs kriegt der Linux-Kernel normalerweise vom Bootloader im FDT übermittelt, da sollte das erste Megabyte für den Urlader reserviert sein (von 0x0 bis 0x100000), danach die 4 MB für den TFFS-Speicher kommen (von 0x100000 bis 0x500000) und dann Platz für zwei Kernel a 8 MB reserviert sein (0x500000-0xD00000 und 0xD00000-0x1500000). Der Rest (491 MB) wird dann später als UBI-Device formatiert.
Wenn "led_module.ko" geladen werden kann (daher ändert sich ja das Blinken), wurde der Kernel entpackt, das Filesystem gemountet und "/sbin/init" gestartet. Auch der Neustart nach 120 Sekunden spricht dafür, daß der Watchdog korrekt aufgehetzt wurde.
=====================================================================
Ich sehe noch zwei Tests, die man vor dem Bestücken der seriellen Schnittstelle oder dem Erstellen eines "Diagnose-Images" machen könnte und der erste davon wäre die (einmalige) Umschaltung der Partitionen über "linux_fs_start". Und hier meine ich tatsächlich "einmalig", weil es nichts bringt, da wild hin und her zu wechseln. Die Installation beim Start aus dem RAM erfolgt normalerweise in die gerade aktiven Partitionen ... die Suche danach ist auch der Teil, der unmittelbar nach dem "update_led_on" folgen sollte.
Wenn man mal annimmt (ist aber nur eine "schwache Idee"), daß dabei dann die passenden Partitionen in "/proc/mtd" nicht gefunden werden (obwohl die eben aus dem FDT kommen sollten, zumindest die "raw MTD partitions" 0 bis 4 - die 4 ist dann der "Rest", der als UBI-Device verwendet werden soll) und daher das Setup fürs Flashen sofort wieder abbricht, dann wäre das "Fehlen" der Info-LED vielleicht auch noch zu erklären, weil es einfach zu schnell geht und die nicht einmal zum ersten Blinken kommt. Wobei ich auch nicht genau sagen kann, warum das jetzt beim anderen Partition-Set anders sein sollte - das Setup der Namen kommt für die Kernel-Partitionen ja aus dem FDT (mithin aus dem Bootloader) und für die Dateisystem-Partitionen aus der "drivers/mtd/avm/avm_mtd.c".
Wobei letztere sogar Vorkehrungen trifft, das UBI-Device "mtd4" erst einmal gar nicht zu mounten, wenn das "recovered=2" in "firmware_info" steht (was das AVM-Recovery-Programm ja setzen sollte, daher wollte ich ja, daß Du erst mal mit dem weitermachst, bis da irgendein System wieder läuft) und die gesamte MTD-Partition daher beim "E03-flash_update" neu initialisiert werden soll. Der Vorschlag mit dem anderen Wert von "linux_fs_start" ist also eher "nach Gefühl" und mehr "der Vollständigkeit halber", damit da nichts ausgelassen wird. Viel versprechen würde ich mir davon nicht ... wenn es erwartungsgemäß nichts bringt, würde ich "linux_fs_start" fest auf "0" setzen oder sogar ganz löschen (UNSETENV). Die Behandlung eines fehlenden Wertes als "0" sollte überall korrekt sein.
=====================================================================
Danach könntest Du noch ein Image bauen (aus dem originalen von AVM), wo Du die Datei aus dem Anhang hinzufügst unter "/etc/init.d/E01-send_logs" (ohne ".txt" und mit Ausführrechten, am besten 755). Wie das geht mit dem Entpacken, Ändern und erneutem Packen, habe ich irgendwo anhand von "telnet" für die 7580 gezeigt.
Wenn die Firmware diese Datei startet (was auch bei einem Laden ins RAM noch vor dem Flashen wäre, deshalb heißt die "E0
1..."), wird geprüft, ob "ptest" im Urlader-Environment sowohl einen Wert für "ipaddr" als auch "toaddr" enthält (wobei nicht auch "toaddr" geprüft wird, wenn das fehlt, wird einfach "192.168.178.10" angenommen, weil das bei AVM auch die Adresse des TFTP-Servers ist und noch an anderen Stellen diese Adresse verwendet wird in der Firmware) und wenn die gefunden werden, erstellt das Skript aus den im TFFS gespeicherten Daten vom letzten Absturz (crash.log) oder von der letzten Kernel-Panik (panic.log) eine kleine Textdatei (die enthält dasselbe, wie die Support-Datei am Ende, wenn solche Absturz-Protokolle existieren), die es danach per TFTP versucht auf den Server mit der Adresse "toaddr" zu schieben.
Allerdings wird das nur für ca. 10 Sekunden versucht, denn parallel läuft ja noch der 120-Sekunden-Watchdog mit und da darf man nicht zu sehr trödeln.
Das Format für "ptest" ist etwas gewöhnungsbedürftig, aber das ist von AVM übernommen. Mit der folgenden FTP-Session:
Rich (BBCode):
vidar:/home/GitHub/YourFritz/eva_tools $ ./eva_discover INTERFACE=vlan1 FROM=192.168.178.2 TO=192.168.178.1 BLIP=1;nc 192.168.178.1 21
EVA_FOUND=1
EVA_IP=192.168.178.1
220 ADAM2 FTP Server ready
USER adam2
331 Password required for adam2
PASS adam2
230 User adam2 successfully logged in
SETENV ptest ipaddr=178.11,toaddr=178.10
200 SETENV command successful
QUIT
221 Thank you for using the FTP service on ADAM2
221 Goodbye.
(Hier ggf. mit Ctrl-D die Eingabe beenden, wenn es nicht von alleine weitergeht.)
vidar:/home/GitHub/YourFritz/eva_tools $ eva_to_memory 7580.img.with.sendlog
Found AVM bootloader: AVM EVA Version 1.3229 0x0 0x46409
Found hardware revision: 225
Memory size is 0x08000000 (128 MB)
Memory size limited to 128 MB
Image size is 0x1944800 (25 MB)
Setting temporary memory size to: 0x066bb800
Setting temporary kernel args to: mtdram1=0x866bb800,0x88000000
Image uploaded to device.
vidar:/home/GitHub/YourFritz/eva_tools $ cat /srv/tftpboot/192.168.178.11-new.log
##### BEGIN SECTION CRASHLOG /proc/avm/log_sd
==========
BEGIN SECTION '/proc/avm/log_sd/crash'
----------
/proc/avm/log_sd/crash no data
----------
END SECTION '/proc/avm/log_sd/crash'
BEGIN SECTION '/proc/avm/log_sd/crash2'
----------
/proc/avm/log_sd/crash2 no data
----------
END SECTION '/proc/avm/log_sd/crash2'
==========
##### END SECTION CRASHLOG
##### BEGIN SECTION PANICLOG /proc/avm/log_sd
==========
BEGIN SECTION '/proc/avm/log_sd/panic'
----------
/proc/avm/log_sd/panic no data
----------
END SECTION '/proc/avm/log_sd/panic'
BEGIN SECTION '/proc/avm/log_sd/panic2'
----------
/proc/avm/log_sd/panic2 no data
----------
END SECTION '/proc/avm/log_sd/panic2'
==========
##### END SECTION PANICLOG
vidar:/home/GitHub/YourFritz/eva_tools $
würde das Skript also in der Box die 192.168.178.11 setzen und die Daten per TFTP an die 192.168.178.10 übertragen (das dauert natürlich etwas, aber nach 60 Sekunden oder so, sollte auch dem TFTP-Server etwas angekommen sein) ... auf dem Ziel-Host muß natürlich auch ein TFTP-Server laufen, der Schreibzugriffe akzeptiert und auch das Anlegen neuer Dateien (das sollte man am besten vorher schon mal testen, ehe man das Skript verdächtigt, seine Arbeit nicht richtig zu machen).
Als Ausgabedateiname wird die IP-Adresse der Box mit dem Zusatz "-new.log" verwendet. Bei meiner Demo gab es halt keine Absturzdaten ... die lassen sich auch nur einmal auslesen und danach sind sie weg. Aber bei einem Boot-Loop sollte es ja kein Problem sein, den nächsten Absturz herbeizuführen.
Bei Dir ist das sicherlich so, daß die Datei gar nicht "fest" in der Firmware landen wird, weil vermutlich ja schon der Flash-Vorgang nicht klappt - aber auch wenn man die in seinem eigenen Image haben sollte, schadet sie nichts ... solange "ptest" nicht gesetzt wird, bleibt das Skript ohne Auswirkungen ("ptest" wird von der Firmware bei erfolgreichem Start in "S42-ptest" selbst wieder geleert).
Das ist zwar noch kein vollwertiges "Diagnose-Image" (man kann ja auch den ganzen TFFS-Inhalt per TFTP aus der Box auslesen und ansonsten gar nichts weiter in dem Image machen, was irgendetwas am aktuellen Zustand der persistenten Speicher verändert), aber zum Auslesen der Log-Files reicht es üblicherweise ... weil ein System eigentlich immer bis zu diesem Punkt kommt, selbst wenn später irgendwelche Hardware (DECT, WLAN, Xilinx-FPGA, etc.) defekt sein sollte und die Box deshalb ins Koma (aka Boot-Loop) fällt.
Hat man dieses Skript in einem AVM-Image mit einer "E03-flash_update" und startet das FRITZ!OS aus dem RAM, wird natürlich danach noch der Flash-Vorgang starten ... wenn man schon weiß, daß der ohnehin scheitern wird, kann man auch noch ein "reboot" an das "E01-send_logs" dranhängen, damit danach gleich Ruhe ist (noch effektiver ist ein
echo b > /proc/sysrq-trigger
und der Flash-Speicher geschont wird.
Irgendwie mußt Du halt ermitteln, was genau das Flashen des neuen OS verhindert ... wenn Du ohnehin die serielle Schnittstelle benutzen willst, kannst Du Dir das mit dem Auslesen der Logs natürlich sparen. Das ist nur für eine "zerstörungsfreie Analyse" wichtig, wenn man die Box nicht öffnen kann oder will.