Tutorial para la instalación de TinyOS sobre Windows.


Metodo 1: Corriendo una Maquina Virtual.

Este metodo consiste en utilizar una imagen virtual pre-cofigurada de Xubuntu, siga los pasos del siguiente enlace para instalar utilizando este metodo.

http://docs.tinyos.net/index.php/Running_a_XubunTOS_Virtual_Machine_Image_in_VMware_Player



Metodo 2: Instalación sobre entorno Cygwin.

Este metodo consiste en instalar los paquetes necesarios para el desarrollo con TinyOS en el entorno Cygwin, el cual emula un ambiente Linux sobre Windows.

Este tutorial fue probado en Windows 7, los enlaces en cursiva llevan a imagenes que le pueden servir de referencia durante el proceso.
Referencia: http://docs.tinyos.net/index.php/Installing_TinyOS_2.1.1#Manual_installation_on_your_host_OS_with_RPMs.


Paso 1: Instalar Java 1.6 JDK.

 Descargar e instalar el JDK desde http://www.oracle.com/technetwork/java/javase/downloads/index.html siguiendo los pasos de descarga e instalación. Se recomienda instalar la versión de 32 bits para asegurar la compatibilidad.


Paso 2: Instalar de Cygwin.

Cygwin habilita un ambiente Linux sobre Windows para ejecutar aplicaciones desarrolladas para el estándar POSIX

Puede Descargar Cygwin desde http://www.cygwin.com/, pero debido a que actualizan bastante seguido no se puede asegurar la compatibilidad con los paquetes que se utilizarán para este proposito, por ende es recomendable:
  1. Descargar el archivo http://cone.informatik.uni-freiburg.de/people/aslam/cygwin-files.zip y extraer los archivos en una carpeta local, por ejemplo, C:/cygwin-files/.
  2. Ir a la carpeta donde extrajo los archivos y ejecutar el "setup.exe".
  3. En la pantalla "Choose Installation Type" elija la opción "Install from a Local Directory".
  4. En la pantalla "Select Root Install Directory" utilice la configuración:
Root Directory: C:\cygwin (o alguna otra dirección sin espacios)
Install for: All Users (RECOMMENDED).
Default Text file type: Unix/Binary (RECOMMENDED).
  1. En la pantalla "Select Local Package Directoy" seleccione la carpeta donde extrajo los archivos.
  2. Complete el resto de la instalación sin modificaciones.

Paso 3: Instalar los compiladores nativos.

  1. Ejecutar el icono de acceso directo creado en su escritorio al finalizar la instalación de cygwin, se abrirá una ventana de terminal, en la cual podrá ejecutar diversos comandos de uso habitual en ambientes Unix, dado que es la primera vez que ejecuta Cygwin, se crearán los directorios de usuario en /home/.
  2. Descargar los siguientes archivos y guardarlos en algun directorio dentro de C:\cygwin\ (o la carpeta que haya puesto como "Root Directory" en el paso 2.4), por ejemplo C:\cygwin\home\MyUsuario\

Herramientas TI MSP430
base msp430tools-base-0.1-20050607.cygwin.i386.rpm
python tools msp430tools-python-tools-1.0-1.cygwin.noarch.rpm
binutils msp430tools-binutils-2.16-20050607.cygwin.i386.rpm
gcc msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm
libc msp430tools-libc-20080808-1.cygwin.i386.rpm

  1. Para instalar los paquetes descargados anteriormente se ejecuta el comando rpm -ivh <rpm> en el directorio donde guardo los archivos, por ejemplo rpm -ivh msp430tools-base-0.1-20050607.cygwin.i386.rpm. Proceder a instalar cada uno de los paquetes, recuerde usar la tecla TAB para facilitar este proceso.

NOTAS:


Paso 4: Instalar herramientas específicas de TinyOS.

Descargar los archivos del mismo modo que en el paso anterior, pero ahora instalarlos con el comando indicado en la columna "Comando de instalación" para cada paquete.

Herramientas específicas de TinyOS

