2007年5月29日 星期二

在 Ubuntu Linux 中安裝 TinyOS

TinyOS是一套開發Sensor/Mote系統的開發函式庫,由柏克萊大學所開發.在官方首頁上,提供了windows平台上的tinyos安裝套件,當然,是基於cygwin環境下的軟體,但卻沒有方便於Linux平台的安裝方法(官方所提供的是Red Hat平台下的rpm套件),這對於一些Linux使用者實在大為不便,在看了Chad Metcalf這篇TinyOS Installation for Moteiv's Tmote Sky後,知道原來已經有人在ubuntu上成功裝了tinyos,而且還可以用來開發Tmote Sky,這對於目前參與協助的TestBed計畫實在有大大的助力,於是就來裝裝看吧!

1. 首先拿出這次的硬體平台,也就是之前用過的net4501,並在上面先裝好ubuntu(我實驗的版本為6.10).

2. 接著在 /etc/apt/sources.list 中加入
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu edgy main

以及 ubuntu edgy multiverse版本軟體套件

3. 準備好一些基礎軟體
$sudo apt-get update

$sudo apt-get install cvs subversion autoconf automake1.9 python-dev

$sudo apt-get install g++-4.0 gperf swig sun-java5-jdk graphviz alien fakeroot

$sudo apt-get install g++-3.4 tinyos-msp430 tinyos-avr

4. 為了方便我們在使用tinyos以及本機上的Linux,我們加入一些shell script讓我們方便切換環境變數
先下載 .bash_tinyos放在家目錄下,然後在.bashrc中加入
# Add this to your .bashrc

if [ -f ~/.bash_tinyos ]; then
. ~/.bash_tinyos

fi

這麼一來,我們可以直接鍵入tos1將環境變數改成tinyos1.x的環境;鍵入tos2改為tiny0s2.x的環境,或是鍵入boomerang使用tinyos1.x+Boomerang的環境

5. 使用CVS將最新的tinyos開發套件全抓下來
tinyos 1.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

tinyos 2.x (optional)
$cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login

$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x

$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x-contrib

$sudo mv tinyos-2.x /opt


6. 接著我們在Moteiv的網站上下載TMote所需要的工具軟體 Boomerang,然後轉成ubuntu上的deb套件檔來安裝
$mkdir tmote

$unzip tmote-tools-2_0_4.zip -d tmote

$cd tmote/common/rpms

$fakeroot alien -d tinyos-moteiv-2.0.4-1.cygwin.noarch.rpm

$sudo dpkg --install *.deb

$rm -rf tmote $sudo chown -R $USER /opt/moteiv

註:若使用tinyos1.x的話,也要把1.1.15的rpm檔轉成deb檔來down-grade系統的tinyos

7. 最後修改一下java serial communication的設定
在$TOSROOT/beta/TOSComm/comm/Makefile中,將JAVADIR指定為 /usr/lib/jvm/java-1.5.0-sun 即 JAVADIR=/usr/lib/jvm/java-1.5.0-sun

然而把它install
$alias g++=g++-3.4;

$cd $TOSROOT/beta/TOSComm/comm ; sudo make ; sudo make install

$cd $TOSROOT/beta/TOSComm/packet ; sudo make ; sudo make install

8. 最後檢查一下,看看有沒有錯誤,即大功告成
$/opt/tinyos-1.x/tools/script/toscheck

沒有留言: