今年开始要学习研究无限传感器网络,一直打算找一个地方,把自己的学习经历记录下来。在网络上面搜索找寻了一番,最后稀里糊涂地掉进了博客园,所以就打算以这里为基地,把自己往后的学习经历记录下来,以便日后查阅。目前单位提供给我的只有一堆TelosB传感器,所以目前的学习笔记暂时是针对TelosB传感器的。今天上午刚到办公室,觉得无心工作,于是就开始我的第一篇随笔。
因为单位给的电脑默认安装的是Windows 7,但是我不喜欢,身边又找不到合适的系统盘,所以就给它装了Ubuntu 10.04版。正好在Ubuntu下,TinyOS的安装也相当的方便。不过需要注意的是,更方便,未必更省时间。因为默认的APT安装,会一起装进去一堆其他未必有用的东西,例如OpenJDK……
下面开始安装:
# 前往APT的目录,打开软件仓库列表。
cd
/etc/apt/
sudo
gedit sources.list
# 将下面这段地址添加到最后。
# deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main
# 因为我用的是Ubuntu 10.04,所以发行版名称是Lucid。
# 斯坦福还提供了其他版本的仓库,可以自己复制链接去查看。
# 添加完毕,保存退出。刷新软件列表
sudo
apt-get update
# 然后安装最新版的TinyOS
sudo
apt-get
install
tinyos-2.1.1
|
这里开始就慢慢地等吧。斯坦福的服务器貌似也不是很快,速度慢的时候,会等上差不多大半个钟头,我通常是泡杯茶,然后下楼抽烟去了。
虽然TinyOS安装的时候会自动给你添加OpenJDK,但是既然有最新版的Java干嘛不用呢。自打Sun被收购以后,JDK就没再出现在Ubuntu的软件仓库里面,所以只能手动安装了。先去下载页面下载最新版的JDK包,然后就可以开始安装了:
# 将安装包移动至/opt目录下,并且赋以执行权。
sudo
cp
~
/Downloads/jdk_6u24_linux_i586
.bin
/opt/
sudo
chmod
+x jdk_6u24_linux_i586
# 然后开始安装。
sudo
.
/jdk_6u24_linux_i586
# 安装到最后会让你敲击回车结束,如果没反应的话就Ctrl+C强行结束,没关系的。
# 最后是一段配置Java的脚本
## java ##
sudo
update-alternatives --
install
/usr/bin/java
java
/opt/jdk1
.6.0_24
/jre/bin/java
1
## javaws ##
sudo
update-alternatives --
install
/usr/bin/javaws
javaws
/opt/jdk1
.6.0_24
/jre/bin/javaws
1
## Java的火狐插件##
sudo
ln
-fs
/opt/jdk1
.6.0_24
/jre/plugin/i386/ns7/libjavaplugin_oji
.so
/usr/lib/mozilla/plugins/libjavaplugin_oji
.so
## 最后是javac和jar ##
sudo
update-alternatives --
install
/usr/bin/jar
jar
/opt/jdk1
.6.0_24
/bin/jar
1
sudo
update-alternatives --
install
/usr/bin/javac
javac
/opt/jdk1
.6.0_24
/bin/javac
1
|
最后查看一下Java的版本是否正确:
java -version
|
正常情况下是显示:
java version
"1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Server VM (build 19.1-b02, mixed mode)
|
到这里为止,Java和TinyOS都安装完毕了。
最后就剩下环境变量的配置了。打开文件/opt/tinyos-2.1.1/tinyos.sh:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#! /usr/bin/env bash
# Here we setup the environment
# variables needed by the tinyos
# make system
echo
"Setting up for TinyOS 2.1.1"
export
TOSROOT=
export
TOSDIR=
export
MAKERULES=
TOSROOT=
"/opt/tinyos-2.1.1"
TOSDIR=
"$TOSROOT/tos"
CLASSPATH=$CLASSPATH:$TOSROOT
/support/sdk/java/
MAKERULES=
"$TOSROOT/support/make/Makerules"
export
TOSROOT
export
TOSDIR
export
CLASSPATH
export
MAKERULES
|
TinyOS自带的配置文件似乎有问题,不知道他们现在改正了没有,将第13行修改成:
CLASSPATH=$CLASSPATH:$TOSROOT
/support/sdk/java/tinyos
.jar:.
|
就可以了。接下去完成最后的工作:
# 安装TinyOS日后要用到的JNI。
tos-
install
-jni
# 检查一下TinyOS的安装情况。
tos-check-
env
|
一般会出现两个警告Warning。一个是说你的Java版本不对,不是1.4或者1.5的,直接无视。另一个是说你的graphviz版本有问题。也无视。不记得在安装TinyOS的时候是否会自动安装graphviz,如果没安装就用APT自己装一下。到这里为止TinyOS安装基本结束了,很简单的几个步骤。打开你的终端,应当会出现Setting up for TinyOS 2.1.1的字样。
现在试着安装一个测试程序:
# 回到自己的目录,然后把TinyOS自带的Blink例子复制过来。
cd
~
cp
-r
/opt/tinyos-2
.1.1
/app/Blink
.
cd
Blink
# 把TelosB传感器连接到一个USB口,查看一下当前连接的传感器。
# 这里假设系统查看到TelosB连接到/dev/ttyUSB0。
motelist
# 将Blink例子编译,上传至传感器。
make
telosb
install
/dev/ttyUSB0
|
如果看到TelosB传感器上面的LED发光了,就表示TinyOS已经安装测试完毕了。