Herramienta Paquete Comando de instalación
NesC nesc-1.3.1-1.cygwin.i386.rpm
rpm -Uvh
rpm -Uvh --ignoreos (Si hay algun error)
Deputy tinyos-deputy-1.1-1.cygwin.i386.rpm rpm -i
rpm -i --ignoreos (Si hay algun error)
tinyos-tools tinyos-tools-1.4.0-3.cygwin.i386.rpm rpm -ivh --force

NOTA:


Paso 5: Instalar el código fuente de TinyOS.

  1. Instalar el código fuente.
Descargar el siguiente archivo: tinyos-2.1.1-3.cygwin.noarch.rpm al igual que en el paso 3, e instalarlo con el comando rpm -ivh <rpm> (Utilizar rpm -ivh --ignoreos <rpm> en caso de que arroje error)

  1. Configurar las variables de entorno.
Para Configurar las variables de entorno de manera facil debe descargar el siguiente script, colocarlo en la carpeta C:\cygwin\etc\profile.d\ y luego reiniciar Cygwin

Paso 6: Comprobar si el entorno quedo correctamente instalado.

Abra un terminal Cygwin y ejecute cd /opt/tinyos-2.x/apps/Blink , donde se encuentra la aplicacion de ejemplo "Blink", compilar ejecutando el comando make tmote, se mostrará la el resultado de una compilación correcta.

Conecte el Tmote en el puerto USB, si es primera que lo hace probablemente deba esperar a que windows instale los controladores, al terminar dicho proceso ejecute el comando motelist , si todo esta correctamente instalado debera ver una lista donde se aprecia el dispositvo en su respectivo puerto COM, en caso contrario revise el punto 3 de la sección Solución de problemas.

Cargar el programa en el dispositivo utilizando el comando make tmote install (en el directorio de Blink, con el Tmote conectado), al volver al prompt verá el resultado correcto de la instalación y los leds del Tmote comenzarán a prenderse intermitentemente, en caso contrario revise el punto 4 de la sección Solución de problemas.

Solución de problemas:

  1. Si al ejecutar el comando java en Cygwin no arroja nada, entonces debe editar o crear la variable de entorno PATH en las propiedades del sistema y agregar C:\Program Files (x86)\Java\jdk1.6.0_21\bin; acepte los cambios, reinicie Cygwin y pruebe nuevamente en comando java, deberia responder correctamente mostrando las opciones del comando.
  1. Si recibe el error "Java not found, not installing JNI code" comente las lineas:

CLASSPATH="C:\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar;."
...
export CLASSPATH

del script "tinyos.sh" para configurar las variables de entorno que guardó en  C:\cygwin\etc\profile.d\, agregando un "#" al comienzo de la linea, Luego edite o cree la variable de entorno CLASSPATH en las propiedades de sistema, agregando la linea  .;C:\cygwin\opt\tinyos-2.x\support\sdk\java , reinicie Cygwin y reintente el comando que le arrojaba error anteriormente.

Si aún le arroja error, ejecute el comando tos-install-jni, si este comando tambien le arroja error, dirijase a C:\cygwin\lib\tinyos, renombre los archivos getenv.dll y toscomm.dll  a getenv-32.dll y toscomm-32.dll respectivamente y ejecute el comando tos-install-jni nuevamente.
  1. Si el comando motelist no muestra nada a pesar de que tiene un Tmote conectado al puerto USB, pruebe instalando Cygwin nuevamente, pero esta vez una version actualizada descargada de http://www.cygwin.com/, esta vez en vez de seleccionar  la opción "Install from a Local Directory", seleccione "Install form Internet" en la pantalla de "Choose Installation Type". No debiese ser necesario reinstalar los paquetes nuevamente.
  1. Si al intentar instalar un programa en el Tmote le arroja un error "could not open port" intente el comando nuevamente, si no, pruebe desconectarlo y conectarlo nuevamente, en caso de persistir el error cambie el numero de puerto y encuentre uno que funcione (generalmente es uno de menor numero).