Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Both sides previous revision Revisione precedente
Prossima revisione
Revisione precedente
jtag [2009/11/07 16:09]
naf
jtag [2013/10/31 20:55] (versione attuale)
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 ===== 
-1)Scaricate il materiale software nella sezione ​download ​di questo sito sotto la voce jtag. + 
-2)Vi occorre un circuito adatto per questo tipo di operazione e ci sono vari tipi come descritto qui sotto. +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]]. 
- A) Circuito semplice con 4 resistenze da 100 ohm e 2 da 330 ohm:  + 
 +//​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 ​tipicome 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:
  
-B) Circuito pronto acquistabile su ebay a pochi soldi: {{:​88d0_1.jpg|}}+''​sudo apt-get install g++''​
  
-CSe volete, lo potete costruire come predisposto su questo disegno:{{:​schema_-jtag-invetrenod-_tms_con_tck.jpg|}}+3Scompattare 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;
  
-E otterrete un lavoro di questo tipo:+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//
jtag.1257606556.txt.gz · Ultima modifica: 2013/10/31 20:51 (modifica esterna)
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0