Indice

Mini guida su come recuperare i nostri bene amati Fritz!Box in caso di perdita di bootloader o Environment.

BOZZA

ATTENZIONE Tutto quello che farete è a vostro rischio e pericolo.

Requisiti Software

1a) Utenti Windows: Scaricate il materiale software per Windows nella sezione “Procedure di Recupero” del repository, dal link di seguito indicato: jtag-utility.zip.

OPPURE

1b) Utenti Linux: Scaricate il materiale software per Linux nella sezione “Procedure di Recupero” del repository, dal link di seguito indicato: wrt54g_Debrick_Utility_v49_Linux.zip.

Requisiti Hardware

2) Vi occorre un circuito adatto per questo tipo di operazione e ce ne sono di diversi tipi, come descritto qui sotto:

A) Circuito semplice con 4 resistenze da 100 ohm e 2 da 330 ohm:

B) Circuito pronto acquistabile su ebay a pochi soldi:

C) Se volete, lo potete costruire come predisposto su questo disegno:

E otterrete un lavoro di questo tipo:

Uso del software debrick sotto Windows

1) Scompattiamo il software jtag-utility.zip in una directory;

2) Registriamo la dll giveio.dll da inserire nel percorso C:\windows\system32\drivers\giveio.dll;

3) Impostiamo come stampante predefinita in Windows : Generic text only;

4) Colleghiamo la JTAG al Fritz!Box e alla parallela del pc (entrambi da spenti);

5) Apriamo il prompt DOS;

6) Facciamo una prova per vedere se il cavo funziona a dovere:

wrt.exe -probeonly

Alimentiamo il fritz e premere invio subito, dovremo vedere la versione della jtag, la cpu e la flash: in questo caso abbiamo fatto un buon lavoro, altrimenti bisogno usare il feadi-jtag che si trova sempre nella cartella jtag-utility per identificare il difetto del nostro collegamento, una volta accertato il buon funzionamento del cavo, non dobbiamo far altro che flashare il nostro fritz!box.

NOTA: Il fritz può andare in dead state, per mancanza di mtd4.bin o bootloader, tutto dipende da quello che abbiamo toccato per mandarlo in questa condizione e per sapere la mappatura delle partizioni per il modello di router in nostro possesso, andiamo su Questo thread. Una volta visitato quel thread, siamo pronti per caricare ciò che ha perso il nostro fritz… Ad esempio: Per mandare il bootloader o mtd4.bin, dobbiamo rinominarlo in custom.bin e posizionarlo nella nostra directory di lavoro.

Per flashare il bootolader di qualunque modello di fritz:

wrt.exe -flash:custom /skipdetect /instrlen:5 /window:90000000 /start:90000000 /length:10000

Invece per flashare un environmente, il discorso cambia… appunto per quello ho detto di consultare la mappatura delle partizioni, ma cmq prendiamo l'esempio per trasferire mtd4.bin ad un fritz 7170:

wrt.exe -flash:custom /skipdetect /instrlen:5 /window:90800000 /start:907C0000 /length:20000

Da notare bene start è il più importante.

Ulteriori informazioni in lingua Tedesca Sito madre della procedura

Uso del software debrick sotto Linux

NOTA: questa procedura è stata eseguita su un Fritz Box Fon ATA 1020, ma è facilmente replicabile anche per tutti gli altri modelli di fritz, basta stare attenti agli indirizzi di memoria che si impostano come parametri e alla tipologia di memoria flash a bordo del dispositivo da flashare.

1) Colleghiamo la JTAG al Fritz!Box e alla parallela del pc (entrambi da spenti);

2) Assicurarsi che nel bios il PC abbia la porta parallela abilitata ed impostata su modalità Standard (forse funziona anche in modalità ECP ed EPP ma non ho provato).

3) Avviare una qualunque distribuzione Linux (io ho usato Ubuntu 9.04)

4) Scompattiamo il software wrt54g_Debrick_Utility_v49_Linux.zip in una cartella;

5) Apriamo una shell e posizionamoci all'interno della cartella dove è stato scompattato il software;

6) Alimentiamo il fritz;

7) Facciamo una prova per verificare che tutti i collegamenti funzionano correttamente:

sudo ./wrt54g -probeonly

Dovremo vedere la versione della jtag, la cpu e la flash.

Se vi arriva questo messaggio di errore: Failed to lock /dev/parport0: No such device or address

eseguite questo comando (NOTA: l'effetto non è permanete, occorre ripeterlo all'avvio di ogni sessione):

sudo rmmod lp

e quindi ripetere il comando di probe. Con questo saremo sicuri che hardware e software stanno funzionando e possiamo andare avanti.

8) Controllare il modello della flash guardando il chip relativo sulla scheda del vostro fritz e selezionare quella supportata dal software. Per avere l'elenco completo delle flash supportate scrivere:

sudo ./wrt54g

Il parametro /fc:31 che è adatto alla flash del Fritz Box Fon ATA 1020 (flash da 4 Mbyte).

9) A scopo precauzionale eseguiamo il backup del bootloader (mtd2.bin):

sudo ./wrt54g -backup:custom /silent /window:90000000 /start:90000000 /length:10000 /fc:31

10) Prima di programmare occorre rinominare il file binario in CUSTOM.BIN (ricordo che Linux è case sensitive e questo nome di file è cablato dentro il software)

11) Programmazione della partizione del bootloader

sudo ./wrt54g -flash:custom /silent /window:90000000 /start:90000000 /length:10000 /fc:31

Per quanto riguarda le altre partizioni (mtd3, mtd4, ecc..), riferirsi agli indirizzamenti relativi al proprio dispositivo (la raccolta di address è disponibile a questo thread) e seguire i passi 9, 10 e 11 sostituendo correttamente gli indirizzi e la lenght.

Compilazione del software debrick sotto Linux

Nello zip wrt54g_Debrick_Utility_v49_Linux.zip sono presenti sia sorgenti che file eseguibile del programma. Se qualcuno ha la curiosità di volerselo compilare da solo, viene indicata di seguito una piccola guida for dummies.

P.S. Nel mio caso è stato necessario compilare i sorgenti, in quanto nella versione v4.8 di questo software (HairyDairyMaid_WRT54G_Debrick_Utility_v48) era presente un bug di buffer overflow relativo alla operazione di backup della flash (descritto a questo link) che è stato corretto nella v4.9.

Per questa guida è stata utilizzata la distribuzione Ubuntu 9.04, ma i passi da seguire sono abbastanza generali:

1) Assicurarsi che il sistema sia completamente aggiornato:

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

2) Istallare il compilatore GCC:

sudo apt-get install g++

3) Scompattare il software wrt54g_Debrick_Utility_v49_Linux.zip in una cartella;

4) Aprire una shell e posizionarsi all'interno della cartella dove è stato scompattato il software;

5) Lanciare la compilazione semplicemente con il comando:

make

Il makefile già presente provvederà a configurare la compilazione secondo le indicazioni dell'autore del programma. Il risultato sarà il file eseguibile wrt54g.

naf 2009/11/07 18:29megabri 2010/01/04 14:56