Procedura di recupero via seriale

Alcune considerazioni iniziali, personalmente io ho avuto problemi di “perdita” della fonera durante degli aggiornamenti firmware ed ho, dopo aver tribulato non poco notato alcune cosette:

Consiglio quindi prima di fare un aggiornamento di firmware di utilizzare i seguenti accorgimenti:

Prima di dare per persa la fonera consiglio quindi di fare i seguenti tentativi

Se non riusciamo a cavare un ragno dal buco prima di procedere per via seriale, se non si ha ancora costruito il dispositivo, si può provare una rianimazione in questo modo.

Aprire putty andare in opzioni connection/telnet spuntare la modalità passive, tornare nella finestra di impostazioni di putty e predisponete una connessione telnet all'ip 192.168.1.254 con porta 9000 senza attivarla Accendere il baracchino, collegare il cavo di rete di rame al computer ed un paio di secondi dopo che il computer risulta connesso premere il comando di attivazione di putty. dovreste vedere una cosa simile:

== Executing boot script in 3.550 seconds - enter ^C to abort
RedBoot> No image 'vmlinux.bin.l7' found
RedBoot> Can't execute Linux - invalid entry address
RedBoot>

Se arriviamo a questo punto non abbiamo bisogno di costruirci apparati seriali, sfortunatamente io ero arrivato ad ottenere

== Executing boot script in 3.550 seconds - enter ^C to abort

E per quanto premessi Cntr + C non riuscivo ad arrivare a RedBoot>

Ho quindi proceduto alla costruzione del dispositivo per connessione via seriale alla fonera secondo il seguente progetto http://graymalking.altervista.org/documenti/fonero/schemi%20seriale%20fonero.zip

La costruzione è molto semplice per cui sconsiglio di comprare il dispositivo, molto utile è predisporre un interruttore sulla linea RX che si collega al fonero (vedremo dopo perché)

Predisponiamo il computer:

Accendere iperterminal, impostare

collegare il dispositivo con il cavo rx staccato dal fonero (utile l’interruttore), alimentare il circuito e accendere fonero, dopo 5 secondi attaccare il cavo rx. Si ottiene:

+PHY ID is 0022:5521
Ethernet eth0: MAC address 00:18:84:20:61:e0
IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
Default server: 0.0.0.0
RedBoot(tm) bootstrap and debug environment [ROMRAM]
Non-certified release, version v1.3.0 - built 16:57:58, Aug  7 2006
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Board: ap51
RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 10.000 seconds - enter ^C to abort

premere ctrl + c

eseguite il comando

RedBoot> fis init

Rispondere Y alla domanda

About to initialize [format] FLASH image system - continue (y/n)? y

otterrete qeusto output

Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

ora è possibile sconnettersi via lan (cavo rame), il ping con il fonero si ottiene a 192.168.1.254 impostare l'ip della scheda del computer a 192.168.1.166 collegarsi con putty via telnet porta 9000 indirizzo 192.168.1.254

esguite il comando via telnet

RedBoot> ip_address -l 192.168.1.254 -h 192.168.1.166

risponderà

IP: 192.168.1.254/255.255.255.0, Gateway: 0.0.0.0
efault server: 192.168.1.166

Copiare i files root.fs e vmlinux.bin.l7 relativi alla versione che si vuole installare in una cartella del computer.

Attivare il tftp server scaricabile da questo link

http://graymalking.altervista.org/documenti/fonero/tftpgui-install.rar

Installare il programma

Configurarlo in questo modo

In tftp root folder … inserire con browse il percorso che porta alla cartella del computer contenente i due files.

Premere apply e quindi start dalla finestra principale

lasciare attivo il programma

Procedere in questo modo.

Didigare con putty il comando

load -r -v -b 0x80041000 root.fs

appariranno molti trattini e la scritta

Raw file loaded 0x80041000-0x802c2fff, assumed entry at 0x80041000

(apparirà anche una barra rossa su ftpt segno che sta scaricando il file)

A me i trattini andavano a sovrascrivere la riga del comando successivo in questo modo

RedBoot> -------------------------------------------------------------------------------

Ho quindi cancellato tuti i trattini ed eseguito il comando

RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs

Dopo 4 minuti di silenzio assoluto risponderà

Erase from 0xa8030000-0xa82f0000: ............................................
Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
Erase from 0xa87e0000-0xa87f0000: .
Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

eseguite il comando

edBoot> load -r -v -b 0x80041000 vmlinux.bin.l7

risponderà coi soliti trattini più

Raw file loaded 0x80041000-0x80100fff, assumed entry at 0x80041000

a questo punto (dopo aver cancellato gli eventuali trattiti strabordanti) eseguite (possiamo anche spegnere il programma ftpt)

RedBoot> fis create -r 0x80041000 -e 0x80041000 -l 0x000E0000 vmlinux.bin.l7

ci impiega qualcosa di meno di 2 minuti e risponde

Erase from 0xa82f0000-0xa83d0000: ..............
Program from 0x80041000-0x80101000 at 0xa82f0000: ............
Erase from 0xa87e0000-0xa87f0000: .
Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

ora bisogna inviare

RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram

ci impiega pochi secondi e risponde

Erase from 0xa87e0000-0xa87f0000: .
Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

abbiamo finito ora basta inviare il comando reset e dovrebbe ripartire (molto lento).

I led non funzionano più come prima, quindi attendete che sia visibile la rete wifi prima di disperarvi

La rete si chiamerà dd-wrt e non sarà protetta.

Il dd-wrt risponderà all'ip 192.168.1.1 (cambiate quello della scheda di rete a 192.168.1.XXX altrimenti non lo raggiungete) lo user pass sono diventati root/admin.

Sconnettere il cavo di rame, e attivare la connessione con il wifi, fate la prova solo dopo che la rete sia comparsa tra quelle disponibili, iniziare con la ricerca automatica di ip, se non si attiva testare oltre al ip di dafault, l'ip che si aveva impostato prima dell'incasinamento.


torna alla pagina principale della sezione

torna alla pagina principale