Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas
Mostrando entradas con la etiqueta desarrollo. Mostrar todas las entradas

miércoles, 28 de noviembre de 2007

Linknx en Linksys NSLU2

Una vez instalado y configurado el entorno de compilación cruzada para el NSLU2, me he animado a crear los paquetes necesarios para compilar Linknx en el NSLU2.

Dentro del directorio optware, hay un subdirectorio make que contiene las instrucciones para compilar todos los paquetes. Cada fichero make contiene las instrucciones para generar cada paquete.

Los pasos para crear un nuevo paquete son:
  1. Copiar el fichero make/template.mk a make/nombredelpaquete.mk
  2. Editar el fichero nombredelpaquete.mk
El paso 2 es un poco lioso, lo mejor es guiarse por otros ficheros .mk

Linknx necesita eibd para funcionar, y eibd necesita la libreria pthsem. Por lo tanto, he tenido que crear los tres paquetes.

Creación del paquete de la libreria pthsem
  1. Descargar pthsem-2.0.7.tar.gz en subdirectorio downloads de optware
  2. Crear pthsem.mk y meterlo en el subdirectorio make
  3. Ejecutar make pthsem-ipk

Creación del paquete eibd
  1. Descargar bcusdk_0.0.3.tar.gz en subdirectorio downloads de optware
  2. Crear eibd.mk y meterlo en el subdirectorio make
  3. Ejecutar make eibd-ipk

Creación del paquete linknx

  1. Descargar la ultima versión de linknx en subdirectorio downloads de optware
  2. Crear linknx.mk y meterlo en el subdirectorio make
  3. Modificar en el fichero linknx.mk el campo LINKNX_VERSION=0.0.1.20 con la versión descargada
  4. Ejecutar make linknx-ipk
Los ficheros .ipk de los paquetes están en el subdirectorio builds

Y por si no quereis poneros a compilar, dejo los enlaces a los paquetes compilados
http://webs.ono.com/uidas/nslu2/pthsem_2.0.7-1_armeb.ipk
http://webs.ono.com/uidas/nslu2/eibd_0.0.3-1_armeb.ipk
http://webs.ono.com/uidas/nslu2/linknx_0.0.1.20-1_armeb.ipk

Nota: Linkx necesita tener instalados libcurl y libesmtp para que funcione el envio de SMS y correos electrónicos.

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