<> '''Kamikaze''' è l'ultima versione di OpenWRT. Non includendo al suo interno l'interfaccia web, installazione sarà formata da più passi. == Kamikaze == Al momento l'ultima versione del firmware per il chipset è la '''7.09''' e può essere [[http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/|scaricata da qui]]. Scegliere nell'elenco quella relativa al proprio router secondo questa tabella: ''Firmware OpenWRT per router Linksys'' ||'''Nome File''' ||'''Modello Linksys''' || ||[[http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/openwrt-wrt54g-2.4-squashfs.bin|openwrt-wrt54g-2.4-squashfs.bin]] ||WRT54'''G''' (e WRT54'''GL''') || ||[[http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/openwrt-wrt54gs-2.4-squashfs.bin|openwrt-wrt54gs-2.4-squashfs.bin]] ||WRT54'''GS''' || ||[[http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/openwrt-wrt54gs_v4-2.4-squashfs.bin|openwrt-wrt54gs_v4-2.4-squashfs.bin]] ||WRT54'''GS v4''' || Farne una copia con un nome più comodo da usare: {{{ Computer$ cp openwrt-wrt54g-2.4-squashfs.bin o.bin }}} Calcolare l'MD5 del file con: {{{ Computer$ md5sum o.bin }}} Controllare che l'MD5 sia uguale a quello mostrato nella pagina [[http://downloads.openwrt.org/kamikaze/7.09/brcm-2.4/md5sums|md5sums]] cercando al suo interno la stringa di checksum MD5 restituita dal comando precedente. Collegare un cavo Ethernet dal PC al Linksys e cambiare IP al PC con il comando: {{{ Computer$ sudo ifconfig eth0 192.168.1.2 up }}} == TFTP == Usare il client TFTP che punti al router con: {{{ Computer$ tftp 192.168.1.1 }}} all'interno della shell TFTP eseguire i seguenti comandi: {{{ tftp> binary }}} {{{ tftp> rexmt 1 }}} {{{ tftp> timeout 60 }}} {{{ tftp> trace }}} Il prossimo (ultimo) comando avvia il trasferimento, va avviato sincronizzandolo con l'accensione del router, quindi premere invio SOLO una frazione di secondo '''DOPO''' aver alimentato il Linksys. {{{ tftp> put o.bin }}} Se tutto va bene, verrà mostrato il trasferimento del file con un output simile a questo: {{{ sent WRQ received ACK sent DATA received ACK sent DATA received ACK ... ... sent DATA received ACK sent DATA received ACK Sent 1839136 bytes in 8.2 seconds }}} Finito il quale, il router flasherà il nuovo firmware autonomamente (impiegando circa un paio di minuti). Sapremo che l'operazione sarà conclusa quando vedremo il led '''Power''' smettere di lampeggiare. Uscire da TFTP con il comando: {{{ tftp> quit }}} Verifichiamo lo stato di raggiungibilità del router con il comando: {{{ Computer$ ping 192.168.1.1 }}} === tftp su Gentoo === Ci sono diversi ebuild che danno un client tftp su Gentoo Quello che funziona bene è questo: {{{ net-ftp/tftp-hpa }}} == Cambio Password == Aprire una sessione Telnet sul router: {{{ Computer$ telnet 192.168.1.1 }}} Cambiare la password di root: {{{ Router$ passwd }}} Riavviare il router: {{{ Router$ reboot }}} == Sbracare il firewall maledetto == OpenWRT ha un firewall maledetto e paranoico, per sbracarlo completamente aggiungere in coda al file {{{/etc/firewall.user}}} : {{{ iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -F iptables -F }}} == Accesso a Internet per mezzo della precedente connessione == Può essere necessario configurare un Access Point per destinarlo alla connessione ad una rete diversa da Internet. Come ad esempio Ninux. In questi casi può servire di far accedere temporaneamente ad Internet il nostro Access Point passando per il nostro computer. Ad esempio può essere necessario per installare automaticamente i pacchetti del repository di X-Wrt, come vedremo sotto. Questo presuppone che il nostro computer sia già collegato ad Internet. Occorre abilitare il nostro PC allo smistamento dei pacchetti che riceve (IP forwarding). Ad esempio con Linux, ricordandoci di diventare superuser: {{{ Computer# echo 1 > /proc/sys/net/ipv4/ip_forward }}} Se si usa un Internet provider che non consente l'accesso da più di un IP, si può anche abilitare il masquerading {{{ Computer# iptables -t nat -I POSTROUTING -o -j MASQUERADE }}} Nota: sostituire '''' con la propria interfaccia di rete collegata ad Internet. Di seguito va informato il nostro Access Point su quale strada seguire per uscire e su dove cercare il DNS. Aprire una shell in modalità SSH sul router: {{{ Computer$ ssh root@192.168.1.1 }}} Nota: . Se in precedenza ci si è connessi ad un altro server SSH con lo stesso IP, il comando precedente restituirà il messaggio: ''WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!'' . Niente Panico! :) Per ovviare al problema basterà rinominare il file '''~/.ssh/known_hosts''' con il comando: {{{ Computer$ mv ~/.ssh/known_hosts ~/.ssh/known_hosts.bak }}} Inviare i seguenti comandi per impostare default gateway e DNS server. {{{ Router$ route add default gw 192.168.1.2 Router$ echo "nameserver 151.99.125.2" >>/etc/resolv.conf }}} == IPKG == Ipkg è un gestore pacchetti (stile ''apt-get'' di Debian) integrato in OpenWRT. Permette di installare a run-time funzioni aggiuntive al router, senza esser costretti a ricompilare (e ri-flashare) il firmware ogni volta. Collegare un secondo cavo ethernet con accesso ad internet nella presa omonima del router. Aprire una shell in modalità SSH sul router: {{{ Computer$ ssh root@192.168.1.1 }}} Modificare la lista dei repository con l'editor di testi ('''vi''') integrato in OpenWRT: {{{ Router$ vi /etc/ipkg.conf }}} Spostare il cursore sotto l'ultima riga che inizia con "src" Entrare in modalità inserimento di vi (tasto '''I''') ed aggiungere una riga vuota Incollarvi la seguente stringa: {{{src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm-2.4/packages}}} Uscire dalla modalità inserimento di vi (tasto '''ESC''') Salvare ed uscire da vi (comando ''':wq''') Aggiornare la lista pacchetti di IPKG con il comando: {{{ Router$ ipkg update }}} == WEBif == Installare il pacchetto dell'interfaccia WEB (webif) con il comando: {{{ Router$ ipkg install webif }}} Aprire la pagina http://192.168.1.1 con il proprio browser preferito Username: '''root''' Password: (quella inserita con il comando ''passwd'') Configurare: Menu: System --> Settings: * Host Name: '''OpenWrtPippo''' * Timezone: '''Roma, Italy''' Menu: Network --> Wireless: * Radio: '''ON''' * Canale: '''8''' * Network: '''none''' * Mode: '''Ad-Hoc''' * ESSID: '''ninux.org''' * Encryption Type: '''Disabled''' Salvare ed applicare i cambiamenti. == OLSR == Installare il pacchetto OLSR con il comando: {{{ Router$ ipkg install olsrd }}} Configurarlo come segue {{{ Router$ vi /etc/olsrd.conf }}} Cercare '''!UseHysteresis''' ed impostarlo a '''no''' Cercare '''!LinkQualityLevel''' ed impostarlo a '''2''' Cercare la stringa:{{{# !!CHANGE THE INTERFACE LABEL(s) TO MATCH YOUR INTERFACE(s)!!}}} e cambiare '''Interface "XXX" "YYY"''' in '''Interface "wl0"''' Salvare e chiudere (''':wq''') Modificare '''/etc/config/network''' aggiungendo l'interfaccia '''wl0''' di cui sopra con: {{{ Router$ vi /etc/config/network }}} Aggiungere in fondo al file le seguenti 8 righe di configurazione: {{{ #### ADDED FOR NINUX.ORG config interface "ninuxif" option ifname "wl0" option proto "static" option ipaddr "172.16.CAP.1" option netmask "255.255.0.0" option gateway "" option dns "160.80.2.5"}}} Sostituendo l'ottetto '''CAP''' in '''"172.16.CAP.1"''' con il '''C'''odice_di_'''A'''vviamento_'''P'''ostale della vostra zona. Il tutto, ovviamente, compatibilmente con due vincoli: 1. Che sia compreso tra '''0''' e '''254''' 1. Aver ottenuto il ''via libera'' dagli altri utenti di Ninux.org (''onde evitare conflitti di IP'') Ora avviare OLSR per verificare se si collega alla rete '''Ninux''' eseguendo: {{{ Router$ olsrd }}} Se tutto va bene vedremo (ripetendo il comando) aumentare le rotte di routing: {{{ Router$ route }}} Per configurare l'avvio automatico di OLSRd ad ogni reboot si può usare l'interfaccia web Menu: System --> Startup: Aggiungere in fondo al file: . olsrd Oppure {{{ Router$ ln -s /etc/init.d/olsrd /etc/rc.d/S98olsrd }}} == Riferimenti Esterni == (EN) [[http://openwrt.org/|Sito ufficiale di OpenWRT]] (EN) [[http://wiki.openwrt.org/OpenWrtDocs/Installing/TFTP|Installare OpenWRT tramite TFTP]]