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 18:36]
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 Environment.**+===== 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 ​tipicome 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 lavoroaltrimenti 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** **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.
  
 Ulteriori informazioni in lingua Tedesca [[http://​www.ip-phone-forum.de/​showthread.php?​t=111863|Sito madre della procedura]] ​ 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//  --- //[[naf]] 2009/11/07 18:29//
 + --- //​[[megabri]] 2010/01/04 14:56//
jtag.1257615408.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