lunes, 26 de noviembre de 2007

Compilando aplicaciones para NSLU2

O como instalar el compilador cruzado para generar aplicaciones para NSLU2.

Hay que instalar el entorno de desarrollo para paquetes Optware. Estos son los típicos paquetes que instalamos con ipkg install. Aprovechamos este entorno para compilar nuestros programas sin tener que generar el paquete. Aunque si lo generamos, mucho mejor.

Es recomendable utilizar un usuario diferente a root, por lo que pueda pasar. Si compilamos algunos paquetes y hacemos un make install, posiblemente substituyamos librerias y programas importantes del sistema por versiones compiladas para otra plataforma, lo cual no puede ser bueno.

Pasos a seguir:

Nos vamos a nuestro directorio home
cd ~

Creamos un directorio nslu2dev
mkdir nslu2dev

Descargamos el código para crear paquetes optware
svn co http://svn.nslu2-linux.org/svnroot/optware/trunk optware

Vamos a generar solo el entorno de compilación cruzada para NSLU2
cd optware
make nslu2-target
cd nslu2; make directories ipkg-utils

Compilamos por ejemplo el comando unzip para forzar a que se compile e instale el entorno de desarrollo completo
make unzip

Si falla al descomprimir gcc-3.3.5.tar.bz2:
nos vamos al directorio ~/downloads borramos gcc-3.3.5.tar.bz2 y descargamos de nuevo el gcc
wget ftp://ftp.gwdg.de/pub/misc/gcc/releases/gcc-3.3.5/gcc-3.3.5.tar.bz2

Volvemos al directorio ~/nslu2dev/optware
cd ~/nslu2dev/optware

y ejecutamos de nuevo
make unzip

Compilará todo el entorno de compilación cruzada y el paquete que le hemos indicado

Para compilar un programa sin generar el paquete crearemos un script que pondremos en el directorio donde estn los fuentes del programa a compilar. Hay que ponerlo en el mismo directorio en que está el Makefile y configure

El script en cuestión:
export PATH=~/nslu2dev/optware/toolchain/armv5b-softfloat-linux/gcc-3.3.5-glibc-2.2.5/bin:$PATH
./configure --host=armv5b-softfloat-linux && make

Si queremos compilar un solo fichero, substituimos la ultima linea por
armv5b-softfloat-linux-gcc nombredelprograma.c -o nombredelprogramaejecutable

Después, no hay mas que subir los ejecutables al NSLU2, ponerles permisos de ejecución y listos.

Si se complica la cosa o no funciona lo mejor va a ser leerse la documentación:
http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware

No hay comentarios: