Friday, May 11, 2012

Install TinyOS under Ubuntu 12.04 or later

Installing TinyOS under ubuntu 12.04 or 12.10 or 13.04


1. Add software source, deb http://tinyos.stanford.edu/tinyos/dists/ubuntu karmic main to /etc/apt/sources.list


2. Type, sudo apt-get update to get new changes. Install tinyos-2.1.1 by typing sudo apt-get install tinyos-2.1.1.

3. Change the enviroment variables. Open the .bashrc file (sudo gedit ~/.bashrc), and add the following lines to the bashrc file:
       
       export TOSROOT=/opt/tinyos-2.1.1
       export TOSDIR=$TOSROOT/tos
       export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.$CLASSPATH
       export MAKERULES=$TOSROOT/support/make/Makerules
       export PATH=/opt/msp430/bin:$PATH
       source /opt/tinyos-2.1.1/tinyos.sh

Use command: source ~/.bashrc to update changes. 

3. Get the access authority to the tinyos folder (sudo chown usr_name:usr_name -R /opt/tinyos-2.1.1/). Also follow this 2 steps:
  • Change the ownership on your /opt/tinyos-2.x files: chown -R <your uid> /opt/tinyos-2.x
  • Change the permissions on any serial (/dev/ttyS<N>), usb (/dev/tts/usb<N>, /dev/ttyUSB<N>), or parallel (/dev/parport) devices you are going to use: chmod 666 /dev/<devicename>

4. Install tinyos jave tools. First install JNI by running "tos-install-jni". Go to "$TOSROOT/support/sdk/java/". If the directory has a Makefile in it, type make and make install.

//optional step:
5. Generate the documents of TinyOS java tools. Go to  "$TOSROOT/support/sdk/java/" , copy the the directory to another place (e.g., /home/usr_name), open the Makefile, change "JAVADOCDIR" to the intended location. Type "make javadoc" to generate the documents.


There have been some problems reported with 2.1.1, so I would recommend to use below instructions for installation. (Use only if above steps don't work for you).


  1. Remove tinyos using : sudo apt-get remove tinyos-2.1.1
  2. Add software source, deb http://tinyos.stanford.edu/tinyos/dists/ubuntu karmic main to /etc/apt/sources.list
  3. Type as instructed in bullet.
  • Type, sudo apt-get update to get new changes. Install tinyos-2.1.1 by typing sudo apt-get install tinyos-2.1.2.
  • Type: cd /opt 
  • Get tinyos repository using: sudo git clone https://github.com/tinyos/tinyos-main.git 
  • sudo cp -R /opt/tinyos-main /opt/tinyos-2.x
     4. Copy tinyos.sh file from /opt/tinyos-2.1.2/ using: sudo cp /opt/tinyos-2.1.2/tinyos.sh /opt/tinyos-2.x/tinyos.sh (if don't have tinyos.sh file under tinyos-2.1.2, get it from tinyos-2.1.1)

       5. Change permission: sudo chmod +x /opt/tinyos-2.x/tinyos.sh

       6. Open tinyos.sh file under /opt/tinyos-2.x/ and add below lines, save and exit:

#! /usr/bin/env bash
# Here we setup the environment
# variables needed by the tinyos
# make system
echo "Setting up for TinyOS 2.x Repository Version"
export TOSROOT=
export TOSDIR=
export MAKERULES=
TOSROOT="/opt/tinyos-2.x"
TOSDIR="$TOSROOT/tos"
CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java:.:$TOSROOT/support/sdk/java/tinyos.jar
MAKERULES="$TOSROOT/support/make/Makerules"
export TOSROOT
export TOSDIR
export CLASSPATH
export MAKERULES


        7. Type sudo gedit ~/.bashrc and add below line:
          source /opt/tinyos-2.x/tinyos.sh

Close all editors, restart the machine. And you are done.

Please post your comments and suggestions if you find this helpful. 

4 comments:

BeaconK said...

Great post. Thank you.
After the steps, I had to install g++:
sudo apt-get install g++

Install python-dev
sudo apt-get install python-dev

and change python version to my current version (7.3) in:
/opt/tinyos-2.1.1/support/make/sim.extra

BeaconK said...

I had problems running on telosb. The fix for "cannot find `Portx'" is given at:
http://xuepengxu.blogspot.se/2012/05/tinyos-211-installation-on-ubuntu-1204.html

Omar Hassan said...

Thanks a lot, that was really helpful tutorial, I just tried Blink though.

Bo Wang said...

Great post Dr Jenis~