domenica 26 dicembre 2010

Open-WRT su Fonera 2200

In questi giorni, mi serviva proprio un piccolo gateway che mi permettesse di collegare un dispositivo dotato di sola scheda Ethernet al mio router wireless dall'altra parte della casa. Proprio mentre pensavo ad una possibile soluzione a questo problema, mi è venuta in mente la piccola scatolina bianca che giaceva dimenticata in mezzo alle altre cianfrusaglie da ormai almeno 2 anni: la Fonera!

Essendo passato parecchio tempo (credo che il limite imposto dal produttore sia due anni a partire dall'acquisto prima di poter legalmente toccare qualcosa alla configurazione interna), ho pensato: perché non provare a piallare il firmware attuale e a piazzarci qualche altro ambiente un po' più familiare e soprattutto configurabile e controllabile a piacere? Detto fatto.

La procedura è molto semplice. Premetto che la mia Fonera è una FON2200. Se avete un modello diverso probabilmente la procedura sarà un tantino differente.

Per prima cosa, avrete necessità di resettare per benino la vostra Fonera in modo tale da tornare alla configurazione di base. Per far ciò, dovrete combattere un pochino con il tastino rosso di reset che potete trovare sulla parte inferiore del dispositivo:
  1. accendete la Fonera, senza collegare alcun cavo ethernet;
  2. aspettate che la luce power e quella wlan si accendano entrambe;
  3. tenete pressato il tastino di reset con una penna per 30 secondi circa;
  4. mentre continuate a tenere premuto il reset, staccate il cavetto di alimentazione;
  5. aspettate 30 secondi mantenendo pressato il pulsantino di rest;
  6. collegate il cavetto di alimentazione nuovamente;
  7. mantenete il reset premuto per altri 30 secondi;
  8. ripetere questa procedure almeno 2 o 3 volte in modo da essere sicuri di avere riportato la Fonera alla configurazione originale cancellando qualunque upgrade del firmware o configurazione particolare.
Dopo aver effettuato il reset del dispositivo controlliamo che tutto sia andato a buon fine. Per farlo, accendiamo la Fonera e, una volta che le luci power e wlan si sono nuovamente accese, agganciamoci alla sua rete wireless (solitamente il nome è MyPlace) e, aprendo un normale browser, colleghiamoci all'indirizzo 192.168.10.1. Se tutto è andato bene, dovrebbe aprirsi il pannello di controllo Web della Fonera e nella prima pagina dovrebbe essere indicata la versione del firmaware: 0.7.1r2. Se non è questa, ripetete la procedura di reset ancora fin quando non ottenete l'indicazione di questa versione del firmware. Se non ci riuscite, probabilmente la vostra non è una Fonera FON2200. Controllate bene la versione sulla parte inferiore del dispositivo.

Ora passiamo alla parte più interessante.

Come firmware da flashare sulla mia Fonera ho scelto Open-WRT e in particolare X-WRT che è perfettamente equivalente ma offre anche una utile interfaccia Web dalla quale configurare la maggior parte delle funzionalità del dispositivo.

Ecco una lista di tutto ciò che vi serve (ovviamente do per scontato che siete sotto Linux):
  1. Il software ap51-flash, che vi permette di flashare il nuovo firmware: scaricate il codice dal repository svn e compilatelo con i comandi:
    svn co http://dev.open-mesh.com/downloads/svn/ap51-flash/trunk ap51-flash
    cd ap51-flash
    make
    
  2. L'immagine del kernel di X-WRT (io ho usato l'ultima versione, la Kamikaze 8.09.2) che potete scaricare da qui
  3. Il filesystem di root per X-WRT scaricabile da qui.
Bene, ora che abbiamo tutti gli strumenti che ci servono possiamo metterci al lavoro. Seguite la procedura seguente e tutto andrà a buon fine:
  1. buttate giù tutte le vostre interfacce di rete ethernet e wireless in modo che queste non influenzino la procedura (do per scontato che sappiate farlo);
  2. con il cavetto di alimentazione staccato, collegate il vostro pc alla Fonera tramite cavo ethernet;
  3. lanciate da shell il comando:
    ./ap51-flash eth0 openwrt-atheros-root.squashfs openwrt-atheros-vmlinux.lzma
    
  4. ap51-flash dovrebbe partire e poi interrompersi aspettando che la Fonera si avvii;
  5. accendiamo la Fonera collegando il cavetto di alimentazione;
  6. ap51-flash dovrebbe risvegliarsi e proseguire nelle sue operazioni;
  7. aspettiamo da 10 a 20 minuti, il tempo necessario affinchè sia il kernel che il filesystem di root vengano scritti nella memoria flash;
  8. una volta terminato, ap51-flash riavvierà la Fonera con Open-WRT installato e funzionante.
Piccola spiegazione per chi vuole sapere quello che sta succedendo: quando avviamo la Fonera il suo bootloader (Redboot) setta l'indirizzo dell'interfaccia ethernet a 192.168.1.1 e si mette in ascolto sulla porta 9000 per circa due secondi prima di avviare il sistema operativo presente nella memoria flash. Il software ap51-flash non fa altro che instaurare una connessione telnet con Redboot, fermare il processo di boot e utilizzare i comandi appropriati del bootloader per scrivere le nuove immagini sulla flash.

Una volta riavviata la Fonera, potremo iniziare a giocare un pochino con Open-WRT. Per farlo, settiamo l'indirizzo della nostra interfaccia ethernet a 192.168.1.2 con netmask 255.255.255.0 e colleghiamoci in telnet al dispositivo sulla porta standard con un semplice:
telnet 192.168.1.1
Se vogliamo possiamo anche aprire un normale browser e collegarci allo stesso indirizzo. Si aprirà l'interfaccia Web di X-WRT che, per prima cosa, ci chiederà di cambiare la password di root. Fate attenzione che, da quel momento in poi, il telnet verrà disabilitato ma potremo collegarci alla Fonera con un semplice ssh:
ssh root@192.168.1.1
con la password appena settata.

In un prossimo posto spiegherò come ho configurato la Fonera per adattarla alle mie necessità.