Questo tutorial è stato scritto perchè mi sono trovato con un router brikkato (aggiornamento firmware andato male) con moltissimi documenti a riguardo ma a volte pochi chiari e sopratutto non in italiano.
Ma andiamo per ordine.
Un router è un apparecchio nato per instradare la rete internet (WAN) ad una sottorete isolata di più utenti.
In realtà al suo interno troviamo un processore, una memoria ram ed una Flash (il nostro futuro HD), una o più porte seriali e qualche volta una porta USB.
In poche parole un minicomputer silezioso (assenza di ventole) dal consumo bassissimo.
E' necessario solo cambiare il sistema operativo (il firmware) con uno in grado di sfruttare al massimo le dotazioni hardware.
Nasce il progetto OpenWRT, un firmware opensource aggiornatissimo per router basato su linux.
Non tutti i router sono compatibili con OpenWRT (verificate sul sito ) e cambiare il firmware, oltre ad essere un operazione rischiosa, fa decadere la garanzia.
Quindi se seguirete questo howto lo fate a vostro rischio e pericolo.
Se non sarete soddisfatti di OpenWRT potrete sempre tornare indietro al firmware originale.
Per il mio scopo ho utilizzato un Netgear WGT634U, un router wireless dotato di porta USB2.0.
Le specifiche tecniche del NetGear WGT634U sono le seguenti:
-
Processore basato sulla famiglia Broadcom 5365P a 200 MHz con un coprocessore in grado di criptare reti VPN con una crittografia fino a AES256 (altissima) in tempo reale.
-
8 MB di memoria flash (il nostro HD)
-
32 MB di RAM
-
2 Porte seriali
-
1 Porta USB2.0 (possiamo attaccarci qualunque dispositivo USB)
Per installare il nuovo firmware vi sono due metodi:
-
Utilizzare la modalità di aggiornamento software prevista per il router, ma non sempre possibile
-
Aggiornare il firmware tramite comandi su porta seriale del router (è interna al router).
Avendo il router brikkato, (nessun firmware) sono stato costretto ad utilizzare il secondo metodo.
Per inviare i comandi sulla porta seriale del router, si deve costruire una piccola interfaccia per convertire i segnali da RS232 a TTL 3.3V (un integrato, un diodo e 5 condensatori).
Ho comprato una basetta millefori, i componenti (in tutto 12 euro) e mano al saldatore mi sono fatto la mia interfaccia.

