Instalación de TinyOS 1.x en Debian
Esta receta explica cómo instalar TinyOS 1.1.15
Parece ser que el TinyOS 2.0 está en una Beta 2 por lo que no todo está muy probado, vamos a dar los pasos para la instalación de tinyOS 1.1.15 que parece ser que es la última versión del 1.×.
Si por curiosidad quieres bajarte la version del tinyOS 1.1.15 del CVS (ojo que son 210M !) ejecuta lo siguiente:
a continuación los pasos son mas sencillos a los dados para el tinyOS 2.0. Quizás un poco mas laborioso por el tema de las versiones.
El compilador cruzado
Lo primero es instalarse las herramientas para el procesador de Atmel ya que es lo que tienen las micas que tenemos en el grupo Arco.
Aquí puedes encontrar los paquetes debian:
http://thomer.com/tinyos/
No te instales los últimos ya que esta versión del tinyOS también tiene problemas con otras versiones, de echo deberías congelar esos paquetes para que no se actualicen.
avr-binutils_2.13.2.1-2_i386.deb avr-gcc_3.3tinyos-2_i386.deb avr-libc_20030512cvs-2_i386.deb nesc_1.1.2a-2_i386.deb tinyos-tools_1.1.0-2_i386.deb
A continuación con dpkg -i, vamos instalando los paquetes.
El sistema operativo
Ahora vamos con el tinyOS propiamente dicho, de nuevo , como la gente ha trabajado mas con esta versión nos lo encontramos como paquete debian por lo que añade esto a tu /etc/apt/sources.list
deb http://www.comnets.uni-bremen.de/~mab/debian tinyos/
y luego:
Al instalarte el sistema operativo también te instala la versión 1.2.4 de nesc, debes reinstalar la versión 1.1.2 ya que de lo contrario te dan fallos al compilar.
Temas de java
Ahora instala el jdk de java. De java se recomienda el de IBM y la versión 1.4, en algunas web que he visitado optan por la de sun en 1.5, yo ni para uno ni para otro la de sun 1.4 y ya veremos si da problemas en el futuro.
Por último falta el tema de las clases de java para conectarse al puerto serie.
Bájate:
http://www.linux.org.uk/~ taj/rxtx-bins.1.tar.gz
te bajas el archivo y copias los archivos al jdk (tiene que ser la versión 1.4)
Ahora lo mismo con la versión de solaris de javax.comm:
javashoplm.sun.com/ECom/docs/Welcome.jsp
Tienes que coger la versión 2, con la tres no va.
Probando
No te olvides del graphviz y de dar permisos a los puertos serie y paralelo. Ahora ponemos las variables de entorno:
export TOSROOT="/opt/tinyos-1.x" export JDKROOT="/usr/lib/j2sdk1.4-sun" export JAVAXROOT="/usr/lib/j2sdk1.4-sun" export CLASSPATH=".:$TOSROOT/tools/java:$JAVAXROOT/jre/lib/ext/comm.jar:$TOSROOT/tools/java/jars/jdom.jar" export PATH="$PATH:$JDKROOT/bin" export TOSDIR=$TOSROOT/tos export MAKERULES="$TOSROOT/tools/make/Makerules" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/:$JAVAXROOT/jre/bin/"
En teoría ya esta todo, para comprobar que esto rula ejecutamos el script toscheck que viene dentro del sistema operativo:
/opt/tinyos-1.x/tools/scripts
Al ejecutarlo te comprueba que todas las versiones sean correctas, y que se encuentran todas las herramientas necesarias. Adicionalmente, vete a:
/opt/tinyos-1.x/apps/Blink
y comprueba que puedes compilar el ejemplo para la plataforma que desees, nosotros tenemos las micas como he dicho anteriormente por lo que:
$ make mica mkdir -p build/mica compiling Blink to a mica binary ncc -o build/mica/main.exe -Os -finline-limit=100000 -Wall -Wshadow -DDEF_TOS_AM_GROUP=0x7d -Wnesc-all -target=mica -fnesc-cfile=build/mica/app.c -board=micasb -DIDENT_PROGRAM_NAME=\"Blink\" -DIDENT_USER_ID=\"root\" -DIDENT_HOSTNAME=\"homer\" -DIDENT_USER_HASH=0xbc4a9a92L -DIDENT_UNIX_TIME=0x45ae848dL -DIDENT_UID_HASH=0xda163471L Blink.nc -lm compiled Blink to build/mica/main.exe 1652 bytes in ROM 48 bytes in RAM avr-objcopy --output-target=srec build/mica/main.exe build/mica/main.srec avr-objcopy --output-target=ihex build/mica/main.exe build/mica/main.ihex writing TOS image homer:/opt/tinyos-1.x/apps/Blink# ls BlinkM.nc Blink.nc build Makefile README SingleTimer.nc
y ya esta, con un poco de paciencia en cuanto al tema de las versiones ya puedes generar aplicaciones para las motas.En la siguiente, hacemos el hola mundo.