Italiano English
Modifica History Actions

Differenze per "FirmwareScooreggione"

Differenze tra le versioni 5 e 33 (in 28 versioni)
Versione 5 del 2013-04-28 23:49:39
Dimensione: 6628
Autore: ZioPRoTo
Commento:
Versione 33 del 2014-04-30 16:31:10
Dimensione: 12690
Autore: ClauzClauz
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
= Scooreggione ! =

Questo firmware è basato su piccole modifiche a OpenWRT Attitude Adjustment
I sorgenti qui: https://github.com/ninuxorg/attitude_adjustment/
= OpenWRT firmware ninux.org (Codename :prrrr!!!) =
Linea 9: Linea 5:

= Introduzione =

Il nuovo firmware è basato sulla versione Attitude Adjustment di OpenWRT.
I sorgenti sono disponibili sul seguente repository:

https://github.com/ninuxorg/attitude_adjustment

Si possono vedere le modifiche apportate tra la versione originale di OpenWRT (branch master) e la versione ninux (branch scooreggione) vedendo le differenze tra i due branch:

{{{
git clone https://github.com/ninuxorg/attitude_adjustment
cd attitude_adjustment && git checkout scoreggione
git diff -C master scooreggione --stat=1000,1000
}}}
Linea 13: Linea 25:
1) Fai un backup di tutte le tue config in {{{ /etc/persistent }}} magari ti serve per il futuro 1) Fai un backup di tutte le tue config in {{{ /etc/persistent }}} e del file {{{/tmp/running.cfg}}} magari ti serve per il futuro. Segnati il canale configuarato e la potenza usata.
Linea 24: Linea 36:
http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v2/

http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v4
dovete scegliere l'immagine con la dicitura '''factory''' nel nome.

Nota: per la AirGrid si deve prendere l'immagine della bullet
Linea 35: Linea 48:
http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v2/md5sums http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v4/md5sums
Linea 42: Linea 55:
6) Dopo il reboot il device ha sulla LAN indirizzo IP 192.168.1.1, puoi entrare in SSH con utente root password root. La radio di default è spenta.

= Note =
6) Dopo il reboot il device ha sulla LAN indirizzo IP 192.168.1.1, puoi entrare in SSH con utente root password root. La radio di default è in sta con SSID ninux.org.


7) DA AGGIUGERE INFO############################
ping6 ff02::1%eth0

ip n s|grep eth0

oppure alias ipv4

ip a a 192.168.1.10/24 dev eth0


= Aggiornamento da una versione precedente di Scooreggione o OpenWRT =

Potete usare l'immagine con scritto nel nome '''sysupgrade''' ed usare il tool sysupgrade di OpenWRT
http://wiki.openwrt.org/doc/howto/generic.sysupgrade

A partire da {{{Scooreggione-AA-v3}}} dopo il flash vengono fatte delle autoconfigurazioni. Se state facendo un upgrade ed avete la config già fatta, prima del sysupgrade scrivete {{{1}}} in questo file.
{{{
echo 1 > /etc/config/ninux
}}}

Leggendo questo {{{1}}} scooreggione capisce che il device è già configurato e non tocca la configurazione durante l'upgrade.


La configurazione viene mantenuta con l'upgrade, ma alcuni servizi vengono disabilitati:

* DHCP server
* nodogsplash
* Polipo
* qos

Dopo il sysupgrade fate ripartire i servizi che vi servono, esempio:
{{{
/etc/init.d/dhcp start
/etc/init.d/dhcp enable
}}}

= Importante nota sul flash di Scooreggione =

'''A partire da scooreggione-AA-v3 non c'è piu bisogno di questo reboot'''

Dopo il flash (sia da AirOS sia via sysupgrade) uno script di tipo uci-default che viene lanciato solo al primo boot sistema i drivers wireless per usare il corretto country code per il nostro paese.

appena flashato se fate
{{{iw list | grep MHz}}}
vedrete una lista di canali possibili, che potrebbe essere incompleta

prima di fare il primo reboot date al device il tempo di fare il boot completamente (circa 1 minuto), basta vede col comando {{{ps}}} che non ci siamo script di boot ancora in esecuzione, oppure con il comando {{{uptime}}} assicuratevi che il sistema sia up da almeno 2 minuti.