Aprire il router (4 viti) e collegate la seriale al router ed ad un PC come indicato nella foto. (la seriale la trovate in posizioni diverse secondo il router)
Lanciamo Hyperterminal (programma quasi dimenticato, ma presente in windows) settando la nostra porta (ad es COM1) 115200 b/s, 8 bit di dati, parità nessuna, 1 bit di stop e controllo flusso hardware.
Accendiamo il router tenendo premuto i tasti Control-C (serve per interrompere il processo di boot del router ed avere il prompt dei comandi).
Se il convertitore funziona, avremo un messaggio di benvenuto del router ed un prompt CFE> in attesa di comandi. ( in caso negativo ricontrollate le saldature)
Andate sul sito OpenWRT nel menu DOWNLOAD e selezionate prima la cartella Kamikaze (l'ultimo progetto stabile) e poi la famiglia del processore a cui appartiene il router (nel mio caso BCM47xx/53xx) e scaricate il firmware (estensione bin).
Rinominate il file con un nome più semplice da ricordare: ad es firmware.bin
Procuratevi un cavo di rete crossato (serve per collegare due computer) e scaricate un qualsiasi TFTP server gratutito. (ad es. SolarWind oppure TFTP).
Configurate la rete del vostro computer in modo di avere come indirizzo IP 192.168.1.5 e NETMASK 255.255.255.0.
Configurate il vostro server TFTP scegliendo come directory radice (detta anche root) la directory contenente il firmware appena scaricato.
Collegate il cavo di rete dritto (lo riconoscete perchè confrontando i plugs trasparenti i pins 1 hanno fili di colore uguale) con il router sulla porta WAN (quella dove si collega la linea internet).
Ritorniamo alla nostra schermata hyperterminal.
Dobbiamo far riconoscere la scheda di rete al router configuirandola manualmente.
Vi ricordo che linux (come tutti i sistemi *nix) sono case sensitive (le minuscole e le maiuscole hanno significati differenti) e quindi scrivete i comandi così come sono scritti.
Per chi ha dimistichezza con linux riconoscerà sicuramente i comandi:
ifconfig eth0 -addr=192.168.1.4 -mask=255.255.255.0
Se tutto andrà bene il router risponderà:
*** command status = 0
Qualunque altra risposta che non sia "0" significa che avete scritto male la riga di comandi.
Ricontrollate quello che avete digitato.
Verifichiamo la comunicazione Router - PC, digitando il seguente comando:
ping 192.168.1.5
Se non riuscite a stabilire una connessione, (100% lose) può dipendere da quattro motivi:
-
Non avete assegnato l'indirizzo IP 192.168.1.5 al PC
-
Il cavo non è crossato.
-
Il cavo è inserito alla porta LAN errata.
-
Avete un Firewall abilitato (disabilitatelo).
Stabilita la corretta comunicazione tra PC e router, non rimane che aggiornare il firmware con il comando:
flash -noheader 192.168.1.5:firmware.bin flash0.os
Questo comando dice di aggiornare il firmware dal nome firmware.bin (rinominato precedentemente) prelevando dal nostro server SFTP (il PC con indirizzo 192.168.1.5).
Non preoccupatevi perchè l'operazione durerà qualche minuto (aspettatevi anche una decina di minuti) lasciandovi in attesa con un scritta:
...Programming
In caso negativo verificate se avete digitato il comando correttamente, se il server SFTP è avviato oppure se il nome del firmware corrisponde con quello che avete rinominato.
Al termine dell'operazione il router risponderà:
Programming...done. 1892352 bytes written
*** command status = 0
La dimensione dei dati scritta potrà differire secondo il firmware scelto.
Riavviamo il router con il comando reboot.
L'interfaccia seriale non è più necessaria. Stacchiamo tutto e chiudiamo il router.
Prima nota positiva l'avvio più veloce.
Il wireless è disabilitato di default.
Non è possibile configurare l'interfaccia web di configurazione (lo faremo successivamente).
Per accedere al nostro router dovremo stabilire una sessione telnet, digitando sulla riga di comando del PC:
telnet 192.168.1.1
Dopo il messaggio di benvenuto, cambiamo la password con il comando:
passwd
inserite la nuova password
Ridigitate la nuova password per verifica. (scrivetela da qualche parte, magari sotto il router)
Avendo digitato una password, per stabilire una connessione con il router, dovremo aprire una sessione telnet protetta.
Per gli utenti windows si dovrà usare Putty (SSH client freeware) digitando root come login (o user) e come password, quella appena modificata.
Per gli utenti linux utilizzate il comando da root
ssh 192.168.1.1
Aggiorniamo il sistema.
Prima scarichiamo la lista dei pacchetti e poi l'aggiorniamo con i comandi:
ipkg update
ipkg upgrade
Installiamo l'interfaccia web per la configurazione del router X-WRT .
http://downloads.x-wrt.org/xwrt/kamikaze/7.09/
In questo indirizzo troveremo varie cartelle ciascuna inerente al processore utilizzato dal router.
Nel mio caso l'indirizzo è:
http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm47xx-2.6/packages/
aggiungiamo questo indirizzo (l'indirizzo varia secondo il processore) nella lista dei pacchetti:
echo "packages http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm47xx-2.6/packages/" >> /etc/ipkg.conf
Ricarichiamo di nuovo la lista dei pacchetti
ipkg update
Installiamo X-WRT (nel mio caso webif_0.3-8_mipsel.ipk )
ipkg install webif_0.3-8_mipsel.ipk
installiamo il pacchetto della lingua
ipkg install webif-lang-it_0.3-8_all.ipk
Volevo farvi notare la particolarità della scelta dei nomi dei pacchetti:
webif_0.3-8_mipsel.ipk
versione 0.3.8 di webif (X-WRT) per processori mips
webif-lang-it_0.3-8_all.ipk:
La lingua (lang) italiana (it) di webif (x-wrt) v.0.3.8 per qualunque processore (all).
in entrambi i casi l'estensione ipk denota l'uso del programma ipgk per l'installazione.
Se volete conoscere come usare il comando ipkg digitate
ipkg
Riavviamo il sistema con reboot.
Al riavvio digitate con il vostro browser preferito l'indirizzo del router (192.168.1.1).
Alla finestra che si aprirà digitate root nel campo login e la vostra password nel campo password.
La scheramata che otterete è un frontend grafico della configurazione del vostro minicomputer.

Comunque sappiate che tutti i settaggi sono contenuti nella directory /etc (ad es. il file /etc/config/wireless riguarda la configurazione del wireless compresa la modalità di crittografia e la password utilizzata).
Certo configurare manualmente con l'editor vi (famoso editor presente in ogni distribuzione *nix minimale) ha un suo fascino e si capisce molto di come funziona linux, ma non nascondo che farlo graficamente è veloce ed impossibile commettere errori.
Per abilitare il wireless andate nel menu grafico Network e sottomenu Wireless.
Per installare nuovi pacchetti andate nel menu Sistema e poi nel sottomenu Packages (i nomi possono variare secondo la lingua scelta).
Non abbiate paura ad esplorare i vari menu e sottomenu.
Ricordatevi che avendo un sistema linux avete a disposizione il miglior firewall disponibile (buttate tutti i software).
Quali potrebbero essere i possibili campi di utilizzo?
Il limite è solo la fantasia.
Certo non potete renderizzare grafica, ma potremo installare un piccolo server web, un server mail, un server o client per emule - torrent, un NAS, un server NFS o SAMBA oppure un firewall.
Vi ricordo che con la porta USB è possibile installare periferiche come webcam per la sorveglianza, pendrive, schede sonore o schede TV per lo streaming, una scheda wireless USB e sfruttare il mini-PCI per una scheda video.
Se avete domande aprite un topic nel forum dove sarò felicissimo di rispondervi.