Flashare le fonere con dd-wrt

by Asbesto, 20/7/09, aggiornamento: 01/09/2011

Ho deciso di scrivere questo howto perche' in rete le informazioni sono abbastanza confuse, tali da produrre lo sgorgo dal colon. Seguendo passo passo queste istruzioni non c'e' possibilita' di sbagliare.

Connettori seriali sulle fonere

Fonera 2100 (vecchio modello)

Fonera 2200 (Nuovo modello)

INTERFACCIA SERIALE PER FONERA 2000, 2100, 2200, 2201, LINKSYS, USROBOTICS ETC.

Costruire l'interfaccia seriale e' facile. Usare l'integrato MAX232 e' una MINCHIATA, perche' richiede 4 condensatori e componenti di vario tipo. Usare l'integrato MAX233 e' la scelta giusta. Io ho usato questo schema:

ATTENZIONE alle connessioni specie sul connettore DB9: l'1 al 4 ed al 6, mentre il 5 va alla massa (GND) dell'integrato, sui pin 6 e 9 !!!

Se invece avete solo i chip MAX232, avrete bisogno anche di componenti esterni, 4 condensatori almeno. C'e' un mare di roba in rete ed ora non mi va di entrare nei dettagli, cmq lo schema e' questo:

Una volta realizzata l'interfaccia (o comprata gia' fatta su ebay ;) ) possiamo cominciare!

UPPIAMO IL FIRMWARE VIA SERIALE DIRETTAMENTE CON MINICOM

Ovunque leggete che serve installare e configurare un server tftpd, impostare indirizzi ip, netmask, usare un cavo cross ethernet... QUESTA COSA E' MOLTO IDIOTA.

Redboot gestisce ymodem via seriale, QUINDI siccome abbiamo la seriale e' IDIOTA sbatterci per tirar su un server tftp, usiamo la SERIALE e YMODEM, NON CI SERVE ALTRO!!!

Basta usare un qualsiasi programma di comunicazione; per linux, c'e' Minicom che e' ottimo. Impostatelo a 9600, 8N1, e si parte! Minicom va settato a 9600,8N1, no hardware flow control altrimenti ctrl-c non funziona.

Indifferentemente che la fonera sia 2000, 2100, 2200, 2200+, basta:

baudrate -b 115200

Ora dovete configurate opportunamente minicom a 115200 altrimenti non vedrete piu' un cazzo! CTRL-A P e scegliete 115200. Un paio di enter e riotterrete il prompt di Redboot.

Ora cancelliamo la memoria della fonera, inizializzandola:

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: .

Ora, trasferiamo l'immagine di linux.bin CON YMODEM su di essa.

Il firmware dd-wrt che uso e' questo: linux.bin, e' il 24sp2 credo. funziona ed e' stabile.

load -m ymodem -r -v -b 0x80041000 linux.bin

Premete CTRL-A S su Minicom, selezionate il protocollo YMODEM e scegliete il file da mandare. ET VOILA'

A upload completato, creiamo tutta la struttura sulla fonera (ci mettera' una decina di minuti):

RedBoot> fis create linux

... Erase from 0xa8030000-0xa82f0000: ............................................
... Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

Ora diamo un minimo di configurazione:

RedBoot> fconfig

Rispondiamo alle domande, configuriamo gli indirizzi desiderati, RICORDANDOCI DI INSERIRE questo script di 2 righe DOVE VERRA' CHIESTO ALTRIMENTI LA FONERA NON PARTE:

fis load -l linux
exec

Salviamo la config uscendo, cosi':

reset

FINE!

VECCHIO HOWTO CON TFTPD, DEPRECATED

Installare tftpd, tftp: nelle dipendenze software c'e' pure openbsd-inetd.

apt-get install tftpd tftp

(Il client vi servira' per fare i test.)

Configurare /etc/inetd.conf cosi':

tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd /tftpboot

Creare la dir /tftpboot, modo 777, user nobody; metti li' dentro linux.bin, modo 777, owner nobody.

Risultato finale:

   root@gemini:~# ls -la /tftpboot/
   total 6604
   drwxrwxrwx  2 nobody root    4096 2009-07-19 18:57 .
   drwxr-xr-x 22 root   root    4096 2009-07-19 18:47 ..
   -rwxrwxrwx  1 nobody root 6754304 2009-07-19 18:57 linux.bin
   root@gemini:~# 

Ovviamente il server tftpd va lanciato, quindi:

/etc/init.d/openbsd-inetd start

Bella minchiata, eh? :) Usare ora tftp su localhost per provare se tutto funziona. Dovrebbe essere possibile poter prelevare linux.bin.

Seconda parte: collegamenti hardware

Collegare la fonera all'adattatore. questo dipende dall'adattatore! PARTE DA INSERIRE.

Terza parte: Riprogrammiamo la fonera

Enter the RedBoot console by pressing CTRL+C (entro 2 secondi)...

Configure the RedBoot bootloader IP and TFTP server settings using

ip_address -l [local ip address] -h [remote server address]

Cancelliamo la memoria della fonera, inizializzandola:

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: .

Ora, trasferiamo l'immagine di linux.bin su di essa:

RedBoot> load -r -v -b 0x80041000 linux.bin

Using default protocol (TFTP)
Raw file loaded 0x80041000-0x802e3fff, assumed entry at 0x80041000

E per finire, creiamo tutta la struttura sulla fonera (ci mettera' una decina di minuti):

RedBoot> fis create linux

... Erase from 0xa8030000-0xa82f0000: ............................................
... Program from 0x80041000-0x80301000 at 0xa8030000: ............................................
... Erase from 0xa83e0000-0xa83f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa83e0000: .

Ora diamo un minimo di configurazione:

RedBoot> fconfig

Rispondiamo alle domande, configuriamo gli indirizzi desiderati, poi inseriamo questo script di 2 righe:

fis load -l linux
exec

Salviamo la config uscendo, cosi':

reset

FINE!

http://www.dd-wrt.com/dd-wrtv3/dd-wrt/hardware.html


CategoryMuseo

Fonera (last edited 2017-09-14 12:26:25 by asbesto)