Le seguenti 235 parole non sono state trovate nel dizionario di 1275 termini (includendo 1275 LocalSpellingWords) e sono evidenziate qui sotto:
accedere   adatto   adesso   adhoc   adotta   Aggiornate   aggiungendo   aggiunto   Air   alla   altri   altro   appena   applicare   architettura   aver   Backfire   backfire   basta   basterà   bin   binario   bisogno   Bridge   bug   Build   build   bypassare   bz2   cartela   cartella   cd   cercate   check   cioè   clean   commentare   compilare   compilarsi   compilasse   compilato   compilazione   Compilazione   compile   conf   confermando   conseguenza   contenuto   controllato   creare   creata   creato   Creiamo   dagli   dare   date   default   dell   dependency   deployando   Development   differente   dipendenze   disponibili   disposizione   dobbiamo   Dopo   dove   dovrebbe   dovreste   downloads   durante   echo   ed   effetti   errore   errori   esempio   esigenze   etc   eventuali   extra   failed   feed   feeds   file   Firmware   firmware   firmwares   formato   forzare   fosse   fossero   fuori   fw   genere   Gentoo   guida   hanno   ignorare   immagine   include   includere   incluso   indice   inserito   Installatelo   intero   ip   kernel   Kit   lanciare   links   lo   M5   make   Makefile   makemenuconfig   me   menu   menuconfig   mette   minimale   mk   mkdir   modificato   modo   moduli   motivo   Nano   Nanostation   necessari   necessario   necessità   nell   nemesys   nostra   nostre   nostro   nuovi   ogni   openwrt   opkg   opportunamente   Os   otterrebbe   override   package   packages   patch   però   piccolo   Please   png   poi   possiamo   posto   potreste   prereq   Prerequisite   presente   principale   procedere   propri   proria   Pv6   Qualora   quelli   repository   ricompilare   ridare   riga   rigenerare   rilanciate   riscontrare   ritrovarvi   Rocket   root   salvare   salvate   salvato   scaricabile   scaricano   scaricato   scarichiamo   schermata   scompattato   scompattiamolo   scripts   selezionabili   selezionare   selezionati   selezionato   semplicemente   sempre   senza   serie   siete   simile   singoli   solito   spesso   src   stati   stato   stiamo   sviluppatori   svn   tar   target   tasto   tinc   tmp   tmpimages   to   trovare   Ubiquiti   Ubnt   ubnt   update   uscendo   Use   utilizzano   utilizzeremo   v5   v53   vedere   verificate   vi   voler   volessimo   volete   vuole   wget   Wrt  

Nascondi questo messaggio
Italiano English
Modifica History Actions

CompilareAirOS

Introduzione

Dato che nella nostra rete stiamo deployando alcuni links con apparati Ubiquiti con AirOS spesso c'è la necessità di aggiungere "funzionalità" a questo Firmware. AirOs non è altro che un "OpenWRT" opportunamente modificato dagli sviluppatori Ubiquiti che hanno aggiunto dei propri pacchetti. Quindi per compilare e generare un nuovo firmware adatto alle nostre esigenze è semplicemente necessario aggiungere i pacchetti all'SDK e ricompilare. :-)

SDK (Software Development Kit)

Ubiquiti mette a disposizione di chi vuole compilarsi la proria versione di AirOS il proprio SDK.

Per ogni apparato ci sarà un SDK differente, ma in genere gli apparati Ubnt della stessa "serie" utilizzano lo stesso SDK.

In questa guida utilizzeremo l'SDK per gli apparati "M" (Nanostation M5, Rocket M, NanoBridge M, etc..) scaricabile da http://www.ubnt.com/downloads/firmwares/XN-fw/v5.3/SDK.UBNT.v5.3.tar.bz2

Compilazione Firmware

Creiamo una cartella adhoc per la compilazione

mkdir ubnt

cd ubnt

scarichiamo l'SDK e scompattiamolo nella cartella appena creata :

wget http://www.ubnt.com/downloads/firmwares/XN-fw/v5.3/SDK.UBNT.v5.3.tar.bz2

una volta scompattato verrà creata una cartella con il nome del file scaricato (SDK.ubnt.v53 nel nostro caso) con all'intero la cartella openwrt.

OpenWrt (e di conseguenza AirOS) adotta un'architettura per la compilazione del software simile a quella di Gentoo. Per ogni pacchetto c'è un Makefile ed eventuali patch da applicare.

