@uboot
Innanzitutto grazie per l'interessamento, purtroppo però quell'output che vediamo è del bootloader di emergenza.
Mi spiego:
sembra che questi della Netgear abbiano avuto la brillante idea di predisporre una seconda rom con un bootloader ADAM2 minimale che entra in gioco quando evidentemente si corrompe quello principale incluso nel firmware.
Ora, il fatto che il router entri in questa modalità fa pensare che sia saltata la MTD su cui risiede il firmware.
Qualche dettaglio:
la MTD è partizionata in questo modo:
Codice: Seleziona tutto
mtd0 0x900d0000,0x903e0000
mtd1 0x90020000,0x900d0000
mtd2 0x90000000,0x90020000
mtd3 0x903e0000,0x903f0000
mtd4 0x903f0000,0x90400000
Nell'ordine in cui vengono caricate all'avvio:
- in mtd2 c'è il bootloader ADAM2;
- mtd1+mtd0 contengono il kernel e il rootfs;
- in mtd3 vengono salvate le impostazioni del router;
- in mtd4 ci sono le impostazioni del bootloader - semplice variabili d'ambiente che settano gli indirizzi mac delle interfacce di rete, indirizzo ip del server ftp, versione del router, la porta seriale, le partizioni, etc.
Il firmware Netgear è composto da mtd2+mt1+mtd0.
Quindi, quando si flasha il firmware si lasciano inalterate mtd3 e mtd4.
Una delle ipotesi plausibili è(o meglio: era) che si sia incasinata la mtd4 - le impostazioni del bootloader - ma dalla seriale dovrei vederlo, un qualche errore deve saltare fuori.
E poi, se mi desse un prompt potrei rimediare tramite il comando 'setenv': potrei ricostruire l'intera MTD, avviare il server ftp e con un semplice put via client ftp ricaricare la mtd4(ho il dump completo dell'intera rom).
Ma non posso fare niente, perché il router è in modalità recovery.
A questo punto, per dimostrare che c'è un problema nella MTD faccio questo tentativo estremo:
flasho il firmware con un bootloader "nullo", ovvero mi creo una mtd2 vuota con
Ricreo il firmware netgear con
e flasho col file fw.bin:
Codice: Seleziona tutto
Erasing flash, this will take around ten seconds...
Upgrading: 4063232/4063232 bytes
Upload completed, will now verify:
Verifying: 4063232/4063232 bytes
Firmware updated/verified successfully!
Bene, a questo punto il router dovrebbe essere inutilizzabile perché ho rasato completamente il bootloader ADAM2.
E invece
Codice: Seleziona tutto
ADAM2 Revision 0.18.01
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!
ASMode.
Copying download from b0017000 to b4020000
è ancora vivo.
Morale delle favola:
bisogna dissaldare la MTD e metterne su una nuova, anche se i dubbi non sono tutti risolti.
Ad esempio: perché il caricamento del firmware, previa cancellazione della memoria flash, si conclude correttamente e senza errori?