dopo il primo reboot se ripetete il comando
{{{iw list | grep MHz}}}
vedrete che adesso i corretti canali sono utilizzabili sul firmware scooreggione



= Comandi utili =

Per vedere se avete station associate al vostro AP, o se siete station e volete capire se vi siete associati, scrivete:
{{{
iw wlan0 station dump
}}}

se volete vederlo aggiornato ogni 2 secondi (ad esempio per fare un puntamento:
{{{
watch iw wlan0 station dump
}}}

Per vedere i livelli di potenza in fase di puntamento:
{{{
watch iw wlan0 station dump|grep "signal avg"
}}}

se cambiate una config in {{{/etc/config/wireless}}} basta dare il comando {{{wifi}}} per applicare la nuova config

E' bene leggere questa documentazione:
http://wiki.openwrt.org/doc/uci/wireless


= Policy Routing =
Linea 130: Linea 221:
        option dns '8.8.8.8'         option dns '10.11.12.13'
Linea 137: Linea 228:
        option dns '8.8.8.8'         option dns '10.11.12.13'
Linea 186: Linea 277:
        option dns '8.8.8.8'         option dns '10.11.12.13'
Linea 221: Linea 312:
root@M5GalliaBramante:~#
}}}
root@OpenWRT:~#
}}}

= Esempio di configurazione OLSR IPv4 =

{{{
root@OpenWRT:~# cat /etc/config/olsrd

config olsrd
        option IpVersion '4'
        option RtTable '111'
        option RtTableDefault '112'

config LoadPlugin
        option library 'olsrd_arprefresh.so.0.1'

config LoadPlugin
        option library 'olsrd_nameservice.so.0.3'

config LoadPlugin
        option library 'olsrd_txtinfo.so.0.1'
        option accept '0.0.0.0'

config Interface
        list interface 'lan backbone'
        option speed '6'

config Hna4
        option netaddr '10.CAP.x.0'
        option netmask '255.255.255.0'

root@OpenWRT:~#
}}}

= Note sulla configurazione in WDS =

Il problema: quando accendiamo WDS su OpenWrt AP, succede che se una station si associa all'AP OpenWrt usando la modalita' WDS, il kernel tira su una nuova interfaccia wlan0.staX. A livello radio sale tutto ma non si riesce a fare traffico IP con l'AP.

Soluzione: L'interfaccia logica wireless DEVE essere di TYPE BRIDGE.

In /etc/config/network si deve necessariamente avere l'interfaccia radio dentro un bridge:

{{{
network.backbone=interface
network.backbone.ifname=wlan0
network.backbone.type=bridge <<<<<<<AGGIUNGERE
network.backbone.proto=static
network.backbone.ipaddr=172.16.184.2
network.backbone.ip6addr=2001:4c00:893b:1:184::2/128
network.backbone.netmask=255.255.0.0
network.backbone.dns=8.8.8.8
}}}

Dopo il reboot:
{{{
# brctl show
bridge name bridge id STP enabled interfaces
br-backbone 8000.00156d1aed6e no wlan0 <<<<<<LA PRINCIPALE
                            wlan0.sta1 <<< INTERAFACCIA DEDICATA ALLA STAZIONE WDS
}}}

Ricordatevi anche di cambiare wlan0 in br-backbone nel file /etc/config/olsrd6.conf in quanto ora la vostra interfaccia con gli IP non si chiama piu' wlan0.

= What to do Next =

Una volta configurata la rete con l'accesso a Internet è comodo installare luci (l'interfaccia web per la configurazione di openwrt).
 
{{{
opkg update # update della lista dei pacchetti
opkg install luci
opkg install luci-app-olsr # installare il modulo per la gestione di olsr
/etc/init.d/uhttpd start # avviare il server web
/etc/init.d/uhttpd enable # abilitare il server web anche ai prossimi riavvii
}}}

A questo punto dal tab Status->OLSR potete vedere lo stato di olsr, i vicini, le rotte ecc.

'''Rimuovere le chiavi pubbliche pre-installate:'''

Per rendere la manutenzione più semplice alcune chiavi pubbliche sono pre-installate nella release di Scooreggione. Questo significa che i developers di Scooreggione possono effettuare un login sulla vostra macchina via ssh anche se voi cambiate la password. Se volete disabilitare questa feature cancellate il file ''/etc/dropbear/authorized_keys''
Linea 248: Linea 417:
git checkout .config

OpenWRT firmware ninux.org (Codename :prrrr!!!)

Introduzione

Il nuovo firmware è basato sulla versione Attitude Adjustment di OpenWRT. I sorgenti sono disponibili sul seguente repository:

https://github.com/ninuxorg/attitude_adjustment

Si possono vedere le modifiche apportate tra la versione originale di OpenWRT (branch master) e la versione ninux (branch scooreggione) vedendo le differenze tra i due branch:

git clone https://github.com/ninuxorg/attitude_adjustment
cd attitude_adjustment && git checkout scoreggione
git diff -C master scooreggione --stat=1000,1000

Aggiornare da un precedente AirOS o Sburratone

0) Entrare in SSH sul device

1) Fai un backup di tutte le tue config in  /etc/persistent  e del file /tmp/running.cfg magari ti serve per il futuro. Segnati il canale configuarato e la potenza usata.

2) Mettersi nella cartella tmp

 cd /tmp/ 

3) Scaricare il firmware con il comando wget

 wget http://URLFIRMWARE -O /tmp/fwupdate.bin 

dove URL FIRMWARE è una di queste a seconda del device che devi flashare: http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v4 dovete scegliere l'immagine con la dicitura factory nel nome.

Nota: per la AirGrid si deve prendere l'immagine della bullet

4) Controllare l'MD5 per vedere il firmware è valido o corrotto

 md5sum /tmp/fwupdate.bin 

deve venire il risultato giusto che trovi in questo file:

http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v4/md5sums

5) Se il risultato MD5 è corretto lanciare il seguente comando per aggiornare:

 /sbin/ubntbox fwupdate.real -m /tmp/fwupdate.bin -d

6) Dopo il reboot il device ha sulla LAN indirizzo IP 192.168.1.1, puoi entrare in SSH con utente root password root. La radio di default è in sta con SSID ninux.org.

7) DA AGGIUGERE INFO############################ ping6 ff02::1%eth0

ip n s|grep eth0

oppure alias ipv4

ip a a 192.168.1.10/24 dev eth0

Aggiornamento da una versione precedente di Scooreggione o OpenWRT

Potete usare l'immagine con scritto nel nome sysupgrade ed usare il tool sysupgrade di OpenWRT http://wiki.openwrt.org/doc/howto/generic.sysupgrade

A partire da Scooreggione-AA-v3 dopo il flash vengono fatte delle autoconfigurazioni. Se state facendo un upgrade ed avete la config già fatta, prima del sysupgrade scrivete 1 in questo file.

echo 1 > /etc/config/ninux

Leggendo questo 1 scooreggione capisce che il device è già configurato e non tocca la configurazione durante l'upgrade.

La configurazione viene mantenuta con l'upgrade, ma alcuni servizi vengono disabilitati:

* DHCP server * nodogsplash * Polipo * qos

Dopo il sysupgrade fate ripartire i servizi che vi servono, esempio:

/etc/init.d/dhcp start
/etc/init.d/dhcp enable

Importante nota sul flash di Scooreggione

A partire da scooreggione-AA-v3 non c'è piu bisogno di questo reboot

Dopo il flash (sia da AirOS sia via sysupgrade) uno script di tipo uci-default che viene lanciato solo al primo boot sistema i drivers wireless per usare il corretto country code per il nostro paese.

appena flashato se fate iw list | grep MHz vedrete una lista di canali possibili, che potrebbe essere incompleta

prima di fare il primo reboot date al device il tempo di fare il boot completamente (circa 1 minuto), basta vede col comando ps che non ci siamo script di boot ancora in esecuzione, oppure con il comando uptime assicuratevi che il sistema sia up da almeno 2 minuti.

dopo il primo reboot se ripetete il comando iw list | grep MHz vedrete che adesso i corretti canali sono utilizzabili sul firmware scooreggione

Comandi utili

Per vedere se avete station associate al vostro AP, o se siete station e volete capire se vi siete associati, scrivete:

iw wlan0 station dump

