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 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
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