OpenWrt WRT54GL: differenze tra le versioni

Da PNLUG.
 
(57 versioni intermedie di 2 utenti non mostrate)
Riga 1: Riga 1:
 
{{TOC|align=right}}
 
{{TOC|align=right}}
 
<div align="justify">
 
<div align="justify">
[[Immagine:Wrt54gl.jpg|left|400px]] <br><br><br><br> <br><br><br> <br><br><br> <br><br><br> <br><br>
+
<br><br><br><br>
 +
[[Immagine:Wrt54gl.jpg|left|400px]] <br><br><br><br> <br><br><br> <br><br><br><br><br><br><br><br><br><br>
  
 
== Come liberare il router WRT54GL dal firmware proprietario ==
 
== Come liberare il router WRT54GL dal firmware proprietario ==
Riga 8: Riga 9:
 
OpenWrt è Linux based e include un kernel Linux come i BusyBox. Ha all'interno un gestore di pacchetti chiamato opkg (simile al pacchetto apt di ubuntu).
 
OpenWrt è Linux based e include un kernel Linux come i BusyBox. Ha all'interno un gestore di pacchetti chiamato opkg (simile al pacchetto apt di ubuntu).
  
Prima di installare OpenWrt nel router, è necessario sapere se il device è compatibile con OpenWrt, per saperlo con certezza è necessario vedere se è compreso nella [http://wiki.openwrt.org/toh/start Tabella degli hardware] di OpenWrt.
+
Prima di installare OpenWrt nel router, è necessario sapere se il device è compatibile con OpenWrt, per averne la certezza è necessario vedere se il modello è compreso nella [http://wiki.openwrt.org/toh/start Tabella degli hardware] di OpenWrt.
 +
<br>
  
== Specifiche Hardware ==
+
== Progetti collegati ==
 +
Successivamente all'installazione e alla prima configurazione di OpenWrt su questo apparato, desideriamo proporre i seguenti progetti dedicati:<br>
 +
* [http://wiki.openwrt.org/doc/howto/wireless.hotspot.wifidog WiFiDog] -  Un semplice ma preciso hotspot captive portal wifi realizzato con software open source per OpenWrt;<br>
 +
* [http://openwisp.org/whatis.html OpenWisp] - Un ampio progetto  di captive portal (manager, geografico, ecc. scritto su scratch con Ruby on Rails.<br>
 +
* [http://luca.postregna.name/2012/04/27/mesh-network-con-openwrt-backfire-10-03-1-e-batman-adv-su-fonera2-0g/ Mesh Network con Openwrt Backfire] come configurare il router con openwrt backfire 10.03.1 per una mesh network con l'utilizzo di batman-adv.<br>
 +
* [http://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config-sophisticated OpenMesh batman-adv] Esempio di parti della configurazione B.A.T.M.A.N. su OpenWRT.
 +
<br>
  
Prima di esplorare OpenWrt, Andiamo a conoscere quale sia l'hardware a disposizione nella nostra device:
+
== Progetti realizzati da noi ==
 +
*Questa pagina di installazione 
 +
*[http://wiki.pnlug.it/index.php?title=OpenWrt_WRT54GL_WiFiDog WiFiDog su AP Cisco WRT54GL] (WiFi portal, in fase di sperimentazione)
 +
<br>
 +
 
 +
== Specifiche Hardware ==
 +
Prima di esplorare il sistema OpenWrt, andiamo a conoscere qual'è l'hardware che abbiamo a disposizione nella nostra device:
 
*CPU: Broadcom BCM5352 @ 200 MHz
 
*CPU: Broadcom BCM5352 @ 200 MHz
 
*RAM: 16 MB
 
*RAM: 16 MB
 
*Memoria Flash:  4 MB
 
*Memoria Flash:  4 MB
  
CONTROLLO VELOCE - per essere sicuri che l'hardware contenuto sia esatto, possiamo controllarlo leggendo il prefisso del numero di serie, utilizzando [http://en.wikipedia.org/wiki/Linksys_WRT54G_series#WRT54GL queste informazioni].   
+
CONTROLLO VELOCE - per essere sicuri che l'hardware contenuto sia esatto, possiamo controllare le specifiche del modello leggendo il prefisso del numero di serie del device, utilizzando [http://en.wikipedia.org/wiki/Linksys_WRT54G_series#WRT54GL queste informazioni].   
  
Questo hardware viene supportato completamente da OpenWrt, ma ci sono alcuni limiti dovuti al tipo di memoria flash:<br>
+
Nel nostro caso l'hardware viene supportato completamente da OpenWrt, ma ci sono alcuni limitazioni dovute al tipo di memoria flash utilizzata. Vedi:<br>
 
* http://wiki.openwrt.org/toh/linksys/wrt54g#hardware <br>
 
* http://wiki.openwrt.org/toh/linksys/wrt54g#hardware <br>
 
*- https://forum.openwrt.org/viewtopic.php?id=28223 <br>
 
*- https://forum.openwrt.org/viewtopic.php?id=28223 <br>
 +
La soluzione per il nostro casco è ben documentata. Verrà utilizzato il firmware OpenWrt 10.03.1-rc6 (nome in codice "backfire").
 
<br>
 
<br>
La soluzione per questo caso, è ben documentata. Deve venir utilizzato il firmware OpenWrt 8.09 r14511 (nome in codice "kamikaze") al posto della versione upgradate di OpenWrt 10.03.1-rc6 (nome in codice "backfire")
 
  
 
== Scaricare la versione corretta del firmware ==
 
== Scaricare la versione corretta del firmware ==
 
+
Per installare OpenWrt nel router, la prima cosa da fare è andare a vedere le indicazioni presenti e dedicate al nostro modello Linksys, descritte nel sito di OpenWrt. Per questa marca di router troviamo molte versioni disponibili di OpenWrt, ma per trovare la versione corretta dobbiamo cercare il modello esatto: <br>
Per installare OpenWrt, prima cosa da fare è andare a vedere la parte web dedicata al modello Linksys. Torviamo molte versioni disponibili di OpenWrt, ma per trovare la versione corretta dobbiamo cercare: <br>
+
* La versione stabile di OpenWrt è la Kamilaze, anche se troviamo presente la versione Backfire con qualche bug e qualche instabilità negli adattamenti di attitude.<br>
* La versione OpenWrt è Kamilaze, con qualche bug in backfire e qualche instabilità nelle adattamenti di attitude<br>
+
* La versione che viene normalmente raccomandata è la 8.09 con Kamilaze, mentre la versione più aggiornata del firmware è la brcm-2.4<br>
* La versione raccomandata è la 8.09 con Kamilaze<br>
+
* Durante questo test installeremo la versione brcm-2.4 Backfire<br>
* La CPU è broadcom con il prefisso bcrm<br>
+
* La CPU è una Broadcom con il prefisso bcrm<br>
In questo [http://wiki.openwrt.org/toh/start#linksys link], vediamo il supporto sia per brcm-2.4 che per la brcm47xx<br>
+
In questo [http://wiki.openwrt.org/toh/start#linksys link], viene evidenziato il supporto sia per la versione brcm-2.4 che per la brcm47xx<br>
 
La differenza tra la versione brcm-2.4 e brcm47xx viene spiegata [http://wiki.openwrt.org/doc/faq/before.installation#what.is.the.difference.between.brcm-2.4.and.brcm47xx qui]<br>   
 
La differenza tra la versione brcm-2.4 e brcm47xx viene spiegata [http://wiki.openwrt.org/doc/faq/before.installation#what.is.the.difference.between.brcm-2.4.and.brcm47xx qui]<br>   
Per ognuna, possiamo scaricare il file immagine, che termina con l'estensione .bin<br>
+
Per ognuna di esse, è possibile scaricare il file immagine, che termina con l'estensione .bin<br>
Se sono disponibili sia i file JFFS2 che SquashFS, è preferibile utilizzare l'immagine SquashFS<br>
+
Se sono disponibili sia i file JFFS2 che SquashFS, è preferibile utilizzare l'immagine di tipo SquashFS<br>
Andiamo a vedere lo [http://wiki.openwrt.org/about/history storico della versione] per determinare se la versione 8.09 è la migliore e e quali siano le differenze nelle versioni kamikaze, backfire e le configurazioni attitude<br><br>
+
Andando a vedere lo [http://wiki.openwrt.org/about/history storico della versione] possiamo determinare se la versione 8.09 sia la migliore e e quali siano le differenze nelle versioni kamikaze, backfire e le configurazioni attitude.<br>
L'immagine utilizzata per il test è: [http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin]
+
L'immagine che verrà utilizzata per il nostro test è: [http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-wrt54g-squashfs.bin http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-wrt54g-squashfs.bin], corrispondente alla versione brcm-2.4 Backfire.
 
+
  
 
== Installazione ==
 
== Installazione ==
 +
=== Tramite l'interfaccia web del router Linksys ===
 +
È possibile installare OpenWrt direttamente dall'interfaccia web del router Linksys. Se state effettuando la prima installazione fatelo utilizzando questa interfaccia, è il modo più semplice e veloce.
 +
<br>
  
* Passo 1: Scaricare [http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin] to nella propria cartella di Downloads<br>
+
==== Procedura ====
* Passo 2: Alimentare il router e connettere il computer via ethernet (usare la porta 1, NON la poerta internet)<br>
+
* Scaricate il file immagine del firmware '''openwrt-wrt54g-squashfs.bin''' dalla cartella '''brcm-2.4''' del sito, nel vostro PC. Trovate il file immagine su: [http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/ http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/]<br>
* Passo 3: Avviare il browser e connettere http://192.168.1.1; fate il login<br>
+
* Entrate manualmente nelle pagine web del router http://192.168.1.1 ed effettuate il login (user '''root''' e password '''admin''').<br>
* Passo 4: Navigate su Amministrazione > Aggiornamento firmware, selezionate il file openwrt-wrt54g-squashfs.bin e aggiornate<br>
+
* Con il browser aprite l'indirizzo [http://192.168.1.1/Upgrade.asp http://192.168.1.1/Upgrade.asp], oppure entrate manualmente nella pagina http://192.168.1.1 → Administration → Firmware Upgrade<br>
 
+
* Fate l'upload del firmware, utilizzando il file '''openwrt-wrt54g-squashfs.bin''' nel router, prelevandolo dalla vostra cartella locale di download.<br>
TUTTO DOVREBBE ANDARE PER IL MEGLIO :)  Attendente pazientemente il termine della procedura di aggiornamento!
+
* Attendete 2 minuti. Il router si riavvierà automaticamente dopo aver completato l'aggiornamento.<br><br>
 
+
=== Connessione via intefaccia web ===
+
Direttamente dal browser, puntate su http://192.168.1.1, fate il login e verrà visualizzata l'interfaccia web luci
+
  
 
=== Connessione via Telnet ===
 
=== Connessione via Telnet ===
Il router aggiornato, può essere conattato via Telnet all'indirizzo 192.168.1.1. Per testare questa possibilità, aprite unterminale e digitate:<br>
+
Il router aggiornato, può essere conattato via Telnet all'indirizzo 192.168.1.1. Per testare questa possibilità, aprite un terminale e digitate:<br>
 
   $ telnet 192.168.1.1
 
   $ telnet 192.168.1.1
Questo vi farà conoscere KAMIKAZE :)
+
Questa modalità di connessione vi farà conoscere un modo diverso di accedere al vostro router. ''I Cisco Admin ne sanno qualcosa in merito!'' :)
 +
<br>
  
Ora assicuratevi che il servizio tftp sia disponibile per prevenire il bricking, digitate:
+
=== Connessione via browser ===
 +
L'accesso all'interfaccia web ''luci'' è disponibile all'indirizzo http://192.168.1.1 , con user '''root' e SENZA password iniziale.
 +
<br>
 +
 
 +
=== Servizi Telnet e SSH ===
 +
'''ATTENZIONE: Solo dopo l'avvenuto inserimento della password di login, il servizio Telnet verrà disabilitato e il servizio SSH verrà abilitato!!'''
 +
<br>
 +
 
 +
=== Servizio TFTP ===
 +
Ora assicuratevi che il servizio tftp sia disponibile. Digitate questi comandi in telnet/ssh. Questo vi assicura che il servizio tftp sia disponibile, nel caso in cui il vostro router si danneggi.<br>
 
   $ nvram set boot_wait=on
 
   $ nvram set boot_wait=on
   $ nvram set boot_time=10
+
   $ nvram set wait_time=10
 
   $ nvram commit && reboot
 
   $ nvram commit && reboot
  
=== Comunicazione via SSH ===
+
'''N.B.: in generale per i modelli WRT54G* la variabile per impostare il tempo d'attesa per l'avvio del router è boot_time. Sembra che per questo particolare modello (WRT54GL) la variabile corretta sia invece wait_time come indicato sopra ( [http://wiki.openwrt.org/toh/linksys/wrt54g#installing.openwrt link di riferimento])'''.
La connessione via web tra il router e il client  genererà automaticamente una chiave SSH al primo login.Il router inizialmente potrebbe metterci un po durante la generazione delle chiavi. Nel caso vi butti fuori, riprovate dopo un minuto o due. Al primo bootup OpenWrt ci metterà un po di tempo prima di rendersi disponibile alla connessione, in quanto deve configurare per la prima volta ed avviare i suoi file di sistema oltre a generare le chiavi SSH; il server SSH non si avvierà fino a quando la generazione delle chiavi non sarà terminata.
+
<br>
  
 +
=== Comunicazione via SSH ===
 +
La connessione via web tra il router e il client  genererà automaticamente una chiave SSH al primo login.<br>
 +
Il router inizialmente potrebbe metterci un po di tempo durante la generazione delle chiavi. Nel caso il router vi butti fuori dalla connessione del browser, riprovate a connettervi dopo aver atteso un minuto o due.<br>
 +
Al primo avvio OpenWrt ci metterà un po di tempo prima di rendere disponibile la connessione via web, in quanto deve configurare per la prima volta, ed avviare, i suoi file di sistema oltre a generare le chiavi SSH; il server SSH non si avvierà fino a quando la generazione delle chiavi non sarà terminata.
 +
<br>
  
 
== Configurazione ==  
 
== Configurazione ==  
 
 
La configurazione di rete è scritta in /etc/config/network. I valori iniziali di questo file per la nostra configurazione dovranno essere:<br>
 
La configurazione di rete è scritta in /etc/config/network. I valori iniziali di questo file per la nostra configurazione dovranno essere:<br>
  
Riga 99: Riga 126:
 
Dopo aver editato e salvato questo file, per applicare la nuova configurazione digitate:<br>  
 
Dopo aver editato e salvato questo file, per applicare la nuova configurazione digitate:<br>  
 
   $ /etc/init.d/network restart
 
   $ /etc/init.d/network restart
 +
<br>
  
 
=== Configurazione Switch ===
 
=== Configurazione Switch ===
Riga 112: Riga 140:
  
 
Come visualizzato nella grafica, in questo caso lo switch separa le porte LAN dalle WAN.
 
Come visualizzato nella grafica, in questo caso lo switch separa le porte LAN dalle WAN.
 +
<br>
  
=== Interfacce ===
+
== Interfacce ==
 
Gli altri parametri nel file di configurazione di rete descrivono le interfacce. Le interfacce sono reti logiche, alle quali possono essere configurati i vari indirizzi IP, le rotte e altre ''magie''.  
 
Gli altri parametri nel file di configurazione di rete descrivono le interfacce. Le interfacce sono reti logiche, alle quali possono essere configurati i vari indirizzi IP, le rotte e altre ''magie''.  
  
 
Le 3 interfacce vengono chiamate loopback, lan and wan. Le interfacce fisiche associate con queste interfacce logiche sono: lo, eth0.0 and eth0.1.
 
Le 3 interfacce vengono chiamate loopback, lan and wan. Le interfacce fisiche associate con queste interfacce logiche sono: lo, eth0.0 and eth0.1.
 +
<br>
 +
 +
== Ripristino del router e ricaricamento del firmware ==
 +
In alcuni casi, potrà capitare che l'aggiornamento del firmware non vada a buon fine, rendendo il router del tutto inutilizzabile.<br>
 +
Questo problema viene spesso descritto come '''bad upgrade''' o '''router bricked''', che significa '''aggiornamento non andato a buon fine''' o '''router danneggiato'''.<br><br> 
 +
Nessun problema. ''Questo modello di router ha 7 vite come i gatti'' e sarà possibile reinstallare nuovamente il firmware, attraverso l'uso delle seguenti informazioni.<br>
 +
Come spesso accade se il router non riesce a caricare correttamente il firmware, la spia POWER presente sul router non smetterà mai di lampeggiare (lo fa normalmente all'accensione, fino al completamento del caricamento del sistema operativo).<br>
 +
Nonostante questo errore, sarà comunque possibile connettersi il router utilizzando un cavo di rete e con una particolare procedura.<br>
 +
 +
===Cose da fare===
 +
====Modalità '''failsafe'''====
 +
Per arrivare a questa modalità, è necessario accendere il device normalmente e attendere l'accensione della spia DMZ. Alla sua accensione, premere immediatamente il pulsante posteriore di RESET, fino a quando la stessa spia non inizierà a lampeggiare. Rilasciate il pulsante di RESET.<br>
 +
Per accedere al device, sarà necessario connettere un cavo ethernet ad una delle sue quattro porte interne (non alla Internet) e impostare sul vostro PC una configurazione di rete statica.
 +
 +
====Procedura diretta dal device====
 +
Questa procedura è possibile SOLO se è possibile connettere direttamente il device a Internet, tramite la sua porta.<br>
 +
* connettersi al device via telnet:
 +
 +
telnet 192.168.1.1
 +
 +
* entrare nella cartella /tmp/
 +
 +
cd /tmp/
 +
 +
* scaricare il file del firmware nella cartella:
 +
 +
wget http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
 +
 +
* posizionarsi nella cartella dove è stato scaricato il file:
 +
 +
cd /tmp/
 +
 +
* digitare il comando di scrittura del firmware:
 +
 +
mtd -r write openwrt-brcm-2.4-squashfs.trx linux
 +
 +
e attendere il termine della scrittura del file.<br>
 +
''ATTENZIONE'': al termine della scrittura, il sistema cercherà di riavviarsi, senza riuscirci. Sarà necessario spegnere e riaccendere il device. 
 +
<br>
 +
 +
 +
====Procedura dal proprio PC via SSH====
 +
Questa procedura è possibile SE NON è possibile connettere direttamente il device a Internet, tramite la sua porta.<br>
 +
Se avevate impostato una password al device, procedete oltre a questo paragrafo.<br>
 +
Se precedentemente non era stata impostata una password, sarà necessario abilitare prima di tutto una password all'utente '''root''', in quanto solo in questo caso verrà abilitato automaticamente il servizio SSH.<br>
 +
Seguite questa procedura:
 +
* accedere al device in modalità telnet all'indirizzo IP impostato nella precedente configurazione (noi indichiamo quello predefinito) 
 +
 +
telnet 192.168.1.1
 +
 +
* digitare i seguenti comandi:
 +
 +
mount_root
 +
/etc/init.d/dropbear start  (avvierà il demone SSH)
 +
passwd                      (modificherà la password di root)
 +
 +
* uscite dalla connessione telnet, con il comando:
 +
 +
exit
 +
 +
Ora il device sarà raggiungibile via SSH.<br>
 +
Procedete con il download del firmware.
 +
 +
* scaricare il file del firmware in una cartella del PC, aprendo il terminale:
 +
 
 +
wget http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
 +
 +
* posizionarsi all'interno della cartella del download e inviare il file al device tramite il comando SCP:
 +
 +
scp openwrt-brcm-2.4-squashfs.trx root@192.168.1.1:/tmp
 +
 +
* entrare in SSH nel device:
 +
 +
ssh root@192.168.1.1
 +
 +
* posizionarsi nella cartella dove è stato scaricato il file:
 +
 +
cd /tmp/
 +
 +
* digitare il comando di scrittura del firmware:
 +
 +
mtd -r write openwrt-brcm-2.4-squashfs.trx linux
 +
 +
e attendere il termine della scrittura del file.<br>
 +
''ATTENZIONE'': al termine della scrittura, il sistema cercherà di riavviarsi, senza riuscirci. Sarà necessario spegnere e riaccendere il device. 
 +
<br>
 +
 +
<!--
 +
====Procedura dal proprio PC via TFTP====
 +
Come spesso accade se il router non riesce a caricare correttamente il firmware, la spia POWER presente sul router non smetterà mai di lampeggiare (lo fa normalmente all'accensione, fino al completamento del caricamento del sistema operativo).<br>
 +
Nonostante questo errore, sarà comunque possibile connettere il router utilizzando un cavo di rete. Per fare questo, seguite queste semplici operazioni:
 +
* connettete la porta ethernet del PC con il cavo di rete ad una delle 4 porte del router; NON alla porta Internet.
 +
* impostare l'avvio del device, bloccando il boot.
 +
* impostate nel PC questa configurazione statica per la connessione ethernet:
 +
 +
IP: 192.168.1.2
 +
netmask: 255.255.255.0
 +
gateway: 192.168.1.1
 +
 +
poi aprite un terminale e digitate:
 +
 +
ping 192.168.1.1
 +
 +
noterete che il router sta rispondendo, segno che la connessione ethernet è funzionante.<br>
 +
A questo punto, sempre attraverso il terminale, spostatevi all'interno della cartella che contiene il file del firmware (esempio, Download), da inserire nel router:
 +
 +
$ cd /home/utente/Download
 +
 +
e verificate la presenza del file  .bin , con il comando:<br>
 +
 +
$ ls -la *.bin
 +
 +
il terminale visualizzerà un testo simile a questo:
 +
 +
$ ls -la *.bin
 +
-rw-rw-r-- 1 utente utente 2428960 ago  1 15:38 openwrt-wrt54g-squashfs.bin
 +
 +
Arrivati a questo punto siete pronti per importare il file del firmware nel router, utilizzando i seguenti comandi:
 +
 +
tftp 192.168.1.1
 +
tftp> binary
 +
tftp> put openwrt-wrt54g-squashfs.bin
 +
Sent 2428960 bytes in 23.8 seconds
 +
tftp>
 +
 +
A questo punto il lavoro è completato.<br>
 +
Se tutto è andato a buon fine, il router si sarà riavviato e avrete finalmente aggiornato con successo il vostro router Cisco Linksys WRT54GL con il firmware desiderato.
 +
<br>
 +
 +
-->
 +
 +
 +
</div>

Versione attuale delle 13:06, 10 gen 2015






Wrt54gl.jpg

















Come liberare il router WRT54GL dal firmware proprietario

OpenWrt è il firmware interno per dispositivi embedded utilizzato per la gestione del traffico. Nel nostro caso utilizzeremo OpenWRT dentro un router domestico, effettuando un test hardware per il Cisco Linksys Wireless-G Broadband Router WRT54GL v1.1.

OpenWrt è Linux based e include un kernel Linux come i BusyBox. Ha all'interno un gestore di pacchetti chiamato opkg (simile al pacchetto apt di ubuntu).

Prima di installare OpenWrt nel router, è necessario sapere se il device è compatibile con OpenWrt, per averne la certezza è necessario vedere se il modello è compreso nella Tabella degli hardware di OpenWrt.

Progetti collegati

Successivamente all'installazione e alla prima configurazione di OpenWrt su questo apparato, desideriamo proporre i seguenti progetti dedicati:

  • WiFiDog - Un semplice ma preciso hotspot captive portal wifi realizzato con software open source per OpenWrt;
  • OpenWisp - Un ampio progetto di captive portal (manager, geografico, ecc. scritto su scratch con Ruby on Rails.
  • Mesh Network con Openwrt Backfire come configurare il router con openwrt backfire 10.03.1 per una mesh network con l'utilizzo di batman-adv.
  • OpenMesh batman-adv Esempio di parti della configurazione B.A.T.M.A.N. su OpenWRT.


Progetti realizzati da noi


Specifiche Hardware

Prima di esplorare il sistema OpenWrt, andiamo a conoscere qual'è l'hardware che abbiamo a disposizione nella nostra device:

  • CPU: Broadcom BCM5352 @ 200 MHz
  • RAM: 16 MB
  • Memoria Flash: 4 MB

CONTROLLO VELOCE - per essere sicuri che l'hardware contenuto sia esatto, possiamo controllare le specifiche del modello leggendo il prefisso del numero di serie del device, utilizzando queste informazioni.

Nel nostro caso l'hardware viene supportato completamente da OpenWrt, ma ci sono alcuni limitazioni dovute al tipo di memoria flash utilizzata. Vedi:

La soluzione per il nostro casco è ben documentata. Verrà utilizzato il firmware OpenWrt 10.03.1-rc6 (nome in codice "backfire").

Scaricare la versione corretta del firmware

Per installare OpenWrt nel router, la prima cosa da fare è andare a vedere le indicazioni presenti e dedicate al nostro modello Linksys, descritte nel sito di OpenWrt. Per questa marca di router troviamo molte versioni disponibili di OpenWrt, ma per trovare la versione corretta dobbiamo cercare il modello esatto:

  • La versione stabile di OpenWrt è la Kamilaze, anche se troviamo presente la versione Backfire con qualche bug e qualche instabilità negli adattamenti di attitude.
  • La versione che viene normalmente raccomandata è la 8.09 con Kamilaze, mentre la versione più aggiornata del firmware è la brcm-2.4
  • Durante questo test installeremo la versione brcm-2.4 Backfire
  • La CPU è una Broadcom con il prefisso bcrm

In questo link, viene evidenziato il supporto sia per la versione brcm-2.4 che per la brcm47xx
La differenza tra la versione brcm-2.4 e brcm47xx viene spiegata qui
Per ognuna di esse, è possibile scaricare il file immagine, che termina con l'estensione .bin
Se sono disponibili sia i file JFFS2 che SquashFS, è preferibile utilizzare l'immagine di tipo SquashFS
Andando a vedere lo storico della versione possiamo determinare se la versione 8.09 sia la migliore e e quali siano le differenze nelle versioni kamikaze, backfire e le configurazioni attitude.
L'immagine che verrà utilizzata per il nostro test è: http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-wrt54g-squashfs.bin, corrispondente alla versione brcm-2.4 Backfire.

Installazione

Tramite l'interfaccia web del router Linksys

È possibile installare OpenWrt direttamente dall'interfaccia web del router Linksys. Se state effettuando la prima installazione fatelo utilizzando questa interfaccia, è il modo più semplice e veloce.

Procedura

  • Scaricate il file immagine del firmware openwrt-wrt54g-squashfs.bin dalla cartella brcm-2.4 del sito, nel vostro PC. Trovate il file immagine su: http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/
  • Entrate manualmente nelle pagine web del router http://192.168.1.1 ed effettuate il login (user root e password admin).
  • Con il browser aprite l'indirizzo http://192.168.1.1/Upgrade.asp, oppure entrate manualmente nella pagina http://192.168.1.1 → Administration → Firmware Upgrade
  • Fate l'upload del firmware, utilizzando il file openwrt-wrt54g-squashfs.bin nel router, prelevandolo dalla vostra cartella locale di download.
  • Attendete 2 minuti. Il router si riavvierà automaticamente dopo aver completato l'aggiornamento.

Connessione via Telnet

Il router aggiornato, può essere conattato via Telnet all'indirizzo 192.168.1.1. Per testare questa possibilità, aprite un terminale e digitate:

 $ telnet 192.168.1.1

Questa modalità di connessione vi farà conoscere un modo diverso di accedere al vostro router. I Cisco Admin ne sanno qualcosa in merito! :)

Connessione via browser

L'accesso all'interfaccia web luci è disponibile all'indirizzo http://192.168.1.1 , con user root' e SENZA password iniziale.

Servizi Telnet e SSH

ATTENZIONE: Solo dopo l'avvenuto inserimento della password di login, il servizio Telnet verrà disabilitato e il servizio SSH verrà abilitato!!

Servizio TFTP

Ora assicuratevi che il servizio tftp sia disponibile. Digitate questi comandi in telnet/ssh. Questo vi assicura che il servizio tftp sia disponibile, nel caso in cui il vostro router si danneggi.

 $ nvram set boot_wait=on
 $ nvram set wait_time=10
 $ nvram commit && reboot

N.B.: in generale per i modelli WRT54G* la variabile per impostare il tempo d'attesa per l'avvio del router è boot_time. Sembra che per questo particolare modello (WRT54GL) la variabile corretta sia invece wait_time come indicato sopra ( link di riferimento).

Comunicazione via SSH

La connessione via web tra il router e il client genererà automaticamente una chiave SSH al primo login.
Il router inizialmente potrebbe metterci un po di tempo durante la generazione delle chiavi. Nel caso il router vi butti fuori dalla connessione del browser, riprovate a connettervi dopo aver atteso un minuto o due.
Al primo avvio OpenWrt ci metterà un po di tempo prima di rendere disponibile la connessione via web, in quanto deve configurare per la prima volta, ed avviare, i suoi file di sistema oltre a generare le chiavi SSH; il server SSH non si avvierà fino a quando la generazione delle chiavi non sarà terminata.

Configurazione

La configurazione di rete è scritta in /etc/config/network. I valori iniziali di questo file per la nostra configurazione dovranno essere:

#### VLAN configuration
config switch eth0
       option vlan0    "0 1 2 3 5*"
       option vlan1    "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.1
       option netmask  255.255.255.0


#### WAN configuration
config interface        wan
       option ifname   "eth0.1"
       option proto    dhcp

Dopo aver editato e salvato questo file, per applicare la nuova configurazione digitate:

 $ /etc/init.d/network restart


Configurazione Switch

La sezione dello Switch che troviamo di seguito nel file è responsabile del funzionamento di una parte dell'hardware, facendola apparire come un'interfaccia indipendente. La parte di configurazione che specifica la caratteristiche dello switch, è la seguente:

#### VLAN configuration

config switch eth0

       option vlan0    "0 1 2 3 5*"
       option vlan1    "4 5" 

Nella configurazione seguente: I numeri da 0-5 rappresentano i numeri delle porte, dove per la VLAN0 si prevedono le porte da 0 a 5* e per la VLAN1 vengono incluse le porte 4 e 5. Il simbolo * nella porta 5* indica il PVID.

WRT54GLdiagram.png

Come visualizzato nella grafica, in questo caso lo switch separa le porte LAN dalle WAN.

Interfacce

Gli altri parametri nel file di configurazione di rete descrivono le interfacce. Le interfacce sono reti logiche, alle quali possono essere configurati i vari indirizzi IP, le rotte e altre magie.

Le 3 interfacce vengono chiamate loopback, lan and wan. Le interfacce fisiche associate con queste interfacce logiche sono: lo, eth0.0 and eth0.1.

Ripristino del router e ricaricamento del firmware

In alcuni casi, potrà capitare che l'aggiornamento del firmware non vada a buon fine, rendendo il router del tutto inutilizzabile.
Questo problema viene spesso descritto come bad upgrade o router bricked, che significa aggiornamento non andato a buon fine o router danneggiato.

Nessun problema. Questo modello di router ha 7 vite come i gatti e sarà possibile reinstallare nuovamente il firmware, attraverso l'uso delle seguenti informazioni.
Come spesso accade se il router non riesce a caricare correttamente il firmware, la spia POWER presente sul router non smetterà mai di lampeggiare (lo fa normalmente all'accensione, fino al completamento del caricamento del sistema operativo).
Nonostante questo errore, sarà comunque possibile connettersi il router utilizzando un cavo di rete e con una particolare procedura.

Cose da fare

Modalità failsafe

Per arrivare a questa modalità, è necessario accendere il device normalmente e attendere l'accensione della spia DMZ. Alla sua accensione, premere immediatamente il pulsante posteriore di RESET, fino a quando la stessa spia non inizierà a lampeggiare. Rilasciate il pulsante di RESET.
Per accedere al device, sarà necessario connettere un cavo ethernet ad una delle sue quattro porte interne (non alla Internet) e impostare sul vostro PC una configurazione di rete statica.

Procedura diretta dal device

Questa procedura è possibile SOLO se è possibile connettere direttamente il device a Internet, tramite la sua porta.

  • connettersi al device via telnet:
telnet 192.168.1.1
  • entrare nella cartella /tmp/
cd /tmp/
  • scaricare il file del firmware nella cartella:
wget http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
  • posizionarsi nella cartella dove è stato scaricato il file:
cd /tmp/
  • digitare il comando di scrittura del firmware:
mtd -r write openwrt-brcm-2.4-squashfs.trx linux

e attendere il termine della scrittura del file.
ATTENZIONE: al termine della scrittura, il sistema cercherà di riavviarsi, senza riuscirci. Sarà necessario spegnere e riaccendere il device.


Procedura dal proprio PC via SSH

Questa procedura è possibile SE NON è possibile connettere direttamente il device a Internet, tramite la sua porta.
Se avevate impostato una password al device, procedete oltre a questo paragrafo.
Se precedentemente non era stata impostata una password, sarà necessario abilitare prima di tutto una password all'utente root, in quanto solo in questo caso verrà abilitato automaticamente il servizio SSH.
Seguite questa procedura:

  • accedere al device in modalità telnet all'indirizzo IP impostato nella precedente configurazione (noi indichiamo quello predefinito)
telnet 192.168.1.1
  • digitare i seguenti comandi:
mount_root
/etc/init.d/dropbear start   (avvierà il demone SSH)
passwd                       (modificherà la password di root)
  • uscite dalla connessione telnet, con il comando:
exit

Ora il device sarà raggiungibile via SSH.
Procedete con il download del firmware.

  • scaricare il file del firmware in una cartella del PC, aprendo il terminale:
wget http://downloads.openwrt.org/backfire/10.03.1/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
  • posizionarsi all'interno della cartella del download e inviare il file al device tramite il comando SCP:
scp openwrt-brcm-2.4-squashfs.trx root@192.168.1.1:/tmp
  • entrare in SSH nel device:
ssh root@192.168.1.1
  • posizionarsi nella cartella dove è stato scaricato il file:
cd /tmp/
  • digitare il comando di scrittura del firmware:
mtd -r write openwrt-brcm-2.4-squashfs.trx linux

e attendere il termine della scrittura del file.
ATTENZIONE: al termine della scrittura, il sistema cercherà di riavviarsi, senza riuscirci. Sarà necessario spegnere e riaccendere il device.