Archivi tag: tjtag

Debrick via JTAG su fonera 2100/2200

Questo tipo di debrick è proprio un dito nell’ano…
E’ durato parecchio e sulla mia fonera, purtroppo, non ha funzionato.
Quando la seriale non risponde è l’unica soluzione che risolve al 98% dei casi il brick della nostra amatissima fonera.
Se riuscite a debrickarla in questo modo, non vi resta che aggiustare le ultime cose via seriale in quanto con questo metodo vi illustro come rimettere il solo RedBoot. Ok?

Di cosa abbiamo bisogno?
1. Porta parallela LPT (quella vecchia della stampante):

lg_lw60_case_lpt

2. Abbiamo bisogno di un programma chiamato tjtag scaricabile dopo una piccola donazione dal sito:  tjtag.com
Se volete fare solo delle *prove* io l’ho trovato versioni ancora free di questo programma: Lista tjtag [merlino60]
La più recente in versione free è la: tjtag-3.0.2-RC2
Con questo software, andremo a debrickare non solo la fonera, ma moltissimi altri router: ricordatevelo.

Realizzate un cavo (non troppo lungo) con 4 resistenze da 100Ohm chiamato wiggler cable: Costruzione Cavo DLC5 (Wiggler) unbuffered

Ora dovremo collegare la nostra fonera al cavo jtag in questo modo:

Jtag-schematic

Nota: notare la resistenza da 100Ohm tra vcc e il pin di test

Pinout fonera:

4-FONERA_2200A_JTAG_v2.6
3-FONERA_2200A_BOARD_JTAG

Nota: il pinout della fonera 2100 è identico a quello della 2200 in quanto entrambe usano il pinout standard jtag 2.6

Dovreste ottenere una cosa del genere, a me non è venuta molto bene:

dscn0392u

Ora lanciamo il servizio che ci permetterà di usare la porta lpt:

1. Unzippate questo pack: giveio.zip
2. Start > Esegui > cmd
3. Entrate nella directory del pack
4. loaddrv
5. date il path della dll giveio.sys
6. Install, start
Dovreste avere una cosa del genere:

giveio_status

Date alimentazione alla fonera.

Ora andate nel folder di tjtag sempre dal prompt dei comandi.
E date un bel -probeonly
Dovrebbe apparirvi una cosa del genere:

Probeoonly

Se si blocca in resuming cpu… premete CTRL + C
Se vi appaiono tutti 11111111111…1 CPU ID, significa che tjtag non ha riconosciuto la cpu e quasi sicuramente è un problema di wiring
Se il probe non dovesse andar a buon fine inserite anche questi switch /noemw /noreset

Se è andato tutto ok non ci resta che:

1. Cancellare tutta la flash
2. Ricaricare RedBot
3. Caricare la tabella di configurazione come partizione nascosta

Punto 1: flash erasing
tjtag3 -erase:custom /window:a8000000 /start:a8000000 /length:30000
oppure (sconsigliato)
tjtag3 -erase:wholeflash

Il primo comando cancella solo la partizione di RedBoot, infatti il lenght è proprio 30000 (il lenght tipico di RedBoot)
Il secondo (sconsigliato) è più invasivo in quanto cancella tutta la flash.

Punto 2: flashing RedBoot
Scaricate dal sito di dd-wrt la versione GIUSTA per la vostra fonera di RedBoot, rinominatela in custom.bin e inseritela nella directory di tjtag.
Date questo comando:
tjtag3 -flash:custom /window:a8000000 /start:a8000000 /length:30000

Flashiamo dall’indrizzo a8000000 per un leght di 30000 il file custom.bin
L’operazione è molto lunga, quindi aspettate con pazienza.

Punto 3: modifica e upload della tabella di configurazione
Scaricate ed installate un qualsiasi HEX Editor, ad esempio: XVI32
Io vi sconsiglio di effettuare questa operazione in quanto potreste rischiare di incorrere in problemi di calcolo del checksum.
Scaricate il file board_config_template.bin dal sito di Matteo Cicutin:  board_config_template.bin
Aprite il file board board_config_template.bin con XVI32 e andate alla riga 60:

capture
Ed inserite il MAC Address della vostra fonera (presente nell’etichetta incollata sul retro) al posto delle caselle:
00 11 22 33 44 55
Esempio:
00 11 22 33 44 55 diventa [esempio] -> 00 28 ae 87 fd f2
Questo rappresenta il MAC della scheda Ethernet della fonera.
Di seguito ci sarà un altro blocco, fate la stessa cosa ma incrementate l’ultima coppia di 1 rispetto al MAC dell’ethernet. Questo sarà il MAC della scheda wireless.
Esempio:
00 11 22 33 44 56 diventa [esempio] -> 00 28 ae 87 fd f3

capture

Ora, salvate il file e rinominatelo in custom.bin date a tjtag il comando per l’upload del file:
tjtag3 -flash:custom /window:a87f0000 /start:a87f0000 /length:10000

Benissimo, è finita!
Riavviate il tutto e caricate dalla seriale dd-wrt (seguite l’altra mia guida!).

Alcune note di chiusura:
Questo metodo non è molto documentato, il mio è stato un lavoro di ricerca e traduzione del sito ufficiale dd-wrt.com e del loro forum.

La fonte principale è:  http://www.matteocicuttin.it/

Nel caso in cui tjtag non dovesse funzionare nel modo giusto, aggiungete gli switch su ogni comando: /noemw /noreset

Se usate una versione maggiore-uguale della versione 3.0.2 di tjtag, aggiungete lo switch su ogni comando: /cable:dlc5

Nel caso in cui la cosa non dovesse andare a buon fine non vi resta che contattare mr. Tornado passandogli, però, un dump della flash aggiungedo il seguente switch al comando: tjtag3 -probeonly /flash_debug
Oppure (per versioni superiori alla 3.0.2): tjtag3 -probeonly /byte_mode /cable:dlc5

Debrick Fonera? Metodi per resuscitarla…

Molti sono i motivi per un debrick: può capitare di installare male una versione di dd-wrt, salta la corrente, un collegamento può uscire fuori, diamo comandi sbagliati etc etc
E senza troppi ringraziamenti ci ritroveremo tra le mani un bel ferma carte.

Oggi vi illustro sommariamente quali sono i metodi più diffusi per il debrick delle fonera.

1. via FonFlash
2. via seriale
3. via jtag
4. desoldering, flashing via spi & soldering

Più si va avanti e più la cosa si fa seria… io li ho provati tutti e 4 su una fonera 2200.
Non vi racconto come sono arrivato al punto 4, ma vi racconto (a grosse linee) di cosa si parla per ciascun punto.

Punto 1: Via FonFlash
Esistono alcuni software che riescono a debrickare la fonera via ethernet senza neanche smontarla.
Il più blasonato è fonflash: FonFlash
Questo permette di flashare la nostra fonera in modo molto semplice senza troppi casini.
In pratica, darà gli stessi comandi del punto 2 ma in maniera autonoma.

Punto 2: Via Seriale
Questo è quello più apprezzato.
Se non avete brickato RedBoot potete entrare nei prompt dei comandi del bootloader della fonera e fare ciò che vi pare in stile “MS-Dos”.
Cancellerete le aree di memoria, uploadderete nuove immagini dd-wrt via tftp e potrete configurare manualmente alcune impostazioni di booting (vedi: fconfig).
Non solo… con questo comando potrete aggiornare anche RedBoot.
Ma ve lo sconsiglio fortemente, perchè se aggiornate male RedBoot passerete direttamente al punto 3 🙂
Il wiki di riferimento è questo: http://www.dd-wrt.com/wiki/index.php/LaFonera_Software_Flashing

Punto 3: Via JTAG
Qui le cose si complicano ancora di più.
Esiste un software scritto in linea di comando da un certo Tornato del forum dd-wrt.com.
Questo software si chiama tjtag e lo potete scaricare donando almeno 5$ al creatore: tjtag.com
In sintesi, tramite cavo dlc5/wiggler, vi interfaccerete sul pettinte jtag presente sulla vostra fonera (non più la seriale!).
E, se sarete fortunati, potete: arare tutta la memoria e flashare RedBoot (e non dd-wrt).
In questo modo potete andare al punto 2 e aggiustare la situazione.
Ma, tjtag con me ha fatto cilecca: non mi ha riconsciuto la memoria flash dove risiede il bootloader e dd-wrt, più precisamente la memoria era una: MX25L6405

Punto 4: Desoldering, flashing, soldering.
Questo è il metodo definitivo, dissalderete la memoria e la riprogrammerete con un programmatore SPI esterno.
Per ora l’ho solo dissaldata (e male) e sto attendendo dalla Cina una memoria nuova, il programmatore e l’adattatore.

Di ognuno di questi punti, scriverò (nel tempo) un articolo di approfondimento.

A presto