===== 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: [[http://www.anime80.com/repository/index.php?option=com_remository&Itemid=53&func=select&id=47|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: [[http://www.anime80.com/repository/index.php?option=com_remository&Itemid=53&func=fileinfo&id=107|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:** {{:1.jpg|}} **B) Circuito pronto acquistabile su ebay a pochi soldi:** {{:2.jpg|}} **C) Se volete, lo potete costruire come predisposto su questo disegno:** {{:3.jpg|}} **E otterrete un lavoro di questo tipo:** {{:4.jpg|}} {{:5.jpg|}} ===== 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 [[http://www.fritzbox-forum.com/fritzbox-f1/raccolta-info-per-jtag-t411.htm?highlight=jtag|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 [[http://www.ip-phone-forum.de/showthread.php?t=111863|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 **[[http://www.anime80.com/repository/index.php?option=com_remository&Itemid=53&func=fileinfo&id=107|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 [[http://www.fritzbox-forum.com/fritzbox-f1/raccolta-info-per-jtag-t411.htm?highlight=jtag|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 [[http://www.anime80.com/repository/index.php?option=com_remository&Itemid=53&func=fileinfo&id=107|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 [[https://dev.openwrt.org/ticket/4514|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 [[http://www.anime80.com/repository/index.php?option=com_remository&Itemid=53&func=fileinfo&id=107|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:29// --- //[[megabri]] 2010/01/04 14:56//