Flashing

Da EigenWiki.
Versione del 3 feb 2014 alle 11:51 di Svalo (discussione | contributi) (Aggiunte webui e ssh)
Vai alla navigazione Vai alla ricerca

EigenNet e' un firmware per reti comunitarie basato su OpenWrt, per soddisfare le esigenze di tante comunita' viene sviluppato in diversi branch di cui i principali sono:

* master - ramo di sviluppo instabile, attualmente usa batman-adv per la costruzione della rete mesh a layer 2.
* pisa - branch adatto alle esigenze della comunita' di Pisa, e' basato su commit stabili di master.
* roma - ramo sviluppato da arkanet per la comunita' di Roma basato su master ma usa OLSRd per il routing a layer 3.

Compilare il firmware

Il codice è disponibile su gitorious.org, un sito di hosting per progetti opensource. Per ottenerlo si deve usare git.

WARNING: Questa guida è stata testata solo su antenne Ubiquiti e con sistemi operativi Linux. I comandi usati vengono digitati in un emulatore di terminale,tipicamente si trova in Menu->Accessori->Terminale

WARNING: Per avere una conoscenza di base dei termini usati si rimanda alle pagine Glossario e HowToRete

Ottenere il codice

Scegliere la release di OpenWrt da usare, raccomandiamo di usare Attitude Adjustement (12,04).

Vengono descritti i passi anche per antenne che usano driver madwifi anche se si tratta di antenne abbastanza vecchie e le antenne acquistate recentemente (circa dopo il 2012) avranno quasi di sicuro una scheda wireless che usa ath9k.

