Archivi tag: lpt 1

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