Menu di navigazione
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.