1 Ubuntu-10.10下安装TinyOS-2.1.1
1背景:TinyOS主要有三种运行环境:
<1> Windows环境: 虚拟机(Oracle VM Visual Box)—Xubuntu + TinyOS
参见:http://blog.csdn.net/fcwgj/archive/2010/05/13/5584936.aspx
<2> Windows环境: Windows + cygwin + TinyOS 或者
Windows xp平台+eclipse。
参见:http://nmgzhangw.blog.163.com/blog/static/11389613620104115448124/
<3> Linux环境: Ubuntu10.10 + TinyOS。
相比之下,方法1、2都显得较为繁琐、欠稳定,特别是2方法中不好挂载多个节点同时烧写,并且Cygwin环境中不能执行单步执行命令。
因此本文,我个人也是用这个,记录叙述的是第3种的过程。正好在Ubuntu下,TinyOS的安装也相当的方便。不过需要注意的是,更方便,未必更省时间。因为默认的APT安装,会一起装进去一堆其他未必有用的东西,例如OpenJDK……
2安装好Ubuntu10.10并更新源
安装好ubuntu(我用的10.10版)之后,
1. 添加后面的repository至sources.list
#sudo -i
#password
sudo gedit /etc/apt/sources.list
#打开sources.list
#在打开的sources.list添加后面的跟新列表,保存,关闭
deb http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-backports main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu intrepid-proposed main restricted universe multiverse
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main
#### deb http://tinyos.stanford.edu/tinyos/dists/ubuntu
Supported distributions are (edgy, feisty, gutsy, hardy, jaunty, karmic, lucid)
注意:tinyos的源对应的 distribution用hardy,而不是intrepid。
2. 更新源
apt-get update
3 安装tinyos:
sudo apt-get install tinyos
提示可选的 tinyos 的版本,选择最新的版本 2.1.1
sudo apt-get install tinyos-2.1.1
4 选择是否安装JDK
在这里,可以选择是否安装JDK。(可以选择不安装)虽然TinyOS安装的时候会自动给你添加OpenJDK,但是既然有最新版的Java干嘛不用呢。
查看JAVA版本:
java -version
自打Sun被收购以后,JDK就没再出现在Ubuntu的软件仓库里面,所以只能手动安装了。先去下载页面下载最新版的JDK包,然后就可以开始安装了。
下载页面:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html(具体页面)
选择Linux x86 – Self Extracting Installer: jdk-6u25-linux-i586.bin 即可。
注:JAVA JDK的安装方法见鸟哥一书。
5 安装python开发包:
apt-get install python-dev
这一步是必须的,不然在运行之后的make micaz sim的时候会报错: “ubuntu 10.10 TOSSIM仿真无法找到Python.h”。
产生这一现象的原因是:【参考文献9】
1、 系统没装python的开发环境支持,只需要 sudo apt-get install python-dev即可。
2、 python的版本和tinyos中默认的不同,在ubuntu10.10中即使做了第一种情况,编译的时候仍然提示找不到Python.h就是这个原因。
解决办法是打开/opt/tinyos-2.1.1/support/make/sim.extra, 找到
PYTHON_VERSION=2.x 一行,将2.x改为现在使用的python版本号即可。
比如用python -V查看结果为“Python 2.6.6”,则需要改为2.6
6 环境变量配置
编辑/opt/tinyos-2.1.1/tinyos.sh文件,修改 CLASSPATH环境变量如下:
TinyOS自带的配置文件似乎有问题,不知道他们现在改正了没有,将第13行修改成:
CLASSPATH=$CLASSPATH:$TOSROOT/support/sdk/java/tinyos.jar:. |
就可以了。
7 在启动shell时,自动设置TinyOS环境变量。
sudo gedit ~/.bashrc
在$HOME下的.bashrc文件中添加下面语句:
source /opt/tinyos-2.1.1/tinyos.sh
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
8 安装TinyOS日后要用到的JNI和编译环境g++
tos-install-jni
sudo apt-get install g++
(sudo chmod 777 /opt/tinyos-2.1.0/apps/Blink)有的有这一步,我没有用,但是在运行第9步tos-check-env时,总是显示错误,解决办法为跳出user目录,sudo –i , 用root进入,检查成功,显示:Setting up for TinyOS 2.1.1
9 运行tos-check-env检查你一下你有没有正确安装
记得关闭所有的终端,重启shell,这样新的环境变量才会生效。一般会出现两个警告Warning。一个是说你的Java版本不对,不是1.4或者1.5的,直接无视。另一个是说你的graphviz版本有问题。也无视。不记得在安装TinyOS的时候是否会自动安装graphviz,如果没安装就用APT自己装一下。到这里为止TinyOS安装基本结束了,很简单的几个步骤。打开你的终端,注意用户权限,应当会出现Setting up for TinyOS 2.1.1的字样。
10 重启机器或者注销用户重登录,运行样例程序Blink,成功。
方法1,直接运行:
cd /opt/tinyos-2.1.1/apps/Blink/
make iris
方法2,新建Blink运行:【参考文献8】
# 回到自己的目录,然后把TinyOS自带的Blink例子复制过来。
cd ~
cp -r /opt/tinyos-2.1.1/app/Blink .
cd Blink
# 把IRIS传感器连接到一个USB口,查看一下当前连接的传感器。
# 这里假设系统查看到IRIS连接到/dev/ttyUSB0。
Motelist(查看USB端口)(我的motelist一直没有成功)
As you see, motelist didn’t find my Iris mote. I don’t how to fix. Currently I’m still finding to fix this. Please let me know if you have solution.
Although I didn’t find my Iris mote but my Linux can detect USB of Iris mote. You can check using command as below
ls /dev/ttyUSB*
So I think it’s no problem to deploy our app to Iris mote.
For a sample, my Iris runs on /dev/ttyUSB0. For illustration, I used a TinyOS sample app i.e Blink for testing. Now change your current folder on /opt/tinyos-2.1.1/apps/Blink. Try to make Blink app
make iris
Now deploy Blink app to our Iris
make iris install mib520,/dev/ttyUSB0
If success, you’ll get this result as picture below
Now your Iris runs Blink app. For a sample, look at this video (I captured for you)
To clear your program from Iris, you can try to use avrdude
avrdude -cmib520 -P/dev/ttyUSB0 -pm1281 -e
参考文献
1 http://blog.sina.com.cn/s/blog_482e5e520100o3ma.html
2 http://www.cnblogs.com/tang-wei/archive/2011/03/21/1990862.html
3 http://www.cnblogs.com/qiweiwang/archive/2010/08/11/1797372.html
4 http://www.tinyosstudy.com/viewthread.php?tid=4286
5 http://blog.csdn.net/guoxuequan/archive/2010/11/26/6037531.aspx
6 http://docs.tinyos.net/index.php/Installing_TinyOS_2.1.1#Two-step_install_on_your_host_OS_with_Debian_packages
7 http://www.allopopo.cn/?p=38
8 http://blog.aguskurniawan.net/post/Getting-Started-Iris-Based-WSN-Mote-With-TinyOS-211-and-Ubuntu-1010.aspx
9 http://squallyjy.blog.sohu.com/169293919.html