Dopo aver selezionato il nostro target, se si compilasse senza selezionare altri pacchetti si otterrebbe un sistema minimale. Di solito però si ha bisogno di altro software non contenuto nell'ambiente di default (come nel caso dell'AirOS per tinc, ip, opkg e IPv6). Per questo motivo si scaricano i feeds dei pacchetti extra.

Quindi per creare un nuovo firmware con i feeds dei pacchetti già presenti in !AirOS è semplicemente necessario accedere alla cartella openwrt e dare il comando make menuconfig e selezionare i pacchetti necessari. Quindi:

cd SDK.UBNT.v5.3

cd openwrt

make menuconfig

Dopo aver controllato tutte le dipendenze dovreste ritrovarvi in una schermata come questa

N.B. se siete root vi verrà fuori questo errore:

Build dependency: Please do not compile as root.
Prerequisite check failed. Use FORCE=1 to override.

make: *** [tmp/.prereq-build] Error 1

per forzare la compilazione date:

make menuconfig FORCE=1

A questo punto basterà selezionare i pacchetti da includere nel nuovo firmware e salvare semplicemente uscendo con il tasto ESC e confermando di voler salvare il nuovo file di configurazione.

Come per il kernel, i pacchetti si possono trovare in tre stati [*/M/N]:

  • <*>, il pacchetto viene incluso nell'immagine, ma viene creato in formato opkg e posto nel repository;

  • <M>, il pacchetto non è inserito nel firmware: è un modulo, cioè viene creato solo in formato opkg;

  • <N>, il pacchetto non verrà compilato;

Aggiungere nuovi pacchetti

Se volessimo invece aggiungere nuovi pacchetti selezionabili al nostro firmware dobbiamo procedere in questo modo:

Se ad esempio volessimo aggiungere al nostro menu tutti i pacchetti disponibili in OpenWRT Backfire basta procedere in questo modo aggiungendo il repository dei package di openwrt backfire com src-svn:

cd openwrt
echo "src-svn packages svn://svn.openwrt.org/openwrt/packages" > feeds.conf.default
./scripts/feeds update
./scripts/feeds install -a
make menuconfig

ATTENZIONE:
IN QUESTO MODO SI CANCELLA IL CONTENUTO DEL FILE FEEDS.CONF.DEFAULT SE SI VOLESSE FARE UN APPEND BASTA INSERIRE UN ">>" AL POSTO DEL ">" NEL SECONDO COMANDO!!

Come possiamo vedere adesso i pacchetti selezionabili sono tutti quelli presenti in OpenWRT.

Una volta selezionati i pacchetti e salvato il nuovo file di configurazione è sufficiente dare

make

per compilare tutto.

N.B. Anche in questo caso potreste riscontrare l'errore:

Build dependency: Please do not compile as root.

Prerequisite check failed. Use FORCE=1 to override.

make: *** [tmp/.prereq-build] Error 1

in questo caso, per un piccolo bug (in effetti non si dovrebbe compilare da root!! ;-) ), non è possibile forzare la compilazione. Per bypassare tutto questo basta procedere in questo modo:

vi include/prereq-build.mk

e commentare la riga 15:

#        [ "$$(shell whoami)" != "root" ]

salvate e rilanciate la compilazione.

Se volete ignorare gli errori che vi vengono fuori per i moduli (quelli selezionati con <M>) durante la compilazione basta dare:

$ make IGNORE_ERRORS=m

Invece per compilare il pacchetto selezionato con <M> poi basta lanciare (sempre dalla directory principale) il comando

make package/NOMEPACCHETTO-compile

Quando la compilazione sarà terminata verrà creata una cartela bin/ dove saranno presente il binario (e la cartella packages) necessario per il nostro apparato.

Installare singoli pacchetti

Come detto in precedenza per compilare un pacchetto che il feed del pacchetto sia presente e che sia stato selezionato con Y o M

Se queste due condizioni sono verificate basta procedere in questo modo:

Aggiornate l'indice dei pacchetti con:

  • $ ./scripts/feeds update
    • cercate il pacchetto con
    $ ./scripts/feeds search [nome_pacchetto]

Installatelo con:

  • $ ./scripts/feeds install [nome_pacchetto]
  • Qualora ci fosse la necessità di includere i pacchetti nell'immagine (come se fossero stati selezionati con <Y> con make menuconfig) si deve ridare il make nella cartella principale per rigenerare il nuovo firmware.

Se non si ha questa necessità è sufficiente dare

  • $ make package/<nome_pacchetto>-clean V=99
    $ make package/<nome_pacchetto>-compile V=99