Difference between revisions of "Leo:HowTo-install-TinyOS"
m (→Install TinyOS 2.x) |
m |
||
(2 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
sudo apt-get update |
sudo apt-get update |
||
sudo apt-get install cvs subversion autoconf automake1.9 python-dev |
sudo apt-get install cvs subversion autoconf automake1.9 python-dev |
||
sudo apt-get install g++ g++-3.4 gperf swig sun- |
sudo apt-get install g++ g++-3.4 gperf swig sun-java6-jdk graphviz alien fakeroot |
||
sudo apt-get install tinyos |
sudo apt-get install tinyos-2.1.0 |
||
The last line will complain that it is a virtual package, therefore look at which version you need and install that one (use the latest if in doubt). I just used: |
|||
sudo apt-get install tinyos-2.1.0 |
|||
To make sure that we have no interference with the USB->Serial connection we may want to remove the 'brltty' package. |
To make sure that we have no interference with the USB->Serial connection we may want to remove the 'brltty' package. |
||
Line 34: | Line 38: | ||
cd /opt |
cd /opt |
||
sudo ln -s tinyos-2. |
sudo ln -s tinyos-2.1.0 tinyos-2.x |
||
Note, that you should use whichever version of the TinyOS you just installed |
|||
== Environment Variables == |
== Environment Variables == |
||
This guide sets up your development environment so you can use TinyOS 1.x, TinyOS 2.x, and Boomerang. To make life easy you can download this file here http://www.5secondfuse.com/tinyos/.bash_tinyos and save it to your home directory. You |
This guide sets up your development environment so you can use TinyOS 1.x, TinyOS 2.x, and Boomerang. To make life easy you can download this file here http://www.5secondfuse.com/tinyos/.bash_tinyos and save it to your home directory. You may want to check if you use the same java version as in the file, and adjust to what you have, e.g. java-1.6.0-sun. |
||
Then add a line to your .bashrc (in your home directory) to source this file on login. If you use a different shell it would be fairly trivial to change over. |
|||
# Add this to your .bashrc |
# Add this to your .bashrc |
||
Line 47: | Line 55: | ||
The script will allow you to switch between environments on fly. It will also define your $TOSROOT setting. |
The script will allow you to switch between environments on fly. It will also define your $TOSROOT setting. |
||
metcalfc@TinyLaptop:~$ tos1 |
metcalfc@TinyLaptop:~$ tos1 |
||
Setting up for TinyOS 1.x |
Setting up for TinyOS 1.x |
||
... Do TinyOS 1.x work ... |
... Do TinyOS 1.x work ... |
||
metcalfc@TinyLaptop:~$ tos2 |
metcalfc@TinyLaptop:~$ tos2 |
||
Setting up for TinyOS 2.x ... |
Setting up for TinyOS 2.x ... |
||
... Do TinyOS 2.x work |
... Do TinyOS 2.x work |
||
== Install TinyOS 1.x == |
== Install TinyOS 1.x == |
||
Line 64: | Line 72: | ||
== Optional: Install TinyOS from CVS == |
== Optional: Install TinyOS from CVS == |
||
If you decided to use the bleeding edge from cvs. You can put it anywhere. Here I've chosen my home directory. You'll still have the official release in /opt. You'll also need to update your .bash_tinyos to reflect where you put it. |
If you decided to use the bleeding edge from cvs. You can put it anywhere. Here I've chosen my home directory. You'll still have the official release in /opt. You'll also need to update your .bash_tinyos to reflect where you put it. |
||
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login |
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login |
||
Line 72: | Line 80: | ||
== Java Serial Communications for TinyOS 1.x == |
== Java Serial Communications for TinyOS 1.x == |
||
You'll need to install TOSComm in order for your TinyOS 1.x Java toolchain to work. Yes, the TinyOS-tools package from TinyOS 2.x does this but it doesn't work for 1.x. And yes the two can coexist in your $JDKROOT. |
You'll need to install TOSComm in order for your TinyOS 1.x Java toolchain to work. Yes, the TinyOS-tools package from TinyOS 2.x does this but it doesn't work for 1.x. And yes the two can coexist in your $JDKROOT. |
||
The installer detects the wrong location to install the files to because of the alternatives setup. Edit the JAVADIR rule in the $TOSROOT/beta/TOSComm/comm/Makefile with (This is for your TinyOS 1 installation): |
The installer detects the wrong location to install the files to because of the alternatives setup. Edit the JAVADIR rule in the $TOSROOT/beta/TOSComm/comm/Makefile with (This is for your TinyOS 1 installation): |
||
JAVADIR=/usr/lib/jvm/java-6-sun |
JAVADIR=/usr/lib/jvm/java-6-sun |
||
Now install it. We'll alias g++ to the correct version so we don't have to edit anymore makefiles. |
Now install it. We'll alias g++ to the correct version so we don't have to edit anymore makefiles. |
||
alias g++=g++-3.4; cd $TOSROOT/beta/TOSComm/comm; make |
alias g++=g++-3.4; cd $TOSROOT/beta/TOSComm/comm; make |
Latest revision as of 00:52, 10 December 2008
TinyOS Development Environment Setup
Install Ubuntu
More here: http://www.ubuntu.com
At the time of this writeup we are using Ubuntu 8.04 (July 2008).
Install TinyOS 2.x
Adapted from http://www.5secondfuse.com/tinyos/install.html and [WSN project at the University of Skovde].
In order to ensure you have all the required packages, you'll need to add the Stanford's TinyOS repository. In this example I have Ubuntu 8.04 (Hardy Heron) and will therefore ask for "hardy main".
First, as root, open the /etc/apt/sources.list file
Then add the Stanford repository.
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main
Now you just need to add the packages.
sudo apt-get update sudo apt-get install cvs subversion autoconf automake1.9 python-dev sudo apt-get install g++ g++-3.4 gperf swig sun-java6-jdk graphviz alien fakeroot sudo apt-get install tinyos-2.1.0
The last line will complain that it is a virtual package, therefore look at which version you need and install that one (use the latest if in doubt). I just used:
sudo apt-get install tinyos-2.1.0
To make sure that we have no interference with the USB->Serial connection we may want to remove the 'brltty' package.
sudo apt-get remove brltty
Finally we need to make a logical link to the /opt/tinyos-2.x. If your tinyos2 installation is located in /opt/tinyos-2.0.2 we do the following:
cd /opt sudo ln -s tinyos-2.1.0 tinyos-2.x
Note, that you should use whichever version of the TinyOS you just installed
Environment Variables
This guide sets up your development environment so you can use TinyOS 1.x, TinyOS 2.x, and Boomerang. To make life easy you can download this file here http://www.5secondfuse.com/tinyos/.bash_tinyos and save it to your home directory. You may want to check if you use the same java version as in the file, and adjust to what you have, e.g. java-1.6.0-sun.
Then add a line to your .bashrc (in your home directory) to source this file on login. If you use a different shell it would be fairly trivial to change over.
# Add this to your .bashrc if [ -f ~/.bash_tinyos ]; then . ~/.bash_tinyos fi
The script will allow you to switch between environments on fly. It will also define your $TOSROOT setting.
metcalfc@TinyLaptop:~$ tos1 Setting up for TinyOS 1.x ... Do TinyOS 1.x work ... metcalfc@TinyLaptop:~$ tos2 Setting up for TinyOS 2.x ... ... Do TinyOS 2.x work
Install TinyOS 1.x
Residing in a directory (e.g. your home directory), use:
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x sudo mv tinyos-1.x /opt
Optional: Install TinyOS from CVS
If you decided to use the bleeding edge from cvs. You can put it anywhere. Here I've chosen my home directory. You'll still have the official release in /opt. You'll also need to update your .bash_tinyos to reflect where you put it.
cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x-contrib
Java Serial Communications for TinyOS 1.x
You'll need to install TOSComm in order for your TinyOS 1.x Java toolchain to work. Yes, the TinyOS-tools package from TinyOS 2.x does this but it doesn't work for 1.x. And yes the two can coexist in your $JDKROOT.
The installer detects the wrong location to install the files to because of the alternatives setup. Edit the JAVADIR rule in the $TOSROOT/beta/TOSComm/comm/Makefile with (This is for your TinyOS 1 installation):
JAVADIR=/usr/lib/jvm/java-6-sun
Now install it. We'll alias g++ to the correct version so we don't have to edit anymore makefiles.
alias g++=g++-3.4; cd $TOSROOT/beta/TOSComm/comm; make sudo make install
Compile Java Tools for TinyOS-1.x
You may need to (re)compile java tools such as teh Listener after getting the sources from CVS.
cd /opt/tinyos-1.x/tools/java make
Compile Java Tools for TinyOS-2.x
You may need to (re)compile JNI libraries for TinyOS java SDK, for example, if you get the env JNI error after trying to start "java net.tinyos.tools.Listen"
cd /opt/tinyos-2.x/tools sudo tos-install-jni
If this does not help, see the README file in the same directory to configure and make.
Further reading
Now you are ready to work with TinyOS and motes.
Here are some tips on how to do that.