Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
L’opzione “ TG T ER ” per-
mette di creare una conessione di rete virtuale
dal sistema GNU/Linux host alla board virtuale
tramite la porta 8080, mentre con “ R ”
diciamo al kernel di assegnare l’indirizzo IP
10.0.2.15 alla prima interfaccia di rete rilevata.
Una volta partita la board virtuale, il nostro ker-
nel e la nostra applicazione user-space possia-
mo testare l’echo server lanciando il comando
seguente sul sistema host:
UGI Q N N PM RGT CEEG GTG TG COGP G CNN CT EQNQ U N NQI G RCT GE RCTG CNNC UE UU QPG
http://it.emcelettronica.com/embedded-gnulinux-partendo-da-zero-preparazione-del-root- lesystem
PE GG G /L U GR G UR
, U LR
, WURG LR H ded. Difatti praticamente tutte le note piattafor-
N
elle puntate precedenti (http:// me embedded Linux-based utilizzano BusyBox
it.emcelettronica.com/embedded -gnuli- (evaluation board, ricevitori, dispositivi mobile
nux-partendo-da-zero-ricompil... e http:// come tablet, smartphone, etc. anche Android!).
it.emcelettronica.com/embedded-gnulinux-par- Vediamo di seguito i passi necessari per inte-
tendo-da-zero-preparaz...) abbiamo analizzato grare BusyBox nel nostro sistema.
rispettivamente la ricompilazione del kernel e Per prima cosa possiamo reperire i sorgenti di-
la preparazione di un root lesystem minimale rettamente dal repository git di BusyBox:
usando l’initramfs.
In questa puntata vedremo come completare il $ git clone git://busybox.net/busybox.git
root lesystem dotandolo dei tipici comandi pre- Successivamente dobbiamo speci care la con-
senti in qualsiasi distribuzione GNU/Linux. In -
gurazione di ciò che vogliamo compilare e in-
ne vedremo alcuni esempi pratici per testare la
cludere nel nostro ambiente. Analogamente a
funzionalità della micro-distribuzione custom da
quanto abbiamo fatto con il kernel possiamo
noi creata.
lanciare un “make menucon g” nel modo se-
guente:
, FRPD GL GHOOD VKHOO
$ cd busybox
La volta scorsa ci siamo lasciati con un root -
lesystem dotato di un unico binario eseguibile: / $ make ARCH=arm CROSS_COMPILE=arm-
init. Questo è suf ciente per permettere al ker- linux-gnueabihf- \
nel di lanciare una nostra applicazione custom OPTIMIZE_FOR_CPU=armv7-a CONFIG_
al termine del boot, ma è abbastanza diverso PREFIX=/tmp/initrd menucon g
da quello che si aspetta di trovare in un tipico Al solito, con l’opzione CROSS_COMPILE ab-
sistema GNU/Linux. biamo dato indicazione al sistema id build di
Quello che manca è una vera e propria shell BusyBox quale cross-compilatore utilizzare (lo
completa, dotata dei comandi che caratterizza- stesso con cui abbiamo compilato precedente-
no qualsiasi distribuzione GNU/Linux. mente il kernel) e con ARCH=arm e OPTIMIZE_
FOR_CPU abbiamo speci cato l’architettura
V R target per i le binari che dovranno essere ge-
BusyBox[1] è conosciuto anche come il “coltel- nerati. Con CONFIG_PREFIX, invece, speci -
lino svizzero” dell’embedded Linux. Si tratta di chiamo la directory dove vogliamo che BusyBox
un progetto open-source (GPLv2) in grado di vada ad installare tutti i binari.
fornire un intero set di comandi e utility presenti Se non vogliamo scorrere tutti i singoli menù del
nella suite GNU. “make menucon g” di BusyBox possiamo utiliz-
L’intero progetto è stato scritto con un partico- zare la con gurazione riportata come allegato a
lare occhio di riguardo all’ottimizzazione dello questo articolo (busybox-con g.txt). Per fare ciò
spazio occupato dai binari, il che lo rendono basta lanciare i comandi seguenti:
particolarmente appetibile nell’ambito embed-