2007年9月20日 星期四

在Ubuntu 中灌 TinyOS2.x 和TinyOS1.x

Step1 安裝Ubuntu 7.04
安裝Ubuntu的過程約半個小時~一個小時
可以至
http://www.ubuntu.com/getubuntu/download
下載最新live CD並燒錄至光碟
詳細安裝步驟省略

Step2 安裝TinyOS2.x
安裝完Ubuntu之後
先裝TinyOS2.x
因為目前己經有人為Ubuntu打包好TinyOS2.x
只要先修改/etc/apt/sources.list
$ sudo gedit /etc/apt/sources.list
並且加入下列檔案來源至sources.list中
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu feisty main
修改完sources.list,請儲存並關閉視窗
接著在command line中輸入以下指令安裝TinyOS2.x
$ sudo apt-get update
$ sudo apt-get install cvs subversion autoconf automake1.9 python-dev
$ sudo apt-get install g++ g++-3.4 gperf swig sun-java5-jdk graphviz alien fakeroot
$ sudo apt-get install tinyos tinyos-msp430 tinyos-avr
如果在安裝TinyOS2.x的時候有遇到任何詢問安裝相關程式的畫面時
請按"Y"或是"確認"完成安裝
在安裝Java時,可能會花費一段時間
而且安裝過程中可能會出現藍色畫面告知一些使用權限的資訊
直接按下"tab"到"確認"完成安裝

安裝完TinyOS2.x之後
可以輸入
$ motelist
測試是否能列出mote的基本資料
如果沒有將mote連接到電腦上
會出現"No devices found."

但是因為Ubuntu 7.04 USB driver 的問題
導致tmote 插上NB之後,居然找不到硬體
目前可以用以下方法解法
$ sudo apt-get remove brltty
$ sudo aptitude reinstall udev
執行完後重開電腦就可以了,
不過我沒有reboot,只是把mote重新plugin一次就可以找到了

Step3 安裝TinyOS1.x
安裝完TinyOS2.x
接著使用CVS安裝TinyOS1.x
如果系統中還沒有安裝CVS
請記得安裝
然後按照下列步驟安裝TinyOS1.x
$ cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login
$ cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-1.x
$ sudo mv tinyos-1.x /opt
如果CVS詢問你的密碼時
直接按下Enter鍵跳過
而且下載TinyOS1.x大約需要半個小時
請耐心等候

Step4 環境設定
環境的設定非常重要
尤其是TinyOS和JAVA安裝的路徑一定要設定正確才行
還 有高手已寫好方便的設定檔供人下載
請至這裡下載設定檔並儲存在家目錄~/底下
$ cd ~/
$ wget http://www.5secondfuse.com/tinyos/.bash_tinyos
且在 ~/.bashrc 中加入
if [ -f ~/.bash_tinyos ]; then
    . ~/.bash_tinyos
fi
改完 ~/.bashrc 之後就可以在TinyOS1.x和TinyOS2.x切換
請記得將終端機重開才能看到正常切換
如下所示:
$ tos1
Setting up for TinyOS 1.x
...使用TinyOS1.x
$ tos2
Setting up for TinyOS 2.x
...使用TinyOS2.x
主要參考網址:
http://www.5secondfuse.com/tinyos/install.html
http://www.tinyos.net/scoop/story/2007/8/15/234856/990


Step5 安裝Javax.com
若要讓mote能和電腦溝通
也就是傳資料回電腦
就一定要使用Javax.com
不過預設是沒有安裝在電腦中的
請先至
http://javashoplm.sun.com/ECom/docs/Welcome.jsp
下載javax_comm-2_0_3-solsparc.tar.Z 並安裝

$ tar xvzf javax_comm-2_0_3-solsparc.tar.Z
$ sudo cp commapi/comm.jar $JDKROOT/jre/lib/ext/
$ sudo cp commapi/javax.comm.properties $JDKROOT/jre/lib/
$ sudo cp commapi/libSolarisSerialParallel.so /usr/lib

並修改$JDKROOT/jre/lib/javax.comm.properties
將最後一行改為
Driver=gnu.io.RXTXCommDriver
(請用vi 或 pico處理, gedit無法處理)

參考來源:
http://www.comnets.uni-bremen.de/typo3site/index.php?id=48


Step6 解決Java Serial Communications在TinyOS1.x的問題
在TinyOS1.x中需要安裝TOSComm
請先切換至TinyOS1.x的環境
$ tos1
再修改$TOSROOT/beta/TOSComm/comm/Makefile
加入
JAVADIR=/usr/lib/jvm/java-1.5.0-sun
接著執行
$ alias g++=g++-3.4; cd $TOSROOT/beta/TOSComm; sudo make
Step7 為TinyOS1.x安裝Java 工具
到/opt/tinos-1.x/tools/java底下執行
$ make
P.S
如果執行java的GUI程式出現空白畫面的情行
可能是因為java和compiz相衝
請修改環境變數
$ export AWT_TOOLKIT=”MToolkit”
如果在執行java程式遇到下列狀況
$ java net.tinyos.tools.Listen
getenv JNI library not found. Env.getenv will not work
.....
請執行下列指令,將libgetenv.so複製到正確的位置
$ sudo cp $TOSROOT/tools/java/jni/libgetenv.so $JDKROOT/jre/lib/i386/
$ cd $TOSROOT/tools/java/; sudo make
應該就可以解決了

4 則留言:

scsicore 提到...

您好,hdj!我昨天在ubuntu上安装tinyos,当装你需要javax_comm-2_0_3-solsparc.tar.Z的时候,去sun公司下载,可是,sun的那个页面已经没有了,然后我在网上搜索,均是叫我们去sun的那个页面下载,另外的一些网站也有被大陆屏蔽的了。所以,我希望你能够把javax_comm-2_0_3-solsparc.tar.Z发给我,我的email是scsicore@gmail.com,非常之感谢。

hdj 提到...

Scsicore你好

應該只要安裝javax_comm新的版本就可以了
我自己也沒有留舊的版本
目前我都是用TinyOS2.x
所以不用自行安javax_comm
因此手邊也沒有新版本的javax_comm
你可能要想辦法找找

小言 提到...
作者已經移除這則留言。
小言 提到...

$ sudo make telosb
make: *** No rule to make target `telosb'. Stop.

Could you tell me why is error?

Thank you very much.

Related Posts Plugin for WordPress, Blogger...