<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>FirmwareScooreggione</title><revhistory><revision><revnumber>38</revnumber><date>2016-12-20 21:27:33</date><authorinitials>tp-nat002.toppoint.de</authorinitials><revremark>double o typo</revremark></revision><revision><revnumber>37</revnumber><date>2014-12-01 12:19:03</date><authorinitials>BornAgain</authorinitials></revision><revision><revnumber>36</revnumber><date>2014-10-12 20:37:51</date><authorinitials>BornAgain</authorinitials></revision><revision><revnumber>35</revnumber><date>2014-05-19 18:52:48</date><authorinitials>BornAgain</authorinitials><revremark>corretta parola che punta a pagina inesistente</revremark></revision><revision><revnumber>34</revnumber><date>2014-05-17 21:41:43</date><authorinitials>ZioPRoTo</authorinitials><revremark>updating links for Scooreggione V5</revremark></revision><revision><revnumber>33</revnumber><date>2014-04-30 16:31:10</date><authorinitials>ClauzClauz</authorinitials></revision><revision><revnumber>32</revnumber><date>2014-04-14 23:14:22</date><authorinitials>2001:4c00:893b:fab5:1:0:9:67</authorinitials></revision><revision><revnumber>31</revnumber><date>2014-04-13 08:48:39</date><authorinitials>2001:4c00:893b:fab5:1:0:9:67</authorinitials></revision><revision><revnumber>30</revnumber><date>2014-04-04 15:44:17</date><authorinitials>ZioPRoTo</authorinitials><revremark>non serve su questo firmware</revremark></revision><revision><revnumber>29</revnumber><date>2014-04-04 15:34:08</date><authorinitials>BornAgain</authorinitials></revision><revision><revnumber>28</revnumber><date>2014-03-25 10:06:28</date><authorinitials>ClauzClauz</authorinitials><revremark>bonifica degli 8.8.8.8</revremark></revision><revision><revnumber>27</revnumber><date>2013-06-27 21:21:44</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>26</revnumber><date>2013-06-27 21:16:04</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>25</revnumber><date>2013-06-22 09:00:47</date><authorinitials>host114-234-dynamic.21-87-r.retail.telecomitalia.it</authorinitials><revremark>checkout branch scooreggione - aggiornamento dopo figura di m by _n355_1</revremark></revision><revision><revnumber>24</revnumber><date>2013-06-22 08:50:08</date><authorinitials>host114-234-dynamic.21-87-r.retail.telecomitalia.it</authorinitials><revremark>Aggiunto checkout del branch scoreggione</revremark></revision><revision><revnumber>23</revnumber><date>2013-06-21 21:02:57</date><authorinitials>host114-234-dynamic.21-87-r.retail.telecomitalia.it</authorinitials><revremark>Aggiornato il nome del branch corrente del firmware ninux by _n355_1</revremark></revision><revision><revnumber>22</revnumber><date>2013-05-16 21:58:32</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>21</revnumber><date>2013-05-16 21:57:53</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>20</revnumber><date>2013-05-16 21:56:13</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>19</revnumber><date>2013-05-16 21:54:54</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>18</revnumber><date>2013-05-16 21:54:22</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>17</revnumber><date>2013-05-16 21:53:19</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>16</revnumber><date>2013-05-16 21:52:23</date><authorinitials>2001:4c00:893b:f2:76e5:bff:fe03:b74c</authorinitials></revision><revision><revnumber>15</revnumber><date>2013-05-13 08:45:32</date><authorinitials>dynamic-adsl-94-34-151-163.clienti.tiscali.it</authorinitials></revision><revision><revnumber>14</revnumber><date>2013-05-10 20:19:18</date><authorinitials>91-102-9-98.ipberlin.com</authorinitials><revremark>Aggiornamento v4</revremark></revision><revision><revnumber>13</revnumber><date>2013-05-04 10:26:26</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>12</revnumber><date>2013-04-29 18:04:55</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>11</revnumber><date>2013-04-29 08:47:45</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>10</revnumber><date>2013-04-29 08:44:45</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>9</revnumber><date>2013-04-29 00:23:28</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>8</revnumber><date>2013-04-29 00:18:21</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>7</revnumber><date>2013-04-29 00:01:42</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>6</revnumber><date>2013-04-28 23:57:52</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>5</revnumber><date>2013-04-28 23:49:39</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>4</revnumber><date>2013-04-28 18:29:21</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>3</revnumber><date>2013-04-28 18:25:41</date><authorinitials>ZioPRoTo</authorinitials></revision><revision><revnumber>2</revnumber><date>2013-04-28 18:25:05</date><authorinitials>ZioPRoTo</authorinitials><revremark>aggiunto esempio di config come STA</revremark></revision><revision><revnumber>1</revnumber><date>2013-04-28 18:09:49</date><authorinitials>ZioPRoTo</authorinitials><revremark>flashare scooreggione</revremark></revision></revhistory></articleinfo><section><title>OpenWRT firmware ninux.org (Codename :prrrr!!!)</title></section><section><title>Introduzione</title><para>Il nuovo firmware è basato sulla versione Attitude Adjustment di OpenWRT. I sorgenti sono disponibili sul seguente repository: </para><para><ulink url="https://github.com/ninuxorg/attitude_adjustment"/> </para><para>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: </para><screen><![CDATA[git clone https://github.com/ninuxorg/attitude_adjustment
cd attitude_adjustment && git checkout scooreggione
git diff -C master scooreggione --stat=1000,1000]]></screen></section><section><title>Aggiornare da un precedente AirOS o Sburratone</title><para>0) Entrare in SSH sul device </para><para>1) Fai un backup di tutte le tue config in <code> /etc/persistent </code> e del file <code>/tmp/running.cfg</code> magari ti serve per il futuro. Segnati il canale configuarato e la potenza usata. </para><para>2) Mettersi nella cartella tmp </para><para><code> cd /tmp/ </code> </para><para>3) Scaricare il firmware con il comando wget </para><para><code> wget http://URLFIRMWARE -O /tmp/fwupdate.bin </code> </para><para>dove URL FIRMWARE è una di queste a seconda del device che devi flashare: <ulink url="http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v5/"/> dovete scegliere l'immagine con la dicitura <emphasis role="strong">factory</emphasis> nel nome. </para><para>Nota: per la AirGrid e la !Nanobridge si deve prendere l'immagine della Bullet </para><para>4) Controllare l'MD5 per vedere il firmware è valido o corrotto  </para><para><code> md5sum /tmp/fwupdate.bin </code> </para><para>deve venire il risultato giusto che trovi in questo file: </para><para><ulink url="http://stud.netgroup.uniroma2.it/~saverio/scooreggione-AA-v5/md5sums"/> </para><para>5) Se il risultato MD5 è corretto lanciare il seguente comando per aggiornare: </para><para><code> /sbin/ubntbox fwupdate.real -m /tmp/fwupdate.bin -d</code> </para><para>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. </para><para>7) DA AGGIUGERE INFO############################ ping6 ff02::1%eth0 </para><para>ip n s|grep eth0 </para><para>oppure alias ipv4 </para><para>ip a a 192.168.1.10/24 dev eth0 </para></section><section><title>Aggiornamento da una versione precedente di Scooreggione o OpenWRT</title><para>Potete usare l'immagine con scritto nel nome <emphasis role="strong">sysupgrade</emphasis> ed usare il tool sysupgrade di OpenWRT <ulink url="http://wiki.openwrt.org/doc/howto/generic.sysupgrade"/> </para><para>A partire da <code>Scooreggione-AA-v3</code> dopo il flash vengono fatte delle autoconfigurazioni. Se state facendo un upgrade ed avete la config già fatta, prima del sysupgrade scrivete <code>1</code> in questo file. </para><screen><![CDATA[echo 1 > /etc/config/ninux]]></screen><para>Leggendo questo <code>1</code> scooreggione capisce che il device è già configurato e non tocca la configurazione durante l'upgrade. </para><para>La configurazione viene mantenuta con l'upgrade, ma alcuni servizi vengono disabilitati: </para><para>* DHCP server * nodogsplash * Polipo * qos </para><para>Dopo il sysupgrade fate ripartire i servizi che vi servono, esempio: </para><screen><![CDATA[/etc/init.d/dhcp start
/etc/init.d/dhcp enable]]></screen></section><section><title>Importante nota sul flash di Scooreggione</title><para><emphasis role="strong">A partire da scooreggione-AA-v3 non c'è piu bisogno di questo reboot</emphasis> </para><para>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. </para><para>appena flashato se fate  <code>iw list | grep MHz</code> vedrete una lista di canali possibili, che potrebbe essere incompleta </para><para>prima di fare il primo reboot date al device il tempo di fare il boot completamente (circa 1 minuto), basta vede col comando <code>ps</code> che non ci siamo script di boot ancora in esecuzione, oppure con il comando <code>uptime</code> assicuratevi che il sistema sia up da almeno 2 minuti. </para><para>dopo il primo reboot se ripetete il comando <code>iw list | grep MHz</code> vedrete che adesso i corretti canali sono utilizzabili sul firmware scooreggione </para></section><section><title>Comandi utili</title><para>Per vedere se avete station associate al vostro AP, o se siete station e volete capire se vi siete associati, scrivete: </para><screen><![CDATA[iw wlan0 station dump]]></screen><para>se volete vederlo aggiornato ogni 2 secondi (ad esempio per fare un puntamento: </para><screen><![CDATA[watch iw wlan0 station dump]]></screen><para>Per vedere i livelli di potenza in fase di puntamento: </para><screen><![CDATA[watch iw wlan0 station dump|grep "signal avg"]]></screen><para>se cambiate una config in <code>/etc/config/wireless</code> basta dare il comando <code>wifi</code> per applicare la nuova config </para><para>E' bene leggere questa documentazione: <ulink url="http://wiki.openwrt.org/doc/uci/wireless"/> </para></section><section><title>Policy Routing</title><para>Questo firmware si fa uso di policy routing. Al boot OLSR viene configurato automaticamente per usare queste tabelle </para><screen><![CDATA[RtTable 111
RtTableDefault 112]]></screen><para>E dentro il tuo <code>/etc/rc.local</code> ha questi comandi: </para><screen><![CDATA[#110 Local routes
#111 RtTable
#112 RtTableDefault
#113 Special Table for /1
#114 blackholes table
]]><![CDATA[
#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
]]><![CDATA[
#First evaluate local routes
ip rule add from all lookup 110 pref 3
]]><![CDATA[
#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
]]><![CDATA[
#Ninux IP Addresses to OLSR table
ip rule add to 176.62.53.0/24 table 111 pref 4
]]><![CDATA[
#Evaluate blackholes
ip rule add from all table 114 pref 5
]]><![CDATA[
#Send traffic of public addresses to BGP border routers
ip rule add from 176.62.53.0/24 table 113 pref 6
]]><![CDATA[
#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
]]><![CDATA[
#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
]]><![CDATA[
#Blackhole Ninux aggregate
ip route add blackhole 176.62.53.0/24 table 114
]]><![CDATA[
exit 0]]></screen><para>Per vedere la tabella di routing imparata via OLSR usa il comando </para><screen><![CDATA[ip route show table 111]]></screen><para>o in breve </para><screen><![CDATA[ip r s t 111]]></screen><para>per vedere la default imparata via OLSR è uguale ma la tabella è la <code>112</code> </para></section><section><title>Esempio di configurazione come AP</title><para>TODO: fare IPv6 </para><screen><![CDATA[root@OpenWRT:~# cat /etc/config/network 
]]><![CDATA[
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
]]><![CDATA[
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'
]]><![CDATA[
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'
]]><![CDATA[
config interface 'wan'
        option ifname 'eth1'
        option proto 'none'
]]><![CDATA[
root@OpenWRT:~# cat /etc/config/wireless 
]]><![CDATA[
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'
]]><![CDATA[
config wifi-iface
        option device 'radio0'
        option network 'backbone'
        option mode 'ap'
        option isolate '1'
        option ssid 'ninux.org'
        option encryption 'none']]></screen></section><section><title>Esempio Configurazione come STA</title><screen><![CDATA[root@OpenWRT:~# cat /etc/config/network
]]><![CDATA[
config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'
]]><![CDATA[
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'
]]><![CDATA[
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'
]]><![CDATA[
config interface 'wan'
        option ifname 'eth1'
        option proto 'none'
]]><![CDATA[
root@OpenWRT:~# cat /etc/config/wireless
]]><![CDATA[
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'
]]><![CDATA[
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'
]]><![CDATA[
root@OpenWRT:~#]]></screen></section><section><title>Esempio Configurazione come AP-STA contemporaneo</title><para>Se si vuole far fare alla stessa radio sia da Access Point che Station in contemporanea (dimezzando naturalmente la capienza di banda) .. fate riferimento a questa email  </para><para><ulink url="http://www.mail-archive.com/wireless%40ml.ninux.org/msg11762.html"/> </para></section><section><title>Esempio di configurazione OLSR IPv4</title><screen><![CDATA[root@OpenWRT:~# cat /etc/config/olsrd 
]]><![CDATA[
config olsrd
        option IpVersion '4'
        option RtTable '111'
        option RtTableDefault '112'
]]><![CDATA[
config LoadPlugin
        option library 'olsrd_arprefresh.so.0.1'
]]><![CDATA[
config LoadPlugin
        option library 'olsrd_nameservice.so.0.3'
]]><![CDATA[
config LoadPlugin
        option library 'olsrd_txtinfo.so.0.1'
        option accept '0.0.0.0'
]]><![CDATA[
config Interface
        list interface 'lan backbone'
        option speed '6'
]]><![CDATA[
config Hna4
        option netaddr '10.CAP.x.0'
        option netmask '255.255.255.0'
]]><![CDATA[
root@OpenWRT:~# ]]></screen></section><section><title>Note sulla configurazione in WDS</title><para>Il problema: quando accendiamo WDS su <ulink url="http://ninux.org/FirmwareScooreggione/OpenWrt#">OpenWrt</ulink> AP, succede che se una station si associa all'AP <ulink url="http://ninux.org/FirmwareScooreggione/OpenWrt#">OpenWrt</ulink> 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. </para><para>Soluzione: L'interfaccia logica wireless DEVE essere di TYPE BRIDGE. </para><para>In /etc/config/network si deve necessariamente avere l'interfaccia radio dentro un bridge: </para><screen><![CDATA[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]]></screen><para>Dopo il reboot: </para><screen><![CDATA[# brctl show
bridge name    bridge id        STP enabled    interfaces
br-backbone        8000.00156d1aed6e    no        wlan0 <<<<<<LA PRINCIPALE
                            wlan0.sta1 <<< INTERAFACCIA DEDICATA ALLA STAZIONE WDS]]></screen><para>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. </para></section><section><title>What to do Next</title><para>Una volta configurata la rete con l'accesso a Internet è comodo installare luci (l'interfaccia web per la configurazione di openwrt).  </para><screen><![CDATA[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   ]]></screen><para>A questo punto dal tab Status-&gt;OLSR potete vedere lo stato di olsr, i vicini, le rotte ecc. </para><para><emphasis role="strong">Rimuovere le chiavi pubbliche pre-installate:</emphasis> </para><para>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 <emphasis>/etc/dropbear/authorized_keys</emphasis> </para></section><section><title>Features di Scoorreggione</title><itemizedlist><listitem><para>Based on OpenWRT AA </para></listitem><listitem><para>tinc to 1.0.21 </para></listitem><listitem><para>Implementing Routing operation inside the OLSR router as described in the Ninux Architecture  </para></listitem></itemizedlist><section><title>6olsr e 4olsr</title><para>Stampano il contenuto del txtinfo plugin di olsr </para><para>li potete usare anche con argomenti, esempio: </para><screen><![CDATA[4olsr links
6olsr hna]]></screen></section></section><section><title>Compilare</title><screen><![CDATA[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]]></screen></section></article>