Difference between revisions of "Installing from SCM"

From TinyOS Wiki
Jump to: navigation, search
(substitute jhu.edu contrib git mirror with a github one, because the jhu.edu mirror is not synced for a long time)
Line 7: Line 7:
 
== Step 0: Enable the Stanford tinyos repository ==
 
== Step 0: Enable the Stanford tinyos repository ==
  
  sudo echo "deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main" >> /etc/apt/sources.list
+
replace '''''<distribution>''''' with the distribution of Ubuntu you are using: ''hardy, jaunty, karmic, lucid''.
 +
 
 +
  sudo echo "deb http://tinyos.stanford.edu/tinyos/dists/ubuntu <''distribution''> main" >> /etc/apt/sources.list
 
  sudo apt-get update
 
  sudo apt-get update
  
Line 13: Line 15:
  
 
  sudo apt-get install nesc
 
  sudo apt-get install nesc
 +
 +
 +
==== Possible contingency ====
 +
there may be a contigency between the repo, ubuntu version, nesc, and java.  If so read on.  If everything works then jump to step 2.
  
 
The Stanford repository contains the 1.3.0 which has a required dependency on sun-java5-jdk/sun-java6-jdk. If you are using a newer version of Ubuntu or Debian that doesn't provide this, you can install the nesc 1.3.1:
 
The Stanford repository contains the 1.3.0 which has a required dependency on sun-java5-jdk/sun-java6-jdk. If you are using a newer version of Ubuntu or Debian that doesn't provide this, you can install the nesc 1.3.1:

Revision as of 17:16, 5 April 2010

NOTE: It is highly recommended to remove the system-wide tinyos-tools package when using the TinyOS from CVS/GIT. Git repositories mirroring the TinyOS CVS repository can be found at:

You can use it instead of the CVS-repository, that is by default used in this installation guide for Ubuntu:

Step 0: Enable the Stanford tinyos repository

replace <distribution> with the distribution of Ubuntu you are using: hardy, jaunty, karmic, lucid.

sudo echo "deb http://tinyos.stanford.edu/tinyos/dists/ubuntu <distribution> main" >> /etc/apt/sources.list
sudo apt-get update

Step 1: Install the nesc compiler

sudo apt-get install nesc


Possible contingency

there may be a contigency between the repo, ubuntu version, nesc, and java. If so read on. If everything works then jump to step 2.

The Stanford repository contains the 1.3.0 which has a required dependency on sun-java5-jdk/sun-java6-jdk. If you are using a newer version of Ubuntu or Debian that doesn't provide this, you can install the nesc 1.3.1:

wget http://cs.jhu.edu/~razvanm/wsn/debian/nesc-1.3.1.deb
sudo dpkg -i nesc-1.3.1.deb

If you need the 64-bit of nesc 1.3.1 you can get it like this:

wget http://cs.jhu.edu/~razvanm/wsn/debian/64/nesc-1.3.1.deb
sudo dpkg -i negc-1.3.1.deb

Step 2: Install the crosstools

Debian MSP430:

sudo apt-get install msp430-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos

Debian AVR:

sudo apt-get install avr-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos

Step 3: Checkout the TinyOS 2.x source tree

cd ~
mkdir -p local/src
cd local/src
cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x

If you want to use git then instead of the last command you can do:

git clone git://hinrg.cs.jhu.edu/git/tinyos-2.x.git

Step 4: Compile the TinyOS tools

 cd tinyos-2.x/tools
 ./Bootstrap
 ./configure --prefix=$HOME/local
 make all
 make install

A few ENTERs will be required by the last two commands.

Step 5: Set the environment variables

Add the following to .profile (or .bash_profile or .bashrc depending on your system):

export PATH=$HOME/local/bin:$PATH
export TOSROOT=$HOME/local/src/tinyos-2.x
export TOSDIR=$TOSROOT/tos
export MAKERULES=$TOSROOT/support/make/Makerules
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
export PYTHONPATH=.:$TOSROOT/support/sdk/python:$PYTHONPATH
export PATH=$HOME/local/src/tinyos-2.x/support/sdk/c:$PATH

See also