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.