Sei sulla pagina 1di 2

PE GG G /L U GR G UR

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:

Perfetto! La nostra applicazione ha risposto alla


richiesta di echo dalla board virtuale. Sul termi-
nale di quest’ultima compare il messaggio se-
guente:

Gli sviluppi futuri di questa applicazione sono


lasciati alla fantasia e alla creatività del lettore.
Nella prossima puntata vedremo come creare
Se sostituiamo l’esempio “ GNN TN ” con questo
un initramfs completo, dotato dei tipici comandi
codice e ripetiamo i passi di generazione dell’ini-
presenti in qualsiasi distribuzione GNU/Linux.
tramfs possiamo vedere in funzione l’echo server
TCP/IP creato completamente da zero. LIHULPH WL
Per prima cosa lanciamo la board virtuale con le 1. http://en.wikipedia.org/wiki/Cpio
seguenti opzioni: 2. http://lxr.linux.no/linux+v3.6.3/Documenta-
tion/early-userspace/README

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-

Potrebbero piacerti anche