se volete vederlo aggiornato ogni 2 secondi (ad esempio per fare un puntamento:

watch iw wlan0 station dump

Per vedere i livelli di potenza in fase di puntamento:

watch iw wlan0 station dump|grep "signal avg"

se cambiate una config in /etc/config/wireless basta dare il comando wifi per applicare la nuova config

E' bene leggere questa documentazione: http://wiki.openwrt.org/doc/uci/wireless

Policy Routing

Questo firmware si fa uso di policy routing. Al boot OLSR viene configurato automaticamente per usare queste tabelle

RtTable 111
RtTableDefault 112

E dentro il tuo /etc/rc.local ha questi comandi:

#110 Local routes
#111 RtTable
#112 RtTableDefault
#113 Special Table for /1
#114 blackholes table

#Copy local routes only from table main 254 to table 110
ip route show table 254 | grep -Ev ^default | grep -Ev ^blackhole | while read ROUTE ; do
MASK=`echo "${ROUTE}" | awk '{print $1}' | awk -F/ '{print $2}'`
if [ "$MASK" -ne 16 ] ; then
ip route add table 110 $ROUTE
fi
done

#First evaluate local routes
ip rule add from all lookup 110 pref 3

#Private routes to OLSR table
ip rule add to 10.0.0.0/8 table 111 pref 4
ip rule add to 172.16.0.0/12 table 111 pref 4
ip rule add to 192.168.0.0/16 table 111 pref 4

#Ninux IP Addresses to OLSR table
ip rule add to 176.62.53.0/24 table 111 pref 4

#Evaluate blackholes
ip rule add from all table 114 pref 5

#Send traffic of public addresses to BGP border routers
ip rule add from 176.62.53.0/24 table 113 pref 6

#Lookup default route first from user and then from OLSR
ip rule add from all lookup 254 pref 7
ip rule add from all lookup 112 pref 8

#Blackhole private aggregates
ip route add blackhole 10.0.0.0/8 table 114
ip route add blackhole 172.16.0.0/12 table 114
ip route add blackhole 192.168.0.0/16 table 114

#Blackhole Ninux aggregate
ip route add blackhole 176.62.53.0/24 table 114

exit 0

Per vedere la tabella di routing imparata via OLSR usa il comando

ip route show table 111

o in breve

ip r s t 111

per vedere la default imparata via OLSR è uguale ma la tabella è la 112

Esempio di configurazione come AP

TODO: fare IPv6

root@OpenWRT:~# cat /etc/config/network 

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '10.CAP.0.x'
        option netmask '255.255.255.0'
        option dns '10.11.12.13'

config interface backbone
        option ifname 'wlan0'
        option proto 'static'
        option ipaddr '172.16.CAP.x'
        option netmask '255.255.0.0'
        option dns '10.11.12.13'

config interface 'wan'
        option ifname 'eth1'
        option proto 'none'

root@OpenWRT:~# cat /etc/config/wireless 

config wifi-device 'radio0'
        option type 'mac80211'
        option channel '100'
        option distance '1000'  ###distanza link in metri
        option hwmode '11na'
        option macaddr '00:15:6d:8c:93:86'
        list ht_capab 'SHORT-GI-40'
        list ht_capab 'TX-STBC1'
        list ht_capab 'RX-STBC1'
        list ht_capab 'DSSS_CCK-40'
        option htmode 'HT40+'  ###Canale a 40 Mhz
        option noscan '1'

config wifi-iface
        option device 'radio0'
        option network 'backbone'
        option mode 'ap'
        option isolate '1'
        option ssid 'ninux.org'
        option encryption 'none'

Esempio Configurazione come STA

root@OpenWRT:~# cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0'
        option proto 'static'
        option ipaddr '10.CAP.x.y'
        option ip6addr '2001:4c00:893b:CAP::xxxx/64'
        option netmask '255.255.255.0'
        option dns '10.11.12.13'

config interface 'backbone'
        option ifname 'wlan0'
        option proto 'static'
        option ipaddr '172.16.CAP.x'
        option netmask '255.255.0.0'
        option ip6addr '2001:4c00:893b:1:CAP::x/128'

config interface 'wan'
        option ifname 'eth1'
        option proto 'none'

root@OpenWRT:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option hwmode '11na'
        option distance '1000'     ###Distanza in metri per ACK timeout,
        option macaddr '00:27:22:38:d0:f1' ###Non cambiare, è il mac della tua antenna
        list ht_capab 'SHORT-GI-40'
        list ht_capab 'TX-STBC'
        list ht_capab 'RX-STBC1'
        list ht_capab 'DSSS_CCK-40'
        option htmode 'HT40+'  ###Setta il canale a 40Mhz
        option noscan '1'

config wifi-iface
        option device 'radio0'
        option network 'backbone'
        option mode 'sta'  #STATION, non specificare channel
        option ssid 'ninux.org'
        option bssid 'aa:bb:cc:ee:ff' ###LOCK to this AP
        option encryption 'none'

root@OpenWRT:~#

Esempio di configurazione OLSR IPv4

root@OpenWRT:~# cat /etc/config/olsrd 

config olsrd
        option IpVersion '4'
        option RtTable '111'
        option RtTableDefault '112'

config LoadPlugin
        option library 'olsrd_arprefresh.so.0.1'

config LoadPlugin
        option library 'olsrd_nameservice.so.0.3'

config LoadPlugin
        option library 'olsrd_txtinfo.so.0.1'
        option accept '0.0.0.0'

config Interface
        list interface 'lan backbone'
        option speed '6'

config Hna4
        option netaddr '10.CAP.x.0'
        option netmask '255.255.255.0'

root@OpenWRT:~# 

Note sulla configurazione in WDS

Il problema: quando accendiamo WDS su OpenWrt AP, succede che se una station si associa all'AP OpenWrt usando la modalita' WDS, il kernel tira su una nuova interfaccia wlan0.staX. A livello radio sale tutto ma non si riesce a fare traffico IP con l'AP.

Soluzione: L'interfaccia logica wireless DEVE essere di TYPE BRIDGE.

In /etc/config/network si deve necessariamente avere l'interfaccia radio dentro un bridge:

network.backbone=interface
network.backbone.ifname=wlan0
network.backbone.type=bridge   <<<<<<<AGGIUNGERE
network.backbone.proto=static
network.backbone.ipaddr=172.16.184.2
network.backbone.ip6addr=2001:4c00:893b:1:184::2/128
network.backbone.netmask=255.255.0.0
network.backbone.dns=8.8.8.8

Dopo il reboot:

# brctl show
bridge name    bridge id        STP enabled    interfaces
br-backbone        8000.00156d1aed6e    no        wlan0 <<<<<<LA PRINCIPALE
                            wlan0.sta1 <<< INTERAFACCIA DEDICATA ALLA STAZIONE WDS

Ricordatevi anche di cambiare wlan0 in br-backbone nel file /etc/config/olsrd6.conf in quanto ora la vostra interfaccia con gli IP non si chiama piu' wlan0.

What to do Next

Una volta configurata la rete con l'accesso a Internet è comodo installare luci (l'interfaccia web per la configurazione di openwrt).

opkg update # update della lista dei pacchetti
opkg install luci 
opkg install luci-app-olsr # installare il modulo per la gestione di olsr
/etc/init.d/uhttpd start  # avviare il server web
/etc/init.d/uhttpd enable # abilitare il server web anche ai prossimi riavvii   

A questo punto dal tab Status->OLSR potete vedere lo stato di olsr, i vicini, le rotte ecc.

Rimuovere le chiavi pubbliche pre-installate:

Per rendere la manutenzione più semplice alcune chiavi pubbliche sono pre-installate nella release di Scooreggione. Questo significa che i developers di Scooreggione possono effettuare un login sulla vostra macchina via ssh anche se voi cambiate la password. Se volete disabilitare questa feature cancellate il file /etc/dropbear/authorized_keys

Features di Scoorreggione

  • Based on OpenWRT AA
  • tinc to 1.0.21
  • Implementing Routing operation inside the OLSR router as described in the Ninux Architecture

6olsr e 4olsr

Stampano il contenuto del txtinfo plugin di olsr

li potete usare anche con argomenti, esempio:

4olsr links
6olsr hna

Compilare

git clone git@github.com:ninuxorg/attitude_adjustment.git
cd attitude_adjustment
git checkout scooreggione
 ./scripts/feeds update && ./scripts/feeds install -a
git checkout .config
make