martedì 16 ottobre 2012

Iomega StorCenter IX2-200: compilazione del software

Fin'ora ci siamo appoggiati a software precompilato da altre persone e reso disponibile attraverso i repository ipkg, ma non sempre è tutto cosi facile e semplice, soprattutto se dovete partire dai sorgenti per compilarvi il software non presente.

Prima di tutto sappiate che ci sono due possibili strade da seguire per compilare il software:
  • native (compilazione nativa a bordo del dispositivo)
  • cross (compilazione del codice su di un'altra piattaforma)
La compilazione nativa ha il pregio di richiedere solamente la preparazione dell'ambiente a bordo del dispositivo, ma spazio disco, potenza di calcolo del processore e memoria fisica spesso sono limitati dato che il dispositivo non è fatto per quello.

La compilazione di tipo cross esula dai limiti di spazio e potenza computazionale del dispositivo, ma potrebbe richiedere operazioni molto complesse per la sua preparazione.

Ora vedremo a grandi linee come fare, ma se non sapete nulla di compilazione, o non avete molto interesse (e dovrete usare bene i motori di ricerca in caso di problemi), lasciate stare e leggete qualcos'altro.

Partiamo con la preparazione dell'ambiente di cross compiling supponendo di avere a che fare con una distribuzione di tipo Debian-based installando i seguenti pacchetti:

apt-get update
apt-get install gcc cvs flex bison make pkg-config rsync gettext libglib2.0-dev autoconf libtool automake automake1.9 sudo patch bzip2 gzip wget sed texinfo subversion


Ora procuriamoci l'ambiente di compilazione optware dal repository SVN:

svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware

Sapendo che l'architettura che ci interessa è cs08q1armel, definiamo il target del nostro ambiente con i seguenti comandi:

cd optware; make cs08q1armel-target

Da qui in poi tutto quello che compileremo verrà compilato per questa tipologia di processore, ma dobbiamo ancora creare i tool di base del sistema e con i seguenti comandi verrà scaricato ed impostato molto software (compreso un kernel in versione "vecchia"):

cd cs08q1armel; make directories ipkg-utils toolchain

Come ultima prova per testare il funzionamento possiamo provare a compilare con i seguenti comandi:

make hello-dirclean hello-check

Per capire come fare a compilare altro software esaminate e cercate di interpretare la struttura dei seguenti file:
  • make/hello.mk
  • make/template.mk
Per compilare dei "Pre" specifici come i moduli del kernel, ci sono diverse destinazioni da specificare (la directory di partenza è sempre optware) e dovrete usare i seguenti comandi:

make pre-targetcd pre; make directories ipkg-utils toolchain

Da qui in poi sappiate che non sono stato in grado di verificare la documentazione letta dato che avevo degli errori che non ho ancora risolto...

A questo punto dovreste essere in grado di compilare e riconfigurare i moduli del kernel:

make kernel-modules-ipk

Per la riconfigurazione dei kmods:

rm -f builds/kernel/.configured
make kernel-modules-config KERNEL_CONFIG_METHOD=menuconfig
cp builds/kernel/.config sources/kernel-modules/pre/defconfig


Ora, parlando dell'ambiente di tipo "native" sappiate che la procedura è la stessa, tranne che partirete direttamente dall'SVN fatto all'interno della /opt del dispositivo targhet... buon divertimento!

Direi che per oggi è tutto... a presto ed alla prossima puntata!

Nessun commento:

Posta un commento