]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - doc/html/install-tinyos.html
Text.
[tinyos-2.x.git] / doc / html / install-tinyos.html
index c8f05f8368ad698deba1ee60ddfe1fa1ff4e3867..78b5895d2fc0d9ba44e6ee4b6c47e493b06e6c60 100644 (file)
-\r
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">\r
-<html>\r
-<head>\r
-  <title>Installing TinyOS 2.0</title>\r
-  <link href="../stylesheets/tutorial.css" rel="stylesheet" type="text/css">\r
-</head>\r
-<body>\r
-\r
-<div class="title">Installing TinyOS 2.0</div>\r
-<div class="subtitle">Last updated 12 June 2006</div>\r
-\r
-<p>If you already have a 1.x tree, you are better off following the <i>upgrade</i> \r
-instructions at <a href="upgrade-tinyos.html">upgrade-tinyos.html</a>.\r
-\r
-<p>Currently, the TinyOS Core Working Group supports TinyOS on two platforms: Cygwin (Windows)\r
-and Linux. There have been some <A HREF="">successful efforts</A> to getting TinyOS environments working\r
-on Mac OSX, but OSX is not supported by the Core WG.</p>\r
-\r
-<p>Installing a TinyOS enviromnent has four basic steps; Windows requires an extra step,\r
-installing Cygwin, which is a UNIX-like environment. The steps are:</p>\r
-\r
-<ol>\r
-  <li><b>Installing a Java 1.5 (Java 5) JDK.</b> Java is the most common way of interacting\r
-  with mote base stations or gateways that are plugged into a PC or laptop.</li>\r
-  <li><b><font color=red>Windows only.</font> Install Cygwin.</b> This gives you a shell\r
-  and many UNIX tools which the TinyOS environment uses, such as perl and shell\r
-  scripts.</li>\r
-  <li><b>Installing native compilers.</b> As you're compiling code for low-power\r
-  microcontrollers, you need compilers that can generate the proper assembly code.\r
-  If you using mica-family motes, you need the AVR toolchain; if you're using\r
-  telos-family motes, you need the MSP430 toolchain.</li>\r
-  <li><b>Installing the nesC compiler.</b> TinyOS is written in nesC, a dialect\r
-  of C with support for the TinyOS concurrency model and component-based\r
-  programming. The nesC compiler is platform-independent: it passes its output\r
-  to the native compilers, so that it can take advantage of all of the effort\r
-  put into their optimizations.</li>\r
-  <li><b>Installing the TinyOS source tree.</b> If you want to compile and\r
-  install TinyOS programs, you need the code.</li>\r
-  <li><b>Installing the Graphviz visualization tool.</b> The TinyOS\r
-  environment includes <tt>nesdoc</tt>, a tool that automatically\r
-  generates HTML documentation from source code. Part of this process\r
-  involves drawing diagrams that show the relationships between\r
-  different TinyOS components. <A HREF="http://www.graphviz.org">Graphviz</A>\r
-  is an open source tool\r
-  that nesdoc uses to draw the diagrams.</li>\r
-</ol>\r
-\r
-<h1>Step 1: Install Java 1.5 JDK</h1>\r
-\r
-<b>Windows</b><br>\r
-Download and install Sun's 1.5 JDK from <a href="http://java.sun.com">http://java.sun.com</a>.\r
-\r
-<p>\r
-<b>Linux</b><br>\r
-Download and install IBM's 1.5 JDK from <a href="http://www-128.ibm.com/developerworks/java/jdk/">http://www-128.ibm.com/developerworks/java/jdk/</a>.\r
-\r
-<h1>Step 2: Install Cygwin</h1>\r
-\r
-<font color=red> This step is required for Windows installations only. If you are installing\r
-on Linux, skip to step 3.</font>\r
-\r
-<p>We have put online the cygwin packages that we've confirmed to be\r
-compatible with TinyOS. The instructions below use those packages. You\r
-can also upgrade your cygwin environment according to the instructions\r
-at www.cygwin.com and your environment will most likely work. A large\r
-number of TinyOS users, upgrade their cygwin packages at least monthly\r
-from cygnus. However, since we can't test what packages are compatible\r
-as they become available daily, we can't confirm that today's set will\r
-work.\r
-\r
-<p>\r
-<ol>\r
-<li> Download the confirmed-compatible cygwin packages from the tinyos web site <a href="http://www.tinyos.net/dist-1.2.0/tools/windows/cygwin-1.2a.tgz">here</a>.\r
-<p>\r
-<li> In a cygwin shell, unzip the above package into some directory. In these instructions the directory is /cygdrive/c/newcygpkgs.\r
-<pre>\r
-     $ cd /cygdrive/c/newcygpkgs\r
-     $ tar zxvf cygwin-1.2a.tgz \r
-</pre>\r
-This unzips the packages.\r
-<p>\r
-<li> In Windows Explorer, navigate to /cygdrive/c/newcygpkgs and click on the file setup.exe. Setup.exe is the setup program distributed by Cygnus Solutions.\r
-<p>\r
-<li> Follow these steps when the Cygwin Setup windows appears:\r
-<ol>\r
-</ol>\r
-<li> Opt to disable the virus scanner (it will be enabled when you're finished).\r
-<p>\r
-<li> Opt to Install from Local Directory.\r
-<p>\r
-<li> Specify the Root directory to be where your <i>current</i> cygwin installation is. This would be the directory that directories like 'opt' and 'usr' are in. For example, mine is rooted at c:\tinyos\cygwin, so I enter that.  \r
-<p>\r
-<li> Select to Install for All Users\r
-<p>\r
-<li> Select the Unix file type (very important!)\r
-<p>\r
-<li> For the Local Packages Directory, specify where you unzipped the cygwin packages tarfile. For example, I would specify c:\newcygpkgs. (The setup.exe program will probably select the right default directory.)\r
-<p>\r
-<li> The next window will allow you to select packages to install. You should see that most of the packages have an X-ed box next to them; these are the packages that are to be installed. \r
-<p>\r
-<li> Click install. Some notes: \r
-<ul>\r
-<li> You might see a message explaining that you need to reboot because some files are in use. This most likely means that your cygwin DLL is loaded and in-use and, therefore, cannot be replaced. When you reboot, the new DLL will be loaded. \r
-<li> Related to the above warnings, if you see warnings about the cygwin1.dll not being found, don't worry. All will be well once you reboot and the right DLL is loaded. \r
-</ul>\r
-</ol>\r
-</ol>\r
-\r
-<h1>Step 3: Install native compilers </h1>\r
-\r
-Install the appropriate version of the following (Windows or Linux,\r
-avr or msp430 or both) with the rpm command 'rpm -ivh <rpm>'. \r
-On\r
-windows, if you get an error claiming that the rpm was build for an NT\r
-computer and you're on a windows NT computer, bypass the erroneous\r
-error by using 'rpm -ivh --ignoreos <i>rpmname</i>'.\r
-(We have xscale\r
-compiler tools online at \r
-<a href="http://www.tinyos.net/dist-1.2.0/tools/">http://www.tinyos.net/dist-1.2.0/tools/</a>\r
-but they have not yet been extensively tested by a large community.)\r
-\r
-<!----- AVR external tools -------->\r
-</p><p><b><em>Atmel AVR Tools</em></b>\r
-<table border="0">\r
-<tbody><tr>\r
-  <td bgcolor="#dddddd"><b>Tool</b></td>\r
-  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>\r
-  <td bgcolor="#dddddd"><b>Linux</b></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>avr-binutils<font color="red">&#8224;</font></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-binutils-2.15tinyos-3.cygwin.i386.rpm">avr-binutils-2.15tinyos-3.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-binutils-2.15tinyos-3.i386.rpm">avr-binutils-2.15tinyos-3.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">avr-gcc</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-gcc-3.4.3-1.cygwin.i386.rpm">avr-gcc-3.4.3-1.cygwin.i386.rpm </a></td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-gcc-3.4.3-1.i386.rpm">avr-gcc-3.4.3-1.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>avr-libc</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-libc-1.2.3-1.cygwin.i386.rpm">avr-libc-1.2.3-1.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-libc-1.2.3-1.i386.rpm">avr-libc-1.2.3-1.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">avarice</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avarice-2.4-1.cygwin.i386.rpm">avarice-2.4-1.cygwin.i386.rpm</a></td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avarice-2.4-1.i386.rpm">avarice-2.4-1.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>insight (avr-gdb)</td>\r
-  <td><a href="http://www.tinyos.net/dist-1.2.0/tools/windows/avr-insight-6.3-1.cygwin.i386.rpm">avr-insight-6.3-1.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-insight-6.3-1.i386.rpm">avr-insight-6.3-1.i386.rpm</a></td>\r
-</tr>\r
-\r
-</tbody></table>\r
-<i><font color="red">&#8224;</font>If you receive an rpm error that indicates that you have a newer version already installed, try <code>rpm -Uvh --force</code></i>\r
-\r
-<!----- MSP external tools -------->\r
-</p><p><b><em>TI MSP430 Tools</em></b>\r
-<table border="0">\r
-<tbody><tr>\r
-  <td bgcolor="#dddddd"><b>Tool</b></td>\r
-  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>\r
-  <td bgcolor="#dddddd"><b>Linux</b></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>base</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-base-0.1-20050607.cygwin.i386.rpm">msp430tools-base-0.1-20050607.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-base-0.1-20050607.i386.rpm">msp430tools-base-0.1-20050607.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">python tools</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-python-tools-1.0-1.cygwin.noarch.rpm">msp430tools-python-tools-1.0-1.cygwin.noarch.rpm</a></td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-python-tools-1.0-1.noarch.rpm">msp430tools-python-tools-1.0-1.noarch.rpm</a></td>\r
-</tr>\r
-\r
-\r
-<tr>\r
-  <td>binutils</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-binutils-2.16-20050607.cygwin.i386.rpm"> msp430tools-binutils-2.16-20050607.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-binutils-2.16-20050607.i386.rpm">msp430tools-binutils-2.16-20050607.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">gcc</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm">msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm</a></td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-gcc-3.2.3-20050607.i386.rpm">msp430tools-gcc-3.2.3-20050607.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>libc</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-libc-20050308cvs-20050608.cygwin.i386.rpm">msp430tools-libc-20050308cvs-20050608.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-libc-20050308cvs-20050608.i386.rpm">msp430tools-libc-20050308cvs-20050608.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">jtag</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/"></a>Not yet available</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm">msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm</a></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>gdb</td>\r
-<!--  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-gdb-6.0-20050609.cygwin.i386.rpm">msp430tools-gdb-6.0-20050609.cygwin.i386.rpm</a></td> -->\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/"></a>Not yet available</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-gdb-6.0-20050609.i386.rpm">msp430tools-gdb-6.0-20050609.i386.rpm</a></td>\r
-</tr>\r
-\r
-</tbody></table>\r
-\r
-<h1>Step 4: Install TinyOS toolchain</h1>\r
-\r
-The TinyOS-specific tools are the NesC compiler and a set of tools\r
-developed in the tinyos-2.x/tools source code repository. They are\r
-also installed using rpms. \r
-<!----- tinyos-2.x/tinyos rpms  -------->\r
-</p><p><b><em>TinyOS-specific Tools</em></b>\r
-<table border="0">\r
-<tbody><tr>\r
-  <td bgcolor="#dddddd"><b>Tool</b></td>\r
-  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>\r
-  <td bgcolor="#dddddd"><b>Linux</b></td>\r
-  <td bgcolor="#dddddd"><b>Command</b></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>NesC</td>\r
-  <td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/windows/nesc-1.2.7a-1.cygwin.i386.rpm">nesc-1.2.7a-1.cygwin.i386.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/linux/nesc-1.2.7a-1.i386.rpm">nesc-1.2.7a-1.i386.rpm </a></td>\r
-  <td><a href=""></a><code>rpm -Uvh</code></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td bgcolor="#dddddd">tinyos-tools</td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-tools-1.2.2-1.cygwin.i386.rpm">tinyos-tools-1.2.2-1.cygwin.i386.rpm</a></td>\r
-  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.2-1.i386.rpm">tinyos-tools-1.2.2-1.i386.rpm</a></td>\r
-  <td bgcolor="#dddddd"><a href=""></a><code>rpm -ivh --force</code>&nbsp;(1.x tree)<br><code>rpm -Uvh</code>&nbsp;(no 1.x tree)<br></td>\r
-</tr>\r
-\r
-</tbody></table>\r
-\r
-<h1>Step 5: Install the TinyOS 2.x source tree </h1>\r
-\r
-Now that the tools are installed, you need only install the tinyos 2.x \r
-source tree and then set your environment variables.\r
-Install the appropriate version of the following (Window or Linux)\r
-with the rpm command 'rpm -ivh <rpm>'. \r
-As with the previous rpms, if you get an error claiming that the rpm\r
-was build for an NT computer and you're on a windows NT computer,\r
-bypass the erroneous error by using 'rpm -ivh --ignoreos\r
-<i>rpmname</i>'.\r
-\r
-<ul>\r
-<li> Install tinyos-2.x\r
-<p>\r
-<!----- TinyOS  -------->\r
-\r
-\r
-</p><p><b><em>TinyOS 2.x</em></b>\r
-<table border="0">\r
-<tbody><tr>\r
-  <td bgcolor="#dddddd"><b></b></td>\r
-  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>\r
-  <td bgcolor="#dddddd"><b>Linux</b></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>TinyOS</td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-2.0.0beta2-3.cygwin.noarch.rpm">tinyos-2.0.0beta2-3.cygwin.noarch.rpm</a></td>\r
-  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-2.0.0beta2-3.noarch.rpm">tinyos-2.0.0beta2-3.noarch.rpm</a></td>\r
-</tr>\r
-\r
-</tbody></table>\r
-</p></li><li> Configure your environment\r
-<p>\r
-Ideally, you'll put these environment variables in a shell script that will run when your shell starts, but you needn't \r
-put such a script under /etc/profile.d. \r
-</p><p>\r
-The example\r
-settings below assume that the tinyos-2.x installation is in /opt/tinyos-2.x.\r
-Change the settings to be correct for where you've put your tinyos-2.x tree. Note\r
-that the windows CLASSPATH must be a windows-style path, not a cygwin path. You can \r
-generate a windows style path from a cygwin-style path using 'cygpath -w'. For example:\r
-</p><pre>export CLASSPATH=`cygpath -w $TOSROOT/support/sdk/java/tinyos.jar`\r
-export CLASSPATH="$CLASSPATH;."\r
-</pre>\r
-\r
-<p><b><em>TinyOS 2.x</em></b>\r
-<table border="0">\r
-<tbody><tr>\r
-  <td bgcolor="#dddddd"><b>Environment Variable</b></td>\r
-  <td bgcolor="#dddddd"><b>Windows</b></td>\r
-  <td bgcolor="#dddddd"><b>Linux</b></td>\r
-</tr>\r
-\r
-<tr>\r
-  <td>TOSROOT</td>\r
-  <td>/opt/tinyos-2.x</td>\r
-  <td>same as in Cygwin</td>\r
-<td>\r
-\r
-</td></tr><tr>\r
-  <td bgcolor="#dddddd">TOSDIR</td>\r
-  <td bgcolor="#dddddd">$TOSROOT/tos</td>\r
-  <td bgcolor="#dddddd">same as in Cygwin</td>\r
-<td>\r
-\r
-</td></tr><tr>\r
-  <td>CLASSPATH</td>\r
-  <td>C:\tinyos\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar;.</td>\r
-  <td>$TOSROOT/support/sdk/java/tinyos.jar:.</td>\r
-<td>\r
-\r
-</td></tr><tr>\r
-  <td bgcolor="#dddddd">MAKERULES</td>\r
-  <td bgcolor="#dddddd">$TOSROOT/support/make/Makerules</td>\r
-  <td bgcolor="#dddddd">same as in Cygwin</td>\r
-<td>\r
-\r
-</td></tr><tr>\r
-  <td>PATH<font color="red">&#8224;</font></td>\r
-  <td>/opt/msp430/bin:$PATH</td>\r
-  <td>same as in Cygwin</td>\r
-<td>\r
-\r
-</td></tr></tbody></table>\r
-\r
-<i><font color="red">&#8224;</font>Only necessary if you're using the MSP430 platform/tools.</i>\r
-\r
-</p><p>\r
-In addition to the above environment variables, do the following on Linux machines:\r
-</p><ol>\r
-<li> Change the ownership on your /opt/tinyos-2.x files: <code>chown -R&nbsp;&lt;your uid&gt;&nbsp;/opt/tinyos-2.x\r
-</code></li><li> Change the permissions on any serial (/dev/ttyS&lt;N&gt;), usb\r
-(/dev/tts/usb&lt;N&gt;, /dev/ttyUSB&lt;N&gt;), or parallel (/dev/parport) devices you\r
-are going to use: <code>chmod 666 /dev/&lt;devicename&gt;<code>\r
-<!-- \r
-<li> Add any users who will be using TinyOS to the uucp, lp, and lock \r
-groups: </li>\r
--->\r
-</code></code></li></ol>\r
-\r
-</li></ul>\r
-\r
-<h1>Step 6: Installing Graphviz</h1>\r
-\r
-<p>Go to <A HREF="http://www.graphviz.org/Download..php">download page</A> of the Graphviz project\r
-and download the appropriate RPM. You only need the basic graphviz RPM (<tt>graphviz-</tt>);\r
-you don't need all of the add-ons, such as -devel, -doc, -perl, etc.\r
-If you're not sure what version of Linux you're running,</p>\r
-\r
-<pre>uname -a</pre>\r
-\r
-<p>might give you some useful information. Install the rpm with <tt>rpm -i </tt> <i>rpm-name</i>.\r
-In the case of Windows, there is a simple install program, so you don't need to deal with RPMs.</p>\r
-\r
-</body>\r
-</html>\r
+
+<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <title>Installing TinyOS 2.0.2</title>
+  <link href="../stylesheets/tutorial.css" rel="stylesheet" type="text/css">
+</head>
+<body>
+
+<div class="title">Installing TinyOS 2.0.2</div>
+<div class="subtitle">Last updated 30 July 2007</div>
+
+<p>If you already have a 1.x tree or an existing 2.x tree, you are better off 
+following the <i>upgrade</i> instructions at 
+<a href="upgrade-tinyos.html">upgrade-tinyos.html</a>. There are two ways to install
+      TinyOS. The first way is to install a live CD that gives
+      you a virtualized Linux with a complete TinyOS install. Note that since
+      this is on a CD, you can't modify anything; you can, however, make
+      a LiveUSB device to use as your TinyOS install. The second way is to
+      install TinyOS on your host operating system. When installing
+      on a host operating system, you can either use a debian package
+      repository or manually instally with RPMs.</p> 
+
+      <h1>One-step Install with a Live CD</h1>
+
+      <p><A
+      HREF="http://toilers.mines.edu/Public/XubunTOS">Download a
+      Linux live CD that has a TinyOS installation on it</A>. 
+      All you
+      need to do is download the CD image, burn it onto a CD, and
+      install from there. This saves you all of the complexities of
+      installation, and it's the recommended way to install
+      TinyOS. The link above has complete instructions. The live CD is
+      provided by the Toilers group at the Colorado School of
+      Mines.</p>
+
+      <h1>Two-step install on your host OS with Debian packages</h1>
+
+   <p>If you are running a version of Linux that supports Debian packages, then
+   you may want to use the TinyOS package repository. There is a <A HREF="http://www.tinyos.net/scoop/story/2007/3/1/142950/4912">story on www.tinyos.net</A> 
+   that describes how to use it. If you do this, then you do not have to
+   install the instructions here, except that you will need to check
+   that your environment is set up correctly (the end of step 5 in
+    the manual installation.</p>
+
+      <h1>Manual installation on your host OS with RPMs</h1>
+<p>Currently, the TinyOS Core Working Group supports TinyOS on two platforms: Cygwin (Windows)
+and Linux. There have been some <A HREF="">successful efforts</A> to getting TinyOS environments working
+on Mac OSX, but OSX is not supported by the Core WG.</p>
+
+
+<p>Installing a TinyOS enviromnent has five basic steps; Windows requires an extra step,
+installing Cygwin, which is a UNIX-like environment. The steps are:</p>
+
+<ol>
+  <li><b>Installing a Java 1.5 (Java 5) JDK.</b> Java is the most common way of interacting
+  with mote base stations or gateways that are plugged into a PC or laptop.</li>
+  <li><b><font color=red>Windows only.</font> Install Cygwin.</b> This gives you a shell
+  and many UNIX tools which the TinyOS environment uses, such as perl and shell
+  scripts.</li>
+  <li><b>Installing native compilers.</b> As you're compiling code for low-power
+  microcontrollers, you need compilers that can generate the proper assembly code.
+  If you using mica-family motes, you need the AVR toolchain; if you're using
+  telos-family motes, you need the MSP430 toolchain.</li>
+  <li><b>Installing the nesC compiler.</b> TinyOS is written in nesC, a dialect
+  of C with support for the TinyOS concurrency model and component-based
+  programming. The nesC compiler is platform-independent: it passes its output
+  to the native compilers, so that it can take advantage of all of the effort
+  put into their optimizations.</li>
+  <li><b>Installing the TinyOS source tree.</b> If you want to compile and
+  install TinyOS programs, you need the code.</li>
+  <li><b>Installing the Graphviz visualization tool.</b> The TinyOS
+  environment includes <tt>nesdoc</tt>, a tool that automatically
+  generates HTML documentation from source code. Part of this process
+  involves drawing diagrams that show the relationships between
+  different TinyOS components. <A HREF="http://www.graphviz.org">Graphviz</A>
+  is an open source tool
+  that nesdoc uses to draw the diagrams.</li>
+</ol>
+
+<h2>Step 1: Install Java 1.5 JDK</h2>
+
+<b>Windows</b><br>
+Download and install Sun's 1.5 JDK from <a href="http://java.sun.com">http://java.sun.com</a>.
+
+<p>
+<b>Linux</b><br>
+Download and install IBM's 1.5 JDK from <a href="http://www-128.ibm.com/developerworks/java/jdk/">http://www-128.ibm.com/developerworks/java/jdk/</a>.
+
+<h2>Step 2: Install Cygwin</h2>
+
+<font color=red> This step is required for Windows installations only. If you are installing
+on Linux, skip to step 3.</font>
+
+<p>We have put online the cygwin packages that we've confirmed to be
+compatible with TinyOS. The instructions below use those packages. You
+can also upgrade your cygwin environment according to the instructions
+at www.cygwin.com and your environment will most likely work. A large
+number of TinyOS users, upgrade their cygwin packages at least monthly
+from cygnus. However, since we can't test what packages are compatible
+as they become available daily, we can't confirm that today's set will
+work.
+
+<p>
+<ol>
+<li> Download and install Cygwin from <A HREF="http://www.cygwin.com">www.cygwin.com</A>.</li>
+<p>
+<li> Download the confirmed-compatible cygwin packages from the tinyos web site <a href="http://www.tinyos.net/dist-1.2.0/tools/windows/cygwin-1.2a.tgz">here</a>.
+<p>
+<li> In a cygwin shell, unzip the above package into some directory. In these instructions the directory is /cygdrive/c/newcygpkgs.
+<pre>
+     $ cd /cygdrive/c/newcygpkgs
+     $ tar zxvf cygwin-1.2a.tgz 
+</pre>
+This unzips the packages.
+<p>
+<li> In Windows Explorer, navigate to /cygdrive/c/newcygpkgs and click on the file setup.exe. Setup.exe is the setup program distributed by Cygnus Solutions.
+<p>
+<li> Follow these steps when the Cygwin Setup windows appears:
+<ol>
+</ol>
+<li> Opt to disable the virus scanner (it will be enabled when you're finished).
+<p>
+<li> Opt to Install from Local Directory.
+<p>
+<li> Specify the Root directory to be where your <i>current</i> cygwin installation is. This would be the directory that directories like 'opt' and 'usr' are in. For example, mine is rooted at c:\tinyos\cygwin, so I enter that.  
+<p>
+<li> Select to Install for All Users
+<p>
+<li> Select the Unix file type (very important!)
+<p>
+<li> For the Local Packages Directory, specify where you unzipped the cygwin packages tarfile. For example, I would specify c:\newcygpkgs. (The setup.exe program will probably select the right default directory.)
+<p>
+<li> The next window will allow you to select packages to install. You should see that most of the packages have an X-ed box next to them; these are the packages that are to be installed. 
+<p>
+<li> Click install. Some notes: 
+<ul>
+<li> You might see a message explaining that you need to reboot because some files are in use. This most likely means that your cygwin DLL is loaded and in-use and, therefore, cannot be replaced. When you reboot, the new DLL will be loaded. 
+<li> Related to the above warnings, if you see warnings about the cygwin1.dll not being found, don't worry. All will be well once you reboot and the right DLL is loaded. 
+</ul>
+</ol>
+</ol>
+
+<h2>Step 3: Install native compilers </h2>
+
+Install the appropriate version of the following (Windows or Linux,
+avr or msp430 or both) with the rpm command 'rpm -ivh <rpm>'. 
+On
+windows, if you get an error claiming that the rpm was build for an NT
+computer and you're on a windows NT computer, bypass the erroneous
+error by using 'rpm -ivh --ignoreos <i>rpmname</i>'.
+(We have xscale
+compiler tools online at 
+<a href="http://www.tinyos.net/dist-1.2.0/tools/">http://www.tinyos.net/dist-1.2.0/tools/</a>
+but they have not yet been extensively tested by a large community.)
+
+<!----- AVR external tools -------->
+</p><p><b><em>Atmel AVR Tools</em></b>
+<table border="0">
+<tbody><tr>
+  <td bgcolor="#dddddd"><b>Tool</b></td>
+  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>Linux</b></td>
+</tr>
+
+<tr>
+  <td>avr-binutils<font color="red">&#8224;</font></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-binutils-2.15tinyos-3.cygwin.i386.rpm">avr-binutils-2.15tinyos-3.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-binutils-2.15tinyos-3.i386.rpm">avr-binutils-2.15tinyos-3.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td bgcolor="#dddddd">avr-gcc</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-gcc-3.4.3-1.cygwin.i386.rpm">avr-gcc-3.4.3-1.cygwin.i386.rpm </a></td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-gcc-3.4.3-1.i386.rpm">avr-gcc-3.4.3-1.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td>avr-libc</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avr-libc-1.2.3-1.cygwin.i386.rpm">avr-libc-1.2.3-1.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-libc-1.2.3-1.i386.rpm">avr-libc-1.2.3-1.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td bgcolor="#dddddd">avarice</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/avarice-2.4-1.cygwin.i386.rpm">avarice-2.4-1.cygwin.i386.rpm</a></td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avarice-2.4-1.i386.rpm">avarice-2.4-1.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td>insight (avr-gdb)</td>
+  <td><a href="http://www.tinyos.net/dist-1.2.0/tools/windows/avr-insight-6.3-1.cygwin.i386.rpm">avr-insight-6.3-1.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/avr-insight-6.3-1.i386.rpm">avr-insight-6.3-1.i386.rpm</a></td>
+</tr>
+
+</tbody></table>
+<i><font color="red">&#8224;</font>If you receive an rpm error that indicates that you have a newer version already installed, try <code>rpm -Uvh --force</code></i>
+
+<!----- MSP external tools -------->
+</p><p><b><em>TI MSP430 Tools</em></b>
+<table border="0">
+<tbody><tr>
+  <td bgcolor="#dddddd"><b>Tool</b></td>
+  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>Linux</b></td>
+</tr>
+
+<tr>
+  <td>base</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-base-0.1-20050607.cygwin.i386.rpm">msp430tools-base-0.1-20050607.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-base-0.1-20050607.i386.rpm">msp430tools-base-0.1-20050607.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td bgcolor="#dddddd">python tools</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-python-tools-1.0-1.cygwin.noarch.rpm">msp430tools-python-tools-1.0-1.cygwin.noarch.rpm</a></td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-python-tools-1.0-1.noarch.rpm">msp430tools-python-tools-1.0-1.noarch.rpm</a></td>
+</tr>
+
+
+<tr>
+  <td>binutils</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-binutils-2.16-20050607.cygwin.i386.rpm"> msp430tools-binutils-2.16-20050607.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-binutils-2.16-20050607.i386.rpm">msp430tools-binutils-2.16-20050607.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td bgcolor="#dddddd">gcc</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm">msp430tools-gcc-3.2.3-20050607.cygwin.i386.rpm</a></td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-gcc-3.2.3-20050607.i386.rpm">msp430tools-gcc-3.2.3-20050607.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td>libc</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-libc-20050308cvs-20050608.cygwin.i386.rpm">msp430tools-libc-20050308cvs-20050608.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-libc-20050308cvs-20050608.i386.rpm">msp430tools-libc-20050308cvs-20050608.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td bgcolor="#dddddd">jtag</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/"></a>Not yet available</td>
+  <td bgcolor="#dddddd"><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm">msp430tools-jtag-lib-20031101cvs-20050610.i386.rpm</a></td>
+</tr>
+
+<tr>
+  <td>gdb</td>
+<!--  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/msp430tools-gdb-6.0-20050609.cygwin.i386.rpm">msp430tools-gdb-6.0-20050609.cygwin.i386.rpm</a></td> -->
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/windows/"></a>Not yet available</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tools/linux/msp430tools-gdb-6.0-20050609.i386.rpm">msp430tools-gdb-6.0-20050609.i386.rpm</a></td>
+</tr>
+
+</tbody></table>
+
+<h2>Step 4: Install TinyOS toolchain</h2>
+
+The TinyOS-specific tools are the NesC compiler and a set of tools
+developed in the tinyos-2.x/tools source code repository. They are
+also installed using rpms. If you using the Cygwin version recommended
+in these install
+instructions, you should install the "Recommended" Windows/Cygwin
+nesC RPM. 
+If you
+get strange errors when you try to compile TinyOS programs,
+such as the error message "the procedure entry point basename could not be located
+in the dynamic link library cygwin1.dll", this is likely due
+to a Cygwin version incompatibility: try the "Other" Windows/Cygwin 
+RPM (1.2.7a).
+If you are using Cygwin and installing the nesC RPM
+causes an error that the RPM was built for Cygwin,
+add the <code>--ignoreos</code> option.
+
+Finally, there are two Linux versions of tinyos-tools, depending
+on whether you have a 32-bit or 64-bit machine. The first is the
+i386 RPM and the second is the i686 RPM. If you have a 64-bit
+Java VM, it is important that you install the i686 RPM or otherwise
+the Java support may not work properly.
+
+<!----- tinyos-2.x/tinyos rpms  -------->
+</p><p><b><em>TinyOS-specific Tools</em></b>
+<table border="0">
+<tbody><tr>
+  <td bgcolor="#dddddd"><b>Tool</b></td>
+  <td bgcolor="#dddddd"><b>Recommended Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>Other Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>Linux</b></td>
+  <td bgcolor="#dddddd"><b>Command</b></td>
+</tr>
+
+<tr>
+  <td>NesC</td>
+  <td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/windows/nesc-1.2.8a-1.cygwin.i386.rpm">nesc-1.2.8a-1.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/windows/nesc-1.2.8b-1.cygwin.i386.rpm">nesc-1.2.8b-1.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-1.2.0/tinyos/linux/nesc-1.2.8a-1.i386.rpm">nesc-1.2.8a-1.i386.rpm </a></td>
+  <td><a href=""></a><code>rpm -Uvh</code><br>
+                     <code>rpm -Uvh --ignoreos</code> (if Cygwin complains)</td>
+</tr>
+<tr></tr>
+<tr>
+  <td bgcolor="#dddddd"><b>Tool</b></td>
+  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>32-bit Linux</b></td>
+  <td bgcolor="#dddddd"><b>64-bit Linux</b></td>
+  <td bgcolor="#dddddd"><b>Command</b></td>
+</tr>
+<tr>
+  <td>tinyos-tools</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-tools-1.2.4-2.cygwin.i386.rpm">tinyos-tools-1.2.4-2.cygwin.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.4-2.i386.rpm">tinyos-tools-1.2.4-2.i386.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-tools-1.2.4-2.i686.rpm">tinyos-tools-1.2.4-2.i686.rpm</a></td>
+  <td><a href=""></a><code>rpm -ivh --force</code>&nbsp;(1.x tree)<br><code>rpm -Uvh</code>&nbsp;(no 1.x tree)<br></td>
+</tr>
+
+</tbody></table>
+
+<h2>Step 5: Install the TinyOS 2.x source tree </h2>
+
+Now that the tools are installed, you need only install the tinyos 2.x 
+source tree and then set your environment variables.
+Install the appropriate version of the following (Window or Linux)
+with the rpm command 'rpm -ivh <rpm>'. 
+As with the previous rpms, if you get an error claiming that the rpm
+was build for an NT computer and you're on a windows NT computer,
+bypass the erroneous error by using 'rpm -ivh --ignoreos
+<i>rpmname</i>'.
+<p>
+<ul>
+<li> Install tinyos-2.x
+<p>
+<!----- TinyOS  -------->
+
+
+</p><p><b><em>TinyOS 2.x</em></b>
+<table border="0">
+<tbody><tr>
+  <td bgcolor="#dddddd"><b></b></td>
+  <td bgcolor="#dddddd"><b>Windows/Cygwin</b></td>
+  <td bgcolor="#dddddd"><b>Linux</b></td>
+</tr>
+
+<tr>
+  <td>TinyOS</td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/windows/tinyos-2.0.2-2.cygwin.noarch.rpm">tinyos-2.0.2-2.cygwin.noarch.rpm</a></td>
+  <td><a href="http://www.tinyos.net/dist-2.0.0/tinyos/linux/tinyos-2.0.2-2.noarch.rpm">tinyos-2.0.2-2.noarch.rpm</a></td>
+</tr>
+
+</tbody></table>
+</p></li><li> Configure your environment
+<p>
+Ideally, you'll put these environment variables in a shell script that will run when your shell starts, but you needn't 
+put such a script under /etc/profile.d. 
+</p><p>
+The example
+settings below assume that the tinyos-2.x installation is in /opt/tinyos-2.x.
+Change the settings to be correct for where you've put your tinyos-2.x tree. Note
+that the windows CLASSPATH must be a windows-style path, not a cygwin path. You can 
+generate a windows style path from a cygwin-style path using 'cygpath -w'. For example:
+</p><pre>export CLASSPATH=`cygpath -w $TOSROOT/support/sdk/java/tinyos.jar`
+export CLASSPATH="$CLASSPATH;."
+</pre>
+
+<p><b><em>TinyOS 2.x</em></b>
+<table border="0">
+<tbody><tr>
+  <td bgcolor="#dddddd"><b>Environment Variable</b></td>
+  <td bgcolor="#dddddd"><b>Windows</b></td>
+  <td bgcolor="#dddddd"><b>Linux</b></td>
+</tr>
+
+<tr>
+  <td>TOSROOT</td>
+  <td>/opt/tinyos-2.x</td>
+  <td>same as in Cygwin</td>
+<td>
+
+</td></tr><tr>
+  <td bgcolor="#dddddd">TOSDIR</td>
+  <td bgcolor="#dddddd">$TOSROOT/tos</td>
+  <td bgcolor="#dddddd">same as in Cygwin</td>
+<td>
+
+</td></tr><tr>
+  <td>CLASSPATH</td>
+  <td>C:\tinyos\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar;.</td>
+  <td>$TOSROOT/support/sdk/java/tinyos.jar:.</td>
+<td>
+
+</td></tr><tr>
+  <td bgcolor="#dddddd">MAKERULES</td>
+  <td bgcolor="#dddddd">$TOSROOT/support/make/Makerules</td>
+  <td bgcolor="#dddddd">same as in Cygwin</td>
+<td>
+
+</td></tr><tr>
+  <td>PATH<font color="red">&#8224;</font></td>
+  <td>/opt/msp430/bin:$PATH</td>
+  <td>same as in Cygwin</td>
+<td>
+
+</td></tr></tbody></table>
+
+<i><font color="red">&#8224;</font>Only necessary if you're using the MSP430 platform/tools.</i>
+
+</p><p>
+In addition to the above environment variables, do the following on Linux machines:
+</p><ol>
+<li> Change the ownership on your /opt/tinyos-2.x files: <code>chown -R&nbsp;&lt;your uid&gt;&nbsp;/opt/tinyos-2.x
+</code></li><li> Change the permissions on any serial (/dev/ttyS&lt;N&gt;), usb
+(/dev/tts/usb&lt;N&gt;, /dev/ttyUSB&lt;N&gt;), or parallel (/dev/parport) devices you
+are going to use: <code>chmod 666 /dev/&lt;devicename&gt;<code>
+<!-- 
+<li> Add any users who will be using TinyOS to the uucp, lp, and lock 
+groups: </li>
+-->
+</code></code></li></ol>
+
+
+
+
+<li><p>Finally, if you have installed TinyOS 2.0.1, there is a bug in TOSSIM (which will be fixed in 2.0.2).
+The bug is in file <tt>tos/chips/atm128/sim/atm128_sim.h</tt>. Change these lines 22 and 23 from:
+
+<pre>
+#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr) + 0x20)
+#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr) + 0x20)
+</pre>
+
+to
+
+<pre>
+#define _SFR_IO8(io_addr) _MMIO_BYTE((io_addr))
+#define _SFR_IO16(io_addr) _MMIO_WORD((io_addr))
+</pre>
+
+If you do not do this, then timers will not work correctly.
+
+</li></ul>
+
+<h2>Step 6: Installing Graphviz</h2>
+
+<p>Go to <A HREF="http://www.graphviz.org/Download..php">download page</A> of the Graphviz project
+and download the appropriate RPM. You only need the basic graphviz RPM (<tt>graphviz-</tt>);
+you don't need all of the add-ons, such as -devel, -doc, -perl, etc.
+If you're not sure what version of Linux you're running,</p>
+
+<pre>uname -a</pre>
+
+<p>might give you some useful information. Install the rpm with <tt>rpm -i </tt> <i>rpm-name</i>.
+In the case of Windows, there is a simple install program, so you don't need to deal with RPMs.</p>
+
+</body>
+</html>