TinyOS 2.0, un sistema operativo libre para dispositivos empotrados
Por que no sólo de GNU/Linux vive el hombre, vamos a describir brevemente la instalación y el uso de un sistema operativo libre denominado TinyOS. Este sistema operativo esta destinado a redes inalámbricas de sensores por lo que necesitaremos para probarlo alguna de las plataformas soportadas por el sistema operativo o el simulador TOSSIM.
Instalación TinyOS 2.0
Vamos a aprender su instalación y dejaremos para más adelante la construcción de un pequeño hello world o incluso la instalación del propio simulador.
Se va a instalar todo en una debian con kernel 2.6.15.7
Los pasos a seguir son los siguientes (http://www.tinyos.net/tinyos-2.x/doc/html/install-tinyos.html):
JDK
Instala Java 1.5 JDK. Se necesita para comunicarse con el nodo desde el PC.
Compilador cruzado
Esto va a depender del dispositivo para el cual quieras desarrollar una aplicación y concretamente del procesador con el que estén desarrollados. Por ejemplo, para la familia de las MICAs (dispositivos para redes de sensores) se necesita la toolchain AVR, ya que llevan unos procesadores ATMEL. En la receta supondremos que vamos a trabajar con estas motas, por lo que instalamos todo lo relativo a la citada toolchain. En debian esto implica, instalar los siguientes paquetes:
- gcc-avr, el gcc para los atmel
- gdb-avr, el gdb para los atmel
- binutils-avr, utilidades binarias.
- avr-libc, la librería estándar de C
- avarice, para utilizar el gdb con JTAG (sistema para depuración típico de sistemas empotrados)
Si peiensas utilizar el apt-get
para instalar todo eso será mejor que eches un vistazo a esta página de tinyOS. En resumen dice que no es buena idea, ya que necesitamos versiones muy concretas. Lo mejor es bajarse los rpm y pasar los paquetes a .deb
con alien
, para luego instalarlos. Un tema importante, primero desinstala todo lo que tengas de avr y no te olvides de bloquear todos los paquetes para que no se actulicen cuando hagas un “upgrade”.
Una vez que tengas los compiladores cruzados (necesarios para compilar el sistema operativo TinyOS) necesitas el compilador de nesC. nesC es el lenguaje en el que está escrito tiniyOS y que se usa también para escribir las aplicaciones. En la página web tienes paquetes rpm para el nesC (que usará los compiladores y para la toolchain de tinyOS por lo que, como esto en una debian tienes que tirar de alien
para convertir los paquetes.
y luego ya sabes: dpkg -i <paquete generado>
Con alien
tendrás este problema:
El sistema operativo
Un paso similar se realiza para instalar el sistema operativo propiamente dicho, es decir el tinyOS. Se coge el paquete .rpm
se pasa a .deb
con alien
y se instala con el dpkg.
Configuración del entorno
Configurar las variables de entorno (mételo en un script para configurarlo de forma automática), por ejemplo en ~/bin/tinyos-setup.sh
:
export TOSROOT=/opt/tinyos-2.x export TOSDIR=$TOSROOT/tos export CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java/tinyos.jar:. export MAKERULES=$TOSROOT/support/make/Makerules
Y ejecuta lo siguiente cuando vayas a compilar para TinyOS:
Cambia el propietario del directorio donde esta el tinyOS:
y no olvides cambiar los permisos del dispositivo (puerto serie, paralelo, USB) que uses para comunicarte con las motas.
graphviz
Instalar Graphviz desde su paquete debian correspondiente con
Probando
Bueno, enhorabuena, si has hecho todos estos pasos, ya tienes el tinyOS instalado en tu ordenador, ahora necesitas probar todo esto que hemos hecho. No está de más echarle un vistazo a la estructura general del SO para entender como está estructurado y sus posibilidades.
La mejor forma de ver si todo esta correctamente instalado es tratar de compilar y probar algunas de las aplicaciones de ejemplo que vienen con el propio sistema operativo. Como ya habrás notado el sistema operativo se ha instalado por defecto en el directorio /opt/tinyos-2.x
Dentro de este directorio a su vez puedes encontrar los siguientes directorios:
- apps: Aplicaciones de ejemplo del tinyOS
- support: código fuente del toolchain
- tos: el sistema operativo propiamente dicho.
Puedes probar que todo está correcto compilado una aplicación de prueba que viene con el sistema. Copia el directorio apps/Null
a algún sitio de tu home. Este directorio es un esqueleto de aplicación para tinyOS, que si bien no hace nada útil, te permite comprobar que has realizado correctamente todos los pasos anteriores.
Dentro de ese directorio, ejecuta el siguiente comando:
donde plataforma_destino puede ser uno de los siguientes:
Valid targets: all clean eyesIFX eyesIFXv1 eyesIFXv2 intelmote2 mica2 mica2dot micaz null telos telosb tinynode tmote
que son plataformas hardware disponibles en el mercado (la mayoría de ellos como prototipos) para redes de sensores inalámbricas.
Tiny-OS en Windows
Con el cd de crosbow es muy windoze, ejecutar el instalador y ya sabeis, yes yes yes, I agree, yes yes :-)
Enlaces
- Web de TinyOS
- TOSSIM: El simulador
- http://thomer.com/tinyos/
- http://www.stoecklin.net/technology/tinyos/setup-howto/
- http://www.moteiv.com/community/Moteiv_Boomerang_Fixes#TinyOS_1.x_upgrade.2C_nesC_fails
- http://www.comnets.uni-bremen.de/typo3site/index.php?id=48
- http://www.pages.drexel.edu/~kws23/
- http://wass.homelinux.net/howtos/Comm_How-To.shtml
felixjesus.villanueva(la arroba)uclm.es
Mi web