Configurazione

  • Aggiungere il feed dei sorgenti di eigenNet ( sostituire "CartellaOpenWRT" e "NomeBranch" con i nomi veri ). Questo serve per avere i pacchetti sviluppati appositamente per la rete.
    ''Dopo aver digitato git clone.....''
    cd CartellaOpenWRT
    cp feeds.conf.default feeds.conf
    echo 'src-git zzzeigennet git://gitorious.org/eigennet/packages.git;NomeBranch' >> feeds.conf
    scripts/feeds update -a
    scripts/feeds install -a
    
  • Scegliere le proprie impostazioni di compilazione (i pacchetti di eigenNet si trovano sotto il menu' "Administration" )
    make menuconfig

    Questo comando aprirà un'interfaccia semi-grafica che permette di configurare l'immagine per l'antenna. La selezione è fatta usando lo spazio (nei campi dove possibile (M) indica la compilazione come modulo, ciò comporta che il componente è dinamicamente caricato all'occorrenza mentre (*)Indica che il componente è sempre disponibile.

    • Per prima cosa bisogna scegliere l'architettura: Per farlo bisogna entrare nella prima voce di menu se non siete sicuri dell'architettura ed avete comprato l'antenna da entro il 2012 potete tranquillamente selezionare
       (X) Atheros AR7xxx/AR9xxx

      Altrimenti per antenne più anziane selezionate

       (X) Atheros AR231x/AR5312
    • Nella sezione eigennet si possono scegliere diversi tool, sia grafici che WebUI (interfaccia web) per la gestione della rete, dai test di banda ai puntamenti.
       Location:
      -> Administration
      --> eigennet
      

      Qui avrete diverse scelte con le relative descrizioni:

      <*> eigennet-autoconf.................................... Auto Config Package
      --- eigennet-bwtest............................... Bandwidth Measurement Tool
      <*> eigennet-bwtest-webui........... Bandwidth Measurement Tool Web Interface
      < > eigennet-firewall....................................... Layer 2 Firewall
      < > eigennet-gw4server.................................. IPv4 Gateway Checker
      < > eigennet-httpinfo.......................... Export info via HTTP protocol
      < > eigennet-pointing................................. Antenna Pointing Tools
      < > eigennet-pointing-webui............. Antenna pointing tools Web Interface
      <*> eigennet-reghack.............................. Regulatory domain unlocker
      

      Se una voce è segnata con --- vuol dire che è stata selezionata da un'altro pacchetto, in questo caso bwtest-webui necessita di bwtest che viene automaticamente selezionato. Il pacchetto fondamentale è eigennet-autoconf che farà la magia di configurare l'antenna. Il resto è opzionale e dipende dal caso specifico

    • Per avere i test di banda si deve abilitare nella sezione
       
      ->Base System
      -->Bysybox
      --->Networking Utilities
      ---->nc 
      ----->[*]   Netcat server options (-l)
      

      Che serve per avere la flag -l (listen) su netcat

  • Per sicurezza controllare che in
    Location:
    -> Kernel modules
    -> Network Support
    --- kmod-batman-adv......................................... B.A.T.M.A.N. Adv
    [ ]   enable verbose debug logging
    [*]   enable bridge loop avoidance
    [*]   enable distributed arp table
    [*]   enable network coding [requires promisc mode support]
    [*]   enable batctl
    

    Le voci siano selezionate come da esempio.

  • Una volta finito di configurare bisogna uscire premendo il tasto <Esc> fino a risalire tutti i menu ed arrivare al dialogo
    Do you wish to save your new OpenWrt configuration?
  • Salvare

Compilare

Per compilare il firmware si può passare al comando

make 

Anche l'opzione -j <numero di core fisici +1> per parallelizzare la compilazione e velocizzarla.

Validazione dell'immagine

Per evitare di brikkare l'antenna (ovvero renderla un mattone buono solo per i muretti) bisogna verificare che le immagini siano state ottenute correttamente. Questo è utile sopratutto quando si scaricano via web.

Per controllare l'integrità delle immagini si usa l'md5sum che è una stringa che identifica inequivocabilmente un file, è ricavata da esso attraverso il calcolo dell' hash. Posizionatevi nella cartella delle immagini e date il seguente comando

cat md5sums | grep $(md5sum <nome del file immagine> |cut -d' ' -f1)

Se il comando da come output per esempio

blacksmith@efesto bin/ar71xx $ cat md5sums | grep $(md5sum openwrt-ar71xx-generic-ubnt-nano-m-squashfs-sysupgrade.bin|cut -d' ' -f1)
d87a2d913951baed3709022d5575242a *openwrt-ar71xx-generic-ubnt-nano-m-squashfs-sysupgrade.bin

Allora il file è corretto e potete procedere altrimenti riscaricatelo.

Flashing

Prendere l'immagine che ci serve dentro la cartella bin

cd CartellaOpenWRT/bin/
  • In caso di driver ath9k
cd ar71xx
  • In caso di driver madwifi
cd atheros

L'immagine da usare dipende dal modello dell'antenna, tipicamente sarà un'antenna di Ubiquiti, [qui] la tabella delle antenne coi relativi articoli, in ogni articolo è scritta l'immagine da usare. NON usare l'immagine con la dicitura jffs2 a meno che non sappiate cosa state facendo.

Nel caso di primo flashing allora bisognerà usare l'immagine con la dicitura factory altrimenti andrà scelta quella con la dicitura sysupgrade.

A seconda del metodo scelto per il flashing si dovrà procedere in diversi modi:

Metodo WebUI

Le antenne Ubiquiti hanno installato airOs, un firmware proprietario di Ubiquiti che recentemente ha reso più difficile la personalizzazione dello stesso. Da sempre usiamo OpenWRT per le nostre immagini essendo un progetto OpenSource

Vediamo come usare l'interfaccia web per installare OpenWRT:

  • Collegare l'antenna al POE inserendo il cavo ethernet nella porta POE
  • Collegare il POE al computer usando un cavo ethernet inserendolo nella porta LAN
  • Attaccare il cavo della corrente
  • Aprire un browser all'indirizzo 192.168.1.21 autenticarsi con il login di default scritto sulla scatola, dovrebbero essere
user: ubnt
password: ubnt
  • Nella tab System sezione Device Maintenance premere su Update e caricare l'immagine del firmware factory dopo aver verificato l'md5sum
  • Attendere il riavvio

Metodo TFTP

Per il sysupgrade è meglio usare Flashing#Metodo_SSH Questo metodo consiste nell'inserire nell'antenna messa in una modalità particolare l'immagine del firmware e lasciare che l'antenna si scriva da sola.

Praparazione

  • Prendere l'antenna e collegare il POE (il parallelepipedo nero che si attacca alla corrente) alla corrente, collegare il cavo ethernet al computer ed inserirlo nella porta con scritto LAN del POE.
  • Inserire il cavo ethernet nell'antenna ma NO==== Metodo WebUI (solo per factory) ====N nel POE
  • Accanto alla porta ethernet sull'antenna c'è un piccolo foro con un pulsantino non visibile dall'esterno, con l'aiuto di una graffetta premere il pulsantino.
  • Tenendo premuto il pulsantino connettere il cavo ethernet dell'antenna alla porta POE e aspettare, dopo pochi secondi l'antenna inizierà ad emettere una sequenza di luci che si riperterà. Adesso l'antenna è in Recovery Mode
  • L'antenna adesso risponde all'IP 192.168.1.21
  • Posizionatevi nella cartella che contiene l'immagine e controllate l'md5sum

In un terminale digitate:

tftp 192.168.1.21
verbose
binary
put <nome dell' immagine>

Attendere che l'antenna si riavvii 3-4 volte. Quando l'antenna smetterà di riavviarsi e i led non cambieranno in continuazione avrete finito.

Metodo SSH

Solo per sysupgrade

  • Aprire un terminale
  • Entrare nella cartella delle immagini
  • Validare l'immagine
  • Caricare l'immagine sull'antenna con scp
scp <immagine validata> root@[<ipv6 locale dell'antenna>%<interfaccia di rete>]:/tmp
  • Entrare nell'antenna con
ssh root@<ipv6 locale dell'antenna>%<interfaccia di rete>
  • Dare il comando
sysupgrade /tmp/<nome immagine>

Solitamente bisogna passare anche il parametro -n in modo che non salvi le configurazioni precedenti.

Ottenere l'ipv6 locale dell'antenna

Per avere l'ipv6 locale e poter entrare in ssh nella vostra antenna digitate:

ping6 ff02::1%<nome dell'interfaccia di rete>

Escludete il vostro ipv6 link locale, se non lo conoscete digitate

ip -6 a s <nome dell'interfaccia di rete>

E guardate quello che comincia con fe80::

Per esempio

blacksmith@efesto bin/ar71xx $ ip -6 a s eth0
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2a00:1508:1:f010::3350/64 scope global 
valid_lft forever preferred_lft forever
inet6 fe80::49ff:fef8:2148/64 scope link

Quello scritto in grassetto è il vostro ipv6 locale.

Per usarlo dovete usare la forma <ipv6 link local>%<interfaccia di rete>

fe80::49ff:fef8:2148%eth0

Per sicurezza controllate che il MAC address dell'antenna e l'ipv6 dell'antenna abbiamo alcune ultime cifre in comune. Segnate da una parte l'ipv6 dell'antenna.