Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Both sides previous revision Revisione precedente Prossima revisione | Revisione precedente | ||
jtag [2009/11/07 18:26] naf |
jtag [2010/01/06 07:20] megabri |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | **Mini guida su come recuperare i nostri bene amati Fritz!Box in caso di perdita di bootloader o Env che non possono essere recuperate.** | + | ===== Mini guida su come recuperare i nostri bene amati Fritz!Box in caso di perdita di bootloader o Environment. ===== |
- | **ATTENZIONE*** | + | __**BOZZA**__ |
+ | |||
+ | **ATTENZIONE** | ||
Tutto quello che farete è a vostro rischio e pericolo. | Tutto quello che farete è a vostro rischio e pericolo. | ||
- | **Requisiti:** | + | ===== 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]]. | ||
- | 1)Scaricate il materiale software nella sezione download di questo sito sotto la voce jtag. | + | ===== Requisiti Hardware ===== |
- | 2)Vi occorre un circuito adatto per questo tipo di operazione e ci sono vari tipi come descritto qui sotto. | + | 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:** | **A) Circuito semplice con 4 resistenze da 100 ohm e 2 da 330 ohm:** | ||
Linea 27: | Linea 35: | ||
{{:5.jpg|}} | {{:5.jpg|}} | ||
- | 3) Scompattiamo il software jtag Utility in una directory; | ||
- | 4) Registriamo la dll giveio.dll da inserire nel percorso **C:\windows\system32\drivers\giveio.dll;** | + | ===== Uso del software debrick sotto Windows ===== |
- | 5) Impostiamo come stampante predefinita in Windows : Generic text only; | + | 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); | 4) Colleghiamo la JTAG al Fritz!Box e alla parallela del pc (entrambi da spenti); | ||
Linea 39: | Linea 50: | ||
6) Facciamo una prova per vedere se il cavo funziona a dovere: | 6) Facciamo una prova per vedere se il cavo funziona a dovere: | ||
- | **wrt.exe -probeonly** | + | ''wrt.exe -probeonly'' |
- | Alimentiamo il fritz e premere invio subito, dovremo vedere la versione della jtag, il cpu e la flash... allora 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 accettato il buon funzionamento del cavo, non dobbiamo far altro che flashare il nostro fritz!box. | + | 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:** | **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]]. | + | 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... | 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. | **Ad esempio:** Per mandare il bootloader o mtd4.bin, dobbiamo rinominarlo in **custom.bin** e posizionarlo nella nostra directory di lavoro. | ||
Linea 50: | Linea 61: | ||
Per flashare il bootolader di qualunque modello di fritz: | Per flashare il bootolader di qualunque modello di fritz: | ||
- | **wrt.exe -flash:custom /skipdetect /instrlen:5 /window:90000000 /start:90000000 /length:10000** | + | ''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: | 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** | + | ''wrt.exe -flash:custom /skipdetect /instrlen:5 /window:90800000 /start:907C0000 /length:20000'' |
- | + | ||
+ | |||
Da notare bene start è il più importante. | Da notare bene start è il più importante. | ||
- | --- //[[Naf]] 2009/11/07 17:30// | + | 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// |