Ieri ho fatto un sogno. Ho sognato che
mi arrivava a casa, per posta, dopo 3 settimane, un pacco dalla
Spagna. Nel pacco c'era una Fonera e una Fontenna, acquistata a circa 12€ lordi. Sotto la Fonera c'era scritto Model
2200 ed il suo Serial Number (S/N).
Dopo averla accesa e dopo averla
registrata, ho notato che il pannello di configurazione della Fonera
era davvero minimale e limitato, e dato che questo dipendeva dal
firmware, ho deciso di cambiarlo: esce il firmware Fonera, entra il
firmware dd-wrt, un po come nel calcio :)
Fortunatamente la Fonera 2200 è gia' predisposta per effettuare l'aggiornamento del firmware, a differenza della vecchia Fonera 2100 che invece necessita di una particolare procedura per attivare il RedBoot.
Da linux si puo' usare il programma
ap51-flash-fonera-1.0-24, mentre con windows c'è
ap51-flash-fonera-gui-1.0-24.exe, ma prima bisogna installare la libreria WinPcap_4_0_1.exe
Avevo scaricato i file root.fs e
vmlinux.bin.l7 dal sito ufficiale di dd-wrt.
Il tool di base per chi volesse
approfondire è "Freifunk Ap51 EasyFlash".
La mia periferica ethernet aveva ip
192.168.1.1, subnet mask 255.255.255.0, gateway 192.168.1.254 ed
aveva tutti i protocolli disabilitati fatto eccezione per TCP/IP.
Avevo i permessi di root o di
Administrator sul computer quando ho lanciato ap51-flash-fonera.
Nel programma avevo inserito il file
root.fs in Rootfs e il file vmlinux.bin.l7 in Kernel. Avevo spuntato
l'opzione per "Creare la partizione nvram" ed avevo
selezionato la mia unica scheda ethernet.
Usando il cavo di rete ethernet che era
presente nel pacco, ho collegato la fonera spenta al mio computer ed
ho premuto il tasto "Go!".
Il programma ha iniziato a visualizzare
alcuni messaggi, ma quando ho letto "No packet"
ho dato corrente alla fonera, la quale ha iniziato a subire
passivamente la procedura di flashing.
Dopo circa 20 minuti il programma si è
chiuso automaticamente.
Ho scollegato la fonera dal mio
computer e le ho tolto anche la corrente.
Poi l'ho riaccesa. Dopo quasi 1 minuto
è apparsa la rete wi-fi non protetta chiamata dd-wrt. Mi son connesso con firefox al 192.168.1.1 dove
ho trovato il "dd-wrt control panel" ed ora tutto funziona come dovrebbe. Son proprio contento. DD-WRT e' un
ottimo firmware ed il servizio fon, da quando ha deciso di prendere i soldi anche dagli utenti linus, mi ha un po' deluso!
APPROFONDIMENTO
Il programma semplifica notevolmente il lavoro che dovrebbe fare un bravo geek a mano. Per i curiosi ecco cosa fa il programma:
telnet 192.168.1.254:9000
poi
fis init
load -r -v -b 0x80041000 root.fs
fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
load -r -v -b 0x80041000 vmlinux.bin.l7
fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
fis create -f 0xA83D0000 -l 0x00010000 -n nvram
ed ecco come dovrebbe reagire:
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
load -r -v -b 0x80041000 root.fs
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x802e3fff, assumed entry at 0x80041000
RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs
... Erase from 0xa8030000-0xa82f0000: ..................
... Program from 0x80041000-0x80301000 at 0xa8030000: ........................
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
RedBoot> load -r -v -b 0x80041000 vmlinux.bin.l7
Using default protocol (TFTP)
Raw file loaded 0x80041000-0x80120fff, assumed entry at 0x80041000
RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7
... Erase from 0xa82f0000-0xa83d0000: ..............
... Program from 0x80041000-0x80121000 at 0xa82f0000: ..............
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .
RedBoot> reset
Il modello 2200 sembra faccia overflow nella shell di putty, e quindi non è possibile avere un riscontro di quello che sta succedendo nella fonera. Inoltre il programma fa in automatico anche da server tftp in modo da trasferire automaticamente i file root.fs e il kernel vmlinux.bin.l7 nella fonera. Per windows si consiglia spesso di usare tftpd32 per fare il flashing a mano.
Personalmente credo che il programma ap51-flash-fonera si chiuda automaticamente al termine del flashing perche' crasha. Il motivo sarebbe che sia la fonera sia il computer cercano di usare l'ip 192.168.1.1 e quindi si crea un conflitto che fa terminare la sessione telnet del programma in modo inaspettatto, e quindi si chiude tutto. La mia è solo una supposizione. Per altre domande, non esitate a lasciare un commento... e buona giornata.
|