Difference between revisions of "Xubuntu 10.04, SVN T2.1, Step by step"

From TinyOS Wiki
Jump to: navigation, search
Line 1: Line 1:
# Install Xubuntu 8.04 LTS.
+
 
 +
1) OS Install.
  
 
Install the OS, Ubuntu (Xubuntu uses less resources) on the box.  Recommended is
 
Install the OS, Ubuntu (Xubuntu uses less resources) on the box.  Recommended is
 
Xubuntu 8.04 (LTS).  A simple install is fine and will take less time.
 
Xubuntu 8.04 (LTS).  A simple install is fine and will take less time.
  
Also install the following packages:
 
 
      subversion cvs build-essentials stow automake autoconf autobook libtool
 
 
# MamMark tree checkout
 
 
  check out the MamMark source tree.  (denote top level as <mm_t2_base>)
 
  
  a) Current hosting site is zoo.cse.ucsc.edu.  <repo_site>
+
When the install is complete, boot the system, and use Synaptic or other package
  b) cd <mm_t2_base>.
+
manager to make sure the following packages are included:
  c) svn co svn://<repo_site>/mammark_tinyos2/t2_mm3
 
  
  This will create the source tree as <mm_t2_base>/t2_mm3.
+
      subversion
 +
      cvs
 +
      build-essentials
 +
      stow
 +
      automake
 +
      autoconf
 +
      autobook
 +
      libtool
  
  Various configuration files used to construct a full build environment are located
 
  in <mm_t2_base>/t2_mm3/Added_Bits.
 
  
3) [TinyOS 2.x tree checkout]
+
2) TinyOS 2.x tree checkout
  
  Check out the current TinyOS 2.x tree.  We use the head of the T2 development
+
Check out the current TinyOS 2.x tree.  We use the head of the T2 development
  tree which is a little dangerous so pay attention to what comes in with an update.
+
tree which is a little dangerous so pay attention to what comes in with an update.
 +
<t2_base> refers to the root of the T2 tree.  For example: /home/joe/t2_base
  
   a) cd <mm_t2_base>
+
   a) cd <t2_base>
   b) mkdir t2 (I use t2_<date_stamp> and then ln -s t2_<date_stamp> t2_cur)
+
   b) mkdir <t2_cur> (one suggestion is to use t2_<date_stamp> and then ln -s t2_<date_stamp> t2_cur)
   c) cd t2
+
   c) cd t2_cur
 
   d) cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x
 
   d) cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x
  
  e) Apply mm3 specific patches to the main T2 core...
