Home > Fonera > Compilatore per Fonera 2.0n (anche per Fonera2.0g) – installazione ed uso

Compilatore per Fonera 2.0n (anche per Fonera2.0g) – installazione ed uso

Come abbiamo già visto in precedenza la Fonera 2.0n porta in sè un cuore Linux, infatti il sistema operativo installato è Fon-ng che è stato sviluppato a partire da OpenWrt.

L’obiettivo di questo articolo è illustrarvi come sia possibile compilare delle immagini personalizzate del firmware o dei pacchetti aggiuntivi per la Fonera 2.0n da installare singolarmente.

Fonti:

Il processo di building

La compilazione dell’immagine di OpenWrt prevede le seguenti fasi:

  1. la generazione del compilatore: è necessario avere un compilatore capace di produrre codice eseguibile sulla piattaforma target;
  2. la generazione del toolchain: il compilatore da solo non basta, sono necessarie le librerie e i tool per la generazione dell’immagine;
  3. la generazione dei pacchetti software di base ed esterni: che possono essere integrati nel firmware oppure possono essere in forma di pacchetto ipkg da installare successivamente;
  4. la generazione dell’immagine con partizioni e filesystem.

Prerequisiti

E’ necessario avere una macchina linux su cui andremo ad installare il compilatore. Personalmente ho utilizzato una macchina virtuale con Ubuntu 10.04 sotto Virtualbox .

Sono necessari alcuni pacchetti al fine di installare l’ambiente di sviluppo fon-ng

Per sistemi Ubuntu

$ sudo aptitude install subversion g++ libdigest-crc-perl ncurses-dev zlib1g-dev gawk bison flex autoconf intltool-debian intltool

Per sistemi Debian

# apt-get install binutils cpp gcc libc6-dev linux-kernel-headers make zlib1g-dev ncurses-dev g++ gawk bison flex unzip bzip2 autoconf libdigest-crc-perl python subversion

Recupero Fonti


Avvertenze

E’ necessario disporre di notevole spazio su disco per accogliere i sorgenti e tutti i file generati al momento della compilazione. Considerare che sono circa 400MB di sorgenti (tra sistema base e feeds) ma nel building si arriva ad oltre 2GB
Inoltre non si può compilare da root, quindi usate un utente standard.

Per recuperare i sorgenti da svn Fonosfera create una cartella in una partizione in cui ci siano almeno 3 GB di spazio disponibile (personalmente suggerisco almeno 10GB).

Scaricare i sorgenti

Posizionatevi con il terminale nella cartella in cui volete installare il compilatore, ad esempio:

cd /home/FON/

ed eseguite il seguente comando:

$ svn co http://svn.fonosfera.org/fon-ng/trunk/

Questo creerà la cartella trunk in cui si trovano i sorgenti

Aggiornare ed installare FON feeds

OpenWrt adotta un’architettura per la compilazione del software simile a quella di *BSD o Gentoo. C’è un indice dei pacchetti disponibili che si preleva online, e per ogni pacchetto vengono forniti il makefile e le eventuali patch da applicare. Solo in fase di compilazione si scaricano i sorgenti veri e propri del pacchetto software – anche il sistema base e il toolchain funzionano così.

Dopo aver selezionato le opzioni per il target specifico (Fonera 2.0 o Fonera 2.0n), si ottiene un sistema minimale. Di solito però si ha bisogno di altro software non contenuto nell’ambiente di default. Per questo motivo si scaricano i feeds, dei pacchetti extra.

Tutte queste operazioni si possono eseguire manualmente, ma è meglio ricorrere agli script inclusi.

 $ cd trunk
 $ chmod +x install.sh
 $ ./install.sh

Menuconfig

$ cd openwrt
$ ./scripts/feeds update -a
$ make menuconfig

Selezionare come TARGET SYSTEM la Fonera 2.0n, quindi uscire e dare Yes per salvare (non serve modificare altri parametri)

APPROFONDIMENTI

Per cercare una parola chiave nell’interfaccia di menuconfig usa lo slash ‘/’.

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

  • <*>, il pacchetto viene incluso nell’immagine, ma viene creato in formato ipkg e posto nel repository;
  • <M>, il pacchetto non è inserito nel firmware: è un modulo, cioè viene creato solo in formato ipkg;
  • <N>, il pacchetto non verrà compilato.

Compilazione

La compilazione di una immagine è un processo lungo, e dipende molto dal vostro hardware su cui compilate e da ciò che è stato selezionato con make menuconfig per essere compilato.

Giusto per dare un’idea, si deve mettere in conto non meno di un ora e fino a cinque se si desidera compilare tutti i pacchetti OpenWRT.
La prima volta che si compila (e soltanto la prima) verranno scaricate automaticamente da internet diverse fonti aggiuntive, rendendo il processo ancora più lungo.

Compilare un’immagine

Il seguente commando avvierà la compilazione di un imagine del firmware contenente tutti I pacchetti che sono stati selezionati precedentemente con menuconfig

$ make V=99

V=99 questa opzione abilita l’output verboso. Questo può essere utile nel caso in cui ci sia qualche errore durante la compilazione, può infatti essere un valido aiuto per individuarlo.

Compilare una specifica applicazione come pacchetto

Se volete creare un singolo pacchetto ipk da installare poi sulla Fonera con il comando opkg install, invece di lanciare il lungo processo di creazione di un intera immagine è possibile eseguire la compilazione di un singolo pacchetto. I pacchetti si trovano nella cartella package

$ make package/name/{clean,compile,install} V=99 DEVELOPER=1

Sostituite name con il nome dell’applicazione che volete compilare, ad esempio amule.

Ad esempio per compilare il pacchetto di asterisk-gui:

$ make package/asterisk-gui/compile V=99 DEVELOPER=1

DEVELOPER=1 fa sì che il sistema di compilazione compili il pacchetto e le sue dipendenze, indipendentemente dal fatto che siano abilitati nel menuconfig.

File compilati

Troverete l’output della compilazione in:

  • le immagini si trovano in openwrt/bin:

loader.bin (solo Fonera 2.0g). Normalmente tale file non serve.
openwrt-fonera2.img o openwrt-fonera2n-squashfs.img

sono i file binary dell’immagine fon-ng. Contengono il rootfs e il kernel della Fonera 2.0 e possono essere scritti direttamente nella image partition.

Nota: prima del firmware 2.3.7.0 / r1710, il nome dei file immagine per la 2.0g era diverso ed erano generati degli ulteriori file.

  • i pacchetti si trovano in: openwrt/bin/packages/mips (per la Fonera 2.0g)openwrt/bin/packages/mipsel (per la Fonera 2.0n)

    Qui si trovano sia i pacchetti inclusi nella compilazione dell’immagine che quelli compilati come singolo pacchetto.

Annunci
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: