lunedì 8 marzo 2010





Installare OpenWrt su router Huawei D100

Da qualche giorno il continuo cambio di firmware di varie compagnie sul mio D100 non mi soddisfaceva più....così siamo passati a qualcosa di più interessante, ovvero OpenWrt.
Questo router, basato su chipset Broadcom BCM5354, era già basato su una versione modificata di Busybox (Linux quindi) ma con diverse limitazioni.
Avevo trovato una wiki dello scorso anno dove veniva descritta la procedura per caricare OpenWrt ma non ci avevo capito molto e soprattutto dovevo smontare il router e invalidare la garanzia.


Ok, vi dico subito che bisogna utilizzare un interfaccia seriale per dialogare col router e interrompere il boot del sistema per permetterci di caricare il nuovo firmware, quindi armatevi di pazienza smontate il router con cautela (sono solo 2 viti) e apritelo.
Io ho usato un interfaccia usb seriale ricavata dal cavo usb di un telefonino (mi sembra fosse un Sagem) dovrebbe essere equivalente a quelle ricavate dal cavo dei Nokia (DKU-5). Questi cavi non hanno bisogno di essere alimentati dalla piastra madre del router ma si alimentano direttamente dalla USB a cui sono collegati.
Per capire quali sono i cavi che ci interessano io ho proceduto cosi:
ho cercato il gnd (massa) con un tester, poi con il cavo inserito nella USB, i driver caricati ho aperto Hyperterminal e ho cortociruitato a 2 a 2 i vari cavi provando a vedere se avevo un ritorno sulla console digitando qualcosa, facendo così ho trovato txd(trasmissione) e rxd(ricezione); per capire quale dei 2 è il rxd basta toccarlo con un dito con Hyperterminal aperto, quello che genera strani caratteri è il rxd, ovvero quello che riceve.

Prima di collegare tutto controllate che l' interfaccia seriale funzioni correttamente: provate a cortocircuitare i contatti txd e rxd e digitando qualche carattere dovreste vedere l' output in consolle.


A questo punto bisogna collegare i contatti txd, rxd e gnd ai rispettivi txd,rxd e gnd della seriale (rispettate lo schema qui sotto):

Modem txd <--> rxd Seriale
Modem rxd <--> txd Seriale
Modem gnd <--> gnd Seriale

Ok, una volta collegato settiamo l' interfaccia seriale così (io ho usato Hyperterminal, ma va bene Putty o qualsiasi altro programma analogo):

Velocità :115200 Bdps
Data bits : 8
Parity: None
Stop bits: 1
Flow Control: None



Ok, a questo punto se avete fatto bene i collegamenti connettendo Hyperterminal e avviando i router dovreste vedere tutta la sequenza di boot tipo questa:

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: Èý 7ÔÂ 22 12:16:58 CST 2009 (bcm@old_server.com)
Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena
Initializing Devices.
Boot partition size = 262144(0x40000)
et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller
CFE reboot flag0 = 0x12345678, flag1 = 0x0,flag2 = 0xffffffff,reboot_number = 0x
3
CPU type 0x29029: 240MHz
Total memory: 32768 KBytes


Per poter caricare il nuovo firmware dovete spegnere il router, e tenendo premuto ctrl-c nella consolle della seriale e accenderlo e trovere il prompt della CFE:

CFE>


Questo è il file da inviare in formato TRX che ho utilizzato : openwrt-brcm-2.4-squashfs.trx


A questo punto possiamo caricare OpenWrt in formato TRX andandolo a prelevare tramite tftp (quindi dovete settare un server tftp funzionante ed avere indirizzi statici su router e server tftp), io ho usato tftp per Windows (programma microscopico...)
Ovviamente cambiate 192.168.1.33 con l' indirizzo della macchina dove avete avviato il server tftp.


CFE> flash -noheader 192.168.1.33:/openwrt-brcm-2.4-squashfs.trx flash1.trx

Programming…done. 3215360 bytes written *** command status = 0

Ok, ora riavviamo il router e godiamoci (si fa per dire) il nostro OpenWrt installato.

CFE> reboot


Appena installato tutto la LAN non funzionava impedendomi di comandare il router via ssh, tramite la porta seriale ho editato il file /etc/config/network in questo modo:

root@OpenWrt:~# cat /etc/config/network
#### VLAN configuration

config switch eth0

option vlan0 "0 5"

#option vlan1 "1 2 3 4 5*"


#### Loopback configuration

config interface loopback

option ifname "lo"

option proto static

option ipaddr 127.0.0.1

option netmask 255.0.0.0


#### LAN configuration

config interface lan

option type bridge

option ifname "eth0.0"

option proto static

option ipaddr 192.168.1.12

option netmask 255.255.255.0

option gateway 192.168.1.1

option dns 192.168.1.1


#### 3G/UMTS configuration

config interface wan

option ifname 'ppp0'

option proto '3g'

option device '/dev/usb/tts/0'

option apn 'internet'
root@OpenWrt:~#

Così sono riuscito a pingare le macchine che avevo intorno e pingare il router, quindi aprendo la pagina web sono riuscito ad accedere finalmente a OpenWrt in tutta la sua versatilità.

Ciao, alla prossima.

6 commenti:

  1. Ciao, visto che molto in gamba vorrei chiederti una cosa. Ho un huawei d100t marchiato t-mobile preso su ebay uk. Alcuni giorni fa ho eseguito un aggiornamento della dna finito con successo, il router si è riavviato ed ha funzionato benissimo sino a quando non lo spento. Ora quando premo il pulsantino per l'accensione sia accendono i led power e della porta ethernet appenna lascio il pulsantino si spengono e i led e ovviamente non funziona più niente.
    Sai come posso risolvere questo problema?

    RispondiElimina
  2. Ciao,
    non penso il tuo sia un problema software, così su due piedi direi un problema sul tasto di accensione, ma è solo un ipotesi.
    Hai provato ad accenderlo tenendo sempre premuto il tasto di accensione con qualcosa, tipo scotch e uno spessore? Guarda se così funziona.

    Riprova a caricare il firmware DNA da zero rifacendo la procedura.
    Ciao

    RispondiElimina
  3. Ciao

    innanzitutto ti faccio i complimenti per la preparazione tecnica.
    Ne approfitto per chiederti un aiuto.
    Il router è davvero ottimo, ma, secondo me, ha una grande pecca: la presenza del pulsante di accensione invece dell'interruttore. Pertanto, al mancare della corrente, il D100 si spegne e richiede l'intervento manuale. E' possibile ovviare al problema? Tenendo premuto il pulsante in fase di accensione purtroppo dopo 8/10 secondi si spegne.
    Comunque per aprire il router occorre svitare le due viti poste sulla striscia grigia e "Tirare" le due stremità bianche"?

    Grazie

    Massimo

    RispondiElimina
  4. ciao , ho un d100 che in fase di aggiornamento ... si è bloccato ... ora sembra non funzionare piu ... secondo te c'è un modo per inserire manualmente il software originale o open wrt ... nel mio d100 con firmware compromesso ??? ciao

    RispondiElimina
  5. @barrichiello
    grazie per i complimenti, anche se molto in ritardo.
    il problema dell' accensione da fastidio anche a me (figurati che io tengo questo router i soffitta e ogni volta che si spegne devo andare su a riaccenderlo) e sicuramente qualche modifica si potrebbe fare ma al momento non so se sarei in grado e non la vedo come una priorità.

    @elioscoupe
    innanzi tutto prova a resettare il router tenendo premuto il tastoil tasto reset
    http://3g-modem.wetpaint.com/page/Huawei+D100,+D100T

    altrimenti se il router da qualche segno di vita, tipo led che si accendono o altro, potresti provare con l' iterfaccia seriale ad interrompere il boot e arrivare al prompt del CFE> .
    Se arrivi li OpenWrt penso sia caricabile, ma bisogna provare.

    ciao

    RispondiElimina
  6. Ciao!
    Veramente TANTI TANTI complimenti.
    So che hai scritto un anno fa, ma provo ugualmente a chiederti una informazione: ad oggi, se volessi tentare di installare openwrt, devo usare il file da te linkato o posso scaricare la versione aggiornata da http://backfire.openwrt.org/10.03/brcm-2.4/ ?
    Grazie di aver scritto, e grazie due volte se vorrai rispondermi :-)

    RispondiElimina