+
This will pull the current T2 CVS source tree starting at /home/joe/t2_cur/tinyos-2.x.
 
 
      .) cd <mm_t2_base>/t2_cur/tinyos-2.x
 
      .) for i in ../../t2_mm3/Added_Bits/*.patch; do \
 
            patch -p0 < $i; done
 
 
 
5) [TI USB Jtag driver fix]
 
 
 
  Initial Ubuntu 8.04 has a version of the ti_usb_3410_5052 driver (used to
 
  talk to the MSP430 jtag pod) that is slightly modified from the standard
 
  linux kernel available at kernel.org.  The standard kernel's version of the
 
  ti serial driver works so we will just reintall that.
 
 
 
  a) Expand t2_mm3/Added_Bits/mspfet_driver.zip.  (This will create the directory
 
      mspfet_driver).
 
  b) mspfet_driver/readme.txt has more information.  Read them.  It is good.
 
  c) make
 
  d) temporarily install the new driver.
 
 
 
      a) execute the file mspfet_driver/reload and plug the pod in.
 
 
 
      b) check /var/log/messages for the following messages.  Should be towards the end.
 
        The key thing to look for is "converter now attached to ttyUSB0" or some such.
 
 
 
/build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 3410 1 port adapter
 
/build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 5052 2 port adapter
 
usbcore: registered new interface driver ti_usb_3410_5052
 
/home/cire/Desktop/mspfet_driver/ti_usb_3410_5052.c: TI USB 3410/5052 Serial Driver v0.9
 
usb 1-2: new full speed USB device using ohci_hcd and address 2
 
usb 1-2: configuration #1 chosen from 1 choice
 
ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
 
usb 1-2: reset full speed USB device using ohci_hcd and address 2
 
usb 1-2: device firmware changed
 
ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
 
usb 1-2: USB disconnect, address 2
 
usb 1-2: new full speed USB device using ohci_hcd and address 3
 
usb 1-2: configuration #1 chosen from 2 choices
 
ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
 
ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
 
ti_usb_3410_5052 1-2:2.0: TI USB 3410 1 port adapter converter detected
 
usb 1-2: TI USB 3410 1 port adapter converter now attached to ttyUSB0
 
 
 
      b) run "lsusb" which should look something like the following:
 
 
 
m-tag (19): lsusb
 
Bus 003 Device 001: ID 0000:0000
 
Bus 002 Device 001: ID 0000:0000
 
Bus 001 Device 005: ID 0451:f430 Texas Instruments, Inc. MSP-FET430UIF JTAG Tool
 
Bus 001 Device 001: ID 0000:0000
 
m-tag (20):
 
 
 
 
 
  d) Make our new version of the ti serial driver permanent.
 
      1st make a back up of the originally installed driver
 
      (/lib/modules/<kernel version>/kernel/drivers/usb/serial/ti_usb_3410_5052.ko)
 
 
 
      ie:
 
      modprobe -r ti_usb_3410_5052
 
      cd /lib/modules/2.6.24-19-generic/kernel/drivers/usb/serial
 
      cp ti_usb_3410_5052.ko ti_usb_3410_5052.ko_old
 
      cp <mm_t2_base>/t2_mm3/Added_Bits/mspfet_driver/ti_usb_3410_5052.ko .
 
      modprobe ti_usb_3410_5052
 
 
 
 
 
  NOTE: It is possible for the correct driver to get replaced if the system is
 
  updated.  This occurs when any kernel packages are updated.  When this occurs
 
  the permanent copy must be done again.
 
  
6) [USB Jtag, /dev/ttyUSBn config 2, permissions fix]
 
  
  We also want to install a udev rule that will correctly enable configuration 2
+
3) Install TinyOS toolset (msp430, avr)
  of the jtag pod (this makes it work). We also modify the permission rule so that
 
  group user can access the jtag pod.  Files exist in the msp430fet_driver directory.
 
  
  a) Install the 40-ti-usb-3410-5052.rules into /etc/udev/rules.d.
+
We want the tinyos toolset for the msp430 (telosb) and the avr (micaz, mica2).
 +
Debian packages are available from Stanford.
  
      cp 40-ti-usb-3410-5052.rules /etc/udev/rules.d
+
Modify the repository source to include:
      mkdir -p /etc/udev/scripts
 
      cp msp430_init /etc/udev/scripts
 
 
 
  b) make the following change in /etc/udev/rules.d/40-permissions.rules
 
 
 
  change:
 
 
 
      SUBSYSTEM=="tty", GROUP="dialout"
 
 
 
  to:
 
 
 
      SUBSYSTEM=="tty", GROUP="users", MODE="0660"
 
 
 
 
 
  Make sure that any users that will be using the device are in group "users".
 
 
 
 
 
7) [Install TinyOS toolset (msp430)]
 
 
 
  Install the tinyos toolset.  We use the msp430 tool chain.  Debian packages are
 
  available from Stanford.
 
 
 
  Modify the repository source to include:
 
  
 
     http://tinyos.stanford.edu/tinyos/dists/ubuntu/ hardy main
 
     http://tinyos.stanford.edu/tinyos/dists/ubuntu/ hardy main
  
  Install the following packages:
+
Install the following packages:
  
 
     deputy-tinyos
 
     deputy-tinyos
Line 151: Line 59:
  
  
8) [Install gdb and msp430-jtag from temporary location]
+
4) Modify PATH and LD_LIBRARY_PATH
 
 
  *** These need to be put into a hardy debian package, they will be ***
 
  *** included in the tinyos-optional (msp430 flavor)                ***
 
  
  a) cd <mm_t2_base>.  (remember to be enabled, sudo)
+
Make sure your PATH and LD_LIBRARY_PATH include /opt/msp430 and
  b) cd t2_mm3/Added_Bits/tools
+
/usr/msp430 as appropriate.
  c) make install
 
 
 
  This should install into /opt/msp430/bin gdb.430 (the msp430-gdb debugger),
 
  msp430-jtag and some other tools.  Appropriate libraries are installed into
 
  /opt/msp430/lib.
 
 
 
 
 
9) [Modify PATH and LD_LIBRARY_PATH]
 
 
 
  Make sure your PATH and LD_LIBRARY_PATH include /opt/msp430 and
 
  /usr/msp430 as appropriate.
 
  
 
   M1="/opt/msp430"
 
   M1="/opt/msp430"
Line 175: Line 69:
 
   export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$M1/lib:$M2/lib:/usr/local/lib"
 
   export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$M1/lib:$M2/lib:/usr/local/lib"
  
10) [Set up build environment settings]
+
 
 +
5) Set up build environment settings
  
 
     The following environment variables must be set to build.
 
     The following environment variables must be set to build.
Line 185: Line 80:
 
     TOSMAKE_PATH
 
     TOSMAKE_PATH
  
     for example:  note: <mm_t2_base> := ~/mm_t2
+
     for example:  note: <t2_base> := ~/t2_base
  
 
#!/bin/sh
 
#!/bin/sh
Line 191: Line 86:
 
MOTECOM="serial@/dev/ttyS0:telosb"
 
MOTECOM="serial@/dev/ttyS0:telosb"
  
TOSROOT=~/mm_t2/t2_cur/tinyos-2.x
+
TOSROOT=~/t2_base/t2_cur/tinyos-2.x
 
TOSDIR=$TOSROOT/tos
 
TOSDIR=$TOSROOT/tos
  
MAMMARK_DIR="/home/cire/mm_t2/t2_mm3"
+
MAMMARK_DIR="/home/joe/t2_base/t2_mm3"
 
TOSMAKE_PATH="$TOSMAKE_PATH $MAMMARK_DIR/support/make"
 
TOSMAKE_PATH="$TOSMAKE_PATH $MAMMARK_DIR/support/make"
  
Line 217: Line 112:
 
export LIBMSPGCC MOTECOM MAMMARK_DIR TOSMAKE_PATH
 
export LIBMSPGCC MOTECOM MAMMARK_DIR TOSMAKE_PATH
  
11) Build SerialForwarder and libmote library.
+
6) TI USB Jtag driver fix
 +
 
 +
The TI USB JTAG pod is used for debugging MSP430 based motes such as the TelosB.  If you
 +
aren't using the pod you don't need to fix the driver.
 +
 
 +
Initial Ubuntu 8.04 has a version of the ti_usb_3410_5052 driver (used to
 +
talk to the MSP430 jtag pod) that is slightly modified from the standard
 +
linux kernel available at kernel.org.  The standard kernel's version of the
 +
ti serial driver works so we will just reinstall that.
 +
 
 +
  a) Expand t2_mm3/Added_Bits/mspfet_driver.zip.  (This will create the directory
 +
    mspfet_driver).
 +
  b) mspfet_driver/readme.txt has more information.  Read them.  It is good.
 +
  c) make
 +
  d) temporarily install the new driver.
 +
 
 +
      /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 3410 1 port adapter
 +
      /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 5052 2 port adapter
 +
      usbcore: registered new interface driver ti_usb_3410_5052
 +
      /home/joe/Desktop/mspfet_driver/ti_usb_3410_5052.c: TI USB 3410/5052 Serial Driver v0.9
 +
      usb 1-2: new full speed USB device using ohci_hcd and address 2
 +
      usb 1-2: configuration #1 chosen from 1 choice
 +
      ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
 +
      usb 1-2: reset full speed USB device using ohci_hcd and address 2
 +
      usb 1-2: device firmware changed
 +
      ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
 +
      usb 1-2: USB disconnect, address 2
 +
      usb 1-2: new full speed USB device using ohci_hcd and address 3
 +
      usb 1-2: configuration #1 chosen from 2 choices
 +
      ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
 +
      ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
 +
      ti_usb_3410_5052 1-2:2.0: TI USB 3410 1 port adapter converter detected
 +
      usb 1-2: TI USB 3410 1 port adapter converter now attached to ttyUSB0
 +
 
 +
  e) run "lsusb" which should look something like the following:
 +
 
 +
m-tag (19): lsusb
 +
Bus 003 Device 001: ID 0000:0000
 +
Bus 002 Device 001: ID 0000:0000
 +
Bus 001 Device 005: ID 0451:f430 Texas Instruments, Inc. MSP-FET430UIF JTAG Tool
 +
Bus 001 Device 001: ID 0000:0000
 +
m-tag (20):
 +
 
 +
 
 +
  f) Make our new version of the ti serial driver permanent.
 +
    1st make a back up of the originally installed driver
 +
    (/lib/modules/<kernel version>/kernel/drivers/usb/serial/ti_usb_3410_5052.ko)
 +
 
 +
    ie:
 +
      modprobe -r ti_usb_3410_5052
 +
      cd /lib/modules/2.6.24-19-generic/kernel/drivers/usb/serial
 +
      cp ti_usb_3410_5052.ko ti_usb_3410_5052.ko_old
 +
      cp <t2_base>/t2_mm3/Added_Bits/mspfet_driver/ti_usb_3410_5052.ko .
 +
      modprobe ti_usb_3410_5052
 +
 
 +
NOTE: It is possible for the correct driver to get replaced if the system is
 +
updated.  This occurs when any kernel packages are updated.  When this occurs
 +
the permanent copy must be done again.
 +
 
 +
 
 +
7) USB Jtag, /dev/ttyUSBn config 2, permissions fix
 +
 
 +
We also want to install a udev rule that will correctly enable configuration 2
 +
of the jtag pod (this makes it work).  We also modify the permission rule so that
 +
group user can access the jtag pod.  Files exist in the msp430fet_driver directory.
 +
 
 +
  a) Install the 40-ti-usb-3410-5052.rules into /etc/udev/rules.d.
 +
 
 +
      cp 40-ti-usb-3410-5052.rules /etc/udev/rules.d
 +
      mkdir -p /etc/udev/scripts
 +
      cp msp430_init /etc/udev/scripts
 +
 
 +
  b) make the following change in /etc/udev/rules.d/40-permissions.rules
 +
 
 +
  change:
 +
 
 +
      SUBSYSTEM=="tty", GROUP="dialout"
 +
 
 +
  to:
 +
 
 +
      SUBSYSTEM=="tty", GROUP="users", MODE="0660"
 +
 
 +
 
 +
  Make sure that any users that will be using the device are in group "users".
 +
 
 +
 
 +
8) Install gdb and msp430-jtag from temporary location
 +
 
 +
  *** These need to be put into a hardy debian package, they will be ***
 +
  *** included in the tinyos-optional (msp430 flavor)                ***
 +
 
 +
  a) cd <t2_base>.  (remember to be enabled, sudo)
 +
  b) cd t2_mm3/Added_Bits/tools
 +
  c) make install
 +
 
 +
  This should install into /opt/msp430/bin gdb.430 (the msp430-gdb debugger),
 +
  msp430-jtag and some other tools.  Appropriate libraries are installed into
 +
  /opt/msp430/lib.
 +
 
 +
 
 +
9) Build SerialForwarder and libmote library.
  
 
     Build the serial forwarder and associated library (also includes direct serial access)
 
     Build the serial forwarder and associated library (also includes direct serial access)
Line 236: Line 231:
  
  
   c) Install into /opt/{bin,include,lib} using stow.
+
   Install into /opt/{bin,include,lib} using stow.
  
 
       cd /opt/stow
 
       cd /opt/stow
 
       stow sf_c
 
       stow sf_c
  
12) Using the serialforwarder/seriallistener
+
 
 +
10) Using the serialforwarder/seriallistener
  
 
     a) make sure that tinyos.jar has been built.  It should live in $TOSROOT/support/sdk/java/tinyos.jar
 
     a) make sure that tinyos.jar has been built.  It should live in $TOSROOT/support/sdk/java/tinyos.jar
 
     b) to rebuild:
 
     b) to rebuild:
 
+
 
 
       cd $TOSROOT/support/sdk/java/
 
       cd $TOSROOT/support/sdk/java/
 
       make tinyos.jar
 
       make tinyos.jar
 +
 
 +
    c) Install TOSComm JNI support if needed.  Did java bitch about not finding TOSComm JNI support?
 +
 
 +
      assuming tinyos-tools is installed run:
 +
 
 +
      tos-install-jni
 +
 
 +
    d) To watch raw bytes coming from the serial port
 +
 
 +
      Make sure CLASSPATH includes $TOSROOT/support/sdk/java/tinyos.jar, ie:
 +
 
 +
      CLASSPATH=.:/home/joe/t2_base/t2_cur/tinyos-2.x/support/sdk/java/tinyos.jar
  
    c) Install TOSComm JNI support if needed.  Did java bitch about not finding TOSComm JNI support?
 
  
       assuming tinyos-tools is installed run:
+
       java net.tinyos.tools.Listen -comm serial@/dev/ttyUSB0:telosb
  
      tos-install-jni
 
  
    d) Make sure CLASSPATH includes $TOSROOT/support/sdk/java/tinyos.jar, ie:
+
      You should see packets that look something like this:  (depends on what the mote is
 +
      sending)
  
      CLASSPATH=.:/home/cire/mm_t2/t2_cur/tinyos-2.x/support/sdk/java/tinyos.jar
+
    00 FF FF 00 00 12 00 21 00 12 07 09 00 0C 9E 23 00 0C 9E 30 F6 2C FF D7 FF FF
 +
    00 FF FF 00 00 12 00 21 00 12 07 05 00 0C 9E 24 00 0C 9E 3F E5 AF B1 6F 9E D4
 +
    00 FF FF 00 00 0E 00 21 00 0E 07 06 00 0C 9E 33 00 0C 9E 46 78 80
 +
    00 FF FF 00 00 0E 00 21 00 0E 07 07 00 0C 9E 33 00 0C 9E 52 FF FF
 +
    00 FF FF 00 00 10 00 21 00 10 07 08 00 0C 9E 33 00 0C 9E 61 FF FF FF FF
  
To listen to packets coming from the serial port, one can run a simple listener:
+
    00 FF FF 00 00 10 00 21 00 10 07 08 00 0C 9E 33 00 0C 9E 61 FF FF FF FF
 +
    ^  ^    ^    ^  ^  ^  ^    ^  ^  | -- sensor 8 data
 +
    |  |    |    |  |  |  |    |  |- sensor id
 +
    |  |    |    |  |  |  |    |- sensor data type
 +
    |  |    |    |  |  |  |-- length of data block
 +
    |  |    |    |  |  |-- AM type MM3_DATA
 +
    |  |    |    |  |-- AM group
 +
    |  |    |    |-- serial length
 +
    |  |    |-- src addr         
 +
    |  |-- dest addr
 +
    |-- dispatch byte - 0 says AM
 +
   
 +
If you define MOTECOM you won't need to specify the -comm parameter.  ie:
  
  java net.tinyos.tools.Listen -comm serial@/dev/ttyUSB0:telosb
+
      MOTECOM=serial@/dev/ttyUSB0:telosb

Revision as of 22:27, 21 November 2008

1) OS Install.

Install the OS, Ubuntu (Xubuntu uses less resources) on the box. Recommended is Xubuntu 8.04 (LTS). A simple install is fine and will take less time.


When the install is complete, boot the system, and use Synaptic or other package manager to make sure the following packages are included:

     subversion
     cvs
     build-essentials
     stow
     automake
     autoconf
     autobook
     libtool


2) TinyOS 2.x tree checkout

Check out the current TinyOS 2.x tree. We use the head of the T2 development tree which is a little dangerous so pay attention to what comes in with an update. <t2_base> refers to the root of the T2 tree. For example: /home/joe/t2_base

  a) cd <t2_base>
  b) mkdir <t2_cur> (one suggestion is to use t2_<date_stamp> and then ln -s t2_<date_stamp> t2_cur)
  c) cd t2_cur
  d) cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co -P tinyos-2.x

This will pull the current T2 CVS source tree starting at /home/joe/t2_cur/tinyos-2.x.


3) Install TinyOS toolset (msp430, avr)

We want the tinyos toolset for the msp430 (telosb) and the avr (micaz, mica2). Debian packages are available from Stanford.

Modify the repository source to include:

  	  http://tinyos.stanford.edu/tinyos/dists/ubuntu/ hardy main

Install the following packages:

  	   deputy-tinyos

msp430-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos msp430-tinyos msp430-tinyos-base nesc tinyos tinyos-2.1 tinyos-base tinyos-required tinyos-tools tinyos-optional (but doesn't work) (for gdb and msp430-jtag)


4) Modify PATH and LD_LIBRARY_PATH

Make sure your PATH and LD_LIBRARY_PATH include /opt/msp430 and /usr/msp430 as appropriate.

  M1="/opt/msp430"
  M2="/usr/msp430"
  export PATH="$PATH:$M1/bin:$M2/bin"
  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$M1/lib:$M2/lib:/usr/local/lib"


5) Set up build environment settings

   The following environment variables must be set to build.
   TOSROOT
   TOSDIR
   MAKERULES
   CLASSPATH
   TOSMAKE_PATH
   for example:  note: <t2_base> := ~/t2_base

#!/bin/sh

MOTECOM="serial@/dev/ttyS0:telosb"

TOSROOT=~/t2_base/t2_cur/tinyos-2.x TOSDIR=$TOSROOT/tos

MAMMARK_DIR="/home/joe/t2_base/t2_mm3" TOSMAKE_PATH="$TOSMAKE_PATH $MAMMARK_DIR/support/make"

M1="/opt/msp430" M2="/usr/msp430" PATH="$PATH:$M1/bin:$M2/bin" LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$M1/lib:$M2/lib:/usr/local/lib"

MAN_PATH="$MAN_PATH:$M1/man:$M2/man"

MAKERULES=$TOSROOT/support/make/Makerules CLASSPATH=.:$TOSROOT/support/sdk/java/tinyos.jar

PYTHONPATH=$TOSROOT/support/sdk/python:$PYTHONPATH PYTHONPATH=$M1/lib:$M1/bin:$M2/lib:$M2/bin:$PYTHONPATH PYTHONPATH=$M1/lib/python2.3/site-packages:$PYTHONPATH PYTHONPATH=$M2/lib/python2.3/site-packages:$PYTHONPATH

#LIBMSPGCC_PATH=$M1/lib:$M2/lib

export MAKERULES TOSDIR TOSROOT CLASSPATH PYTHONPATH LD_LIBRARY_PATH export LIBMSPGCC MOTECOM MAMMARK_DIR TOSMAKE_PATH

6) TI USB Jtag driver fix

The TI USB JTAG pod is used for debugging MSP430 based motes such as the TelosB. If you aren't using the pod you don't need to fix the driver.

Initial Ubuntu 8.04 has a version of the ti_usb_3410_5052 driver (used to talk to the MSP430 jtag pod) that is slightly modified from the standard linux kernel available at kernel.org. The standard kernel's version of the ti serial driver works so we will just reinstall that.

 a) Expand t2_mm3/Added_Bits/mspfet_driver.zip.  (This will create the directory
    mspfet_driver).
 b) mspfet_driver/readme.txt has more information.  Read them.  It is good.
 c) make
 d) temporarily install the new driver.
     /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 3410 1 port adapter
     /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for TI USB 5052 2 port adapter
     usbcore: registered new interface driver ti_usb_3410_5052
     /home/joe/Desktop/mspfet_driver/ti_usb_3410_5052.c: TI USB 3410/5052 Serial Driver v0.9
     usb 1-2: new full speed USB device using ohci_hcd and address 2
     usb 1-2: configuration #1 chosen from 1 choice
     ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
     usb 1-2: reset full speed USB device using ohci_hcd and address 2
     usb 1-2: device firmware changed
     ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
     usb 1-2: USB disconnect, address 2
     usb 1-2: new full speed USB device using ohci_hcd and address 3
     usb 1-2: configuration #1 chosen from 2 choices
     ti_usb_3410_5052 1-2:1.0: TI USB 3410 1 port adapter converter detected
     ti_usb_3410_5052: probe of 1-2:1.0 failed with error -5
     ti_usb_3410_5052 1-2:2.0: TI USB 3410 1 port adapter converter detected
     usb 1-2: TI USB 3410 1 port adapter converter now attached to ttyUSB0
 e) run "lsusb" which should look something like the following:

m-tag (19): lsusb Bus 003 Device 001: ID 0000:0000 Bus 002 Device 001: ID 0000:0000 Bus 001 Device 005: ID 0451:f430 Texas Instruments, Inc. MSP-FET430UIF JTAG Tool Bus 001 Device 001: ID 0000:0000 m-tag (20):


 f) Make our new version of the ti serial driver permanent.
    1st make a back up of the originally installed driver
    (/lib/modules/<kernel version>/kernel/drivers/usb/serial/ti_usb_3410_5052.ko)
    ie:
     modprobe -r ti_usb_3410_5052
     cd /lib/modules/2.6.24-19-generic/kernel/drivers/usb/serial
     cp ti_usb_3410_5052.ko ti_usb_3410_5052.ko_old
     cp <t2_base>/t2_mm3/Added_Bits/mspfet_driver/ti_usb_3410_5052.ko .
     modprobe ti_usb_3410_5052
 

NOTE: It is possible for the correct driver to get replaced if the system is updated. This occurs when any kernel packages are updated. When this occurs the permanent copy must be done again.


7) USB Jtag, /dev/ttyUSBn config 2, permissions fix

We also want to install a udev rule that will correctly enable configuration 2 of the jtag pod (this makes it work). We also modify the permission rule so that group user can access the jtag pod. Files exist in the msp430fet_driver directory.

  a) Install the 40-ti-usb-3410-5052.rules into /etc/udev/rules.d.
     cp 40-ti-usb-3410-5052.rules /etc/udev/rules.d
     mkdir -p /etc/udev/scripts
     cp msp430_init /etc/udev/scripts
  b) make the following change in /etc/udev/rules.d/40-permissions.rules
  change:
      SUBSYSTEM=="tty",			GROUP="dialout"
  to:
      SUBSYSTEM=="tty",			GROUP="users", MODE="0660"


  Make sure that any users that will be using the device are in group "users".


8) Install gdb and msp430-jtag from temporary location

  *** These need to be put into a hardy debian package, they will be ***
  *** included in the tinyos-optional (msp430 flavor)                ***
  a) cd <t2_base>.  (remember to be enabled, sudo)
  b) cd t2_mm3/Added_Bits/tools
  c) make install
  This should install into /opt/msp430/bin gdb.430 (the msp430-gdb debugger),
  msp430-jtag and some other tools.  Appropriate libraries are installed into
  /opt/msp430/lib.


9) Build SerialForwarder and libmote library.

   Build the serial forwarder and associated library (also includes direct serial access)
     cd $TOSROOT/support/sdk/c/sf
     ./bootstrap
     ./configure --prefix=/opt/stow/sf_c
     make
     sudo -s
     make install
     ("sudo make install" for some reason doesn't pick up the value of $TOSROOT properly so
     the make install doesn't work write unless you are root first)
     This will install bin/{sf, sflisten, sfsend, seriallisten, serialsend}, include/{message.h,
     serialsource.h, sfsource.h}, and lib/libmote.a.  These will be installed into /opt/stow/sf_c.


  Install into /opt/{bin,include,lib} using stow.
     cd /opt/stow
     stow sf_c


10) Using the serialforwarder/seriallistener

   a) make sure that tinyos.jar has been built.  It should live in $TOSROOT/support/sdk/java/tinyos.jar
   b) to rebuild:
 
      cd $TOSROOT/support/sdk/java/
      make tinyos.jar
 
   c) Install TOSComm JNI support if needed.  Did java bitch about not finding TOSComm JNI support?
 
      assuming tinyos-tools is installed run:
 
      tos-install-jni
 
   d) To watch raw bytes coming from the serial port
 
      Make sure CLASSPATH includes $TOSROOT/support/sdk/java/tinyos.jar, ie:
 
      CLASSPATH=.:/home/joe/t2_base/t2_cur/tinyos-2.x/support/sdk/java/tinyos.jar


      java net.tinyos.tools.Listen -comm serial@/dev/ttyUSB0:telosb


      You should see packets that look something like this:  (depends on what the mote is
      sending)

00 FF FF 00 00 12 00 21 00 12 07 09 00 0C 9E 23 00 0C 9E 30 F6 2C FF D7 FF FF 00 FF FF 00 00 12 00 21 00 12 07 05 00 0C 9E 24 00 0C 9E 3F E5 AF B1 6F 9E D4 00 FF FF 00 00 0E 00 21 00 0E 07 06 00 0C 9E 33 00 0C 9E 46 78 80 00 FF FF 00 00 0E 00 21 00 0E 07 07 00 0C 9E 33 00 0C 9E 52 FF FF 00 FF FF 00 00 10 00 21 00 10 07 08 00 0C 9E 33 00 0C 9E 61 FF FF FF FF

00 FF FF 00 00 10 00 21 00 10 07 08 00 0C 9E 33 00 0C 9E 61 FF FF FF FF ^ ^ ^ ^ ^ ^ ^ ^ ^ | -- sensor 8 data | | | | | | | | |- sensor id | | | | | | | |- sensor data type | | | | | | |-- length of data block | | | | | |-- AM type MM3_DATA | | | | |-- AM group | | | |-- serial length | | |-- src addr | |-- dest addr |-- dispatch byte - 0 says AM

If you define MOTECOM you won't need to specify the -comm parameter. ie:

      MOTECOM=serial@/dev/ttyUSB0:telosb