まずは
$ sudo gedit /etc/apt/sources.list
にて、リストの更新。末尾に
#tinyOS
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu lucid main
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu maverick main
deb http://tinyos.stanford.edu/tinyos/dists/ubuntu natty main
を追加。更新内容を反映すべく、apt-getの更新をかける。
$ sudo apt-get update
ヒット http://jp.archive.ubuntu.com precise Release.gpg
...
無視 http://archive.canonical.com precise/partner Translation-en
無視 http://extras.ubuntu.com precise/main Translation-en
18.5 kB を 7秒 で取得しました (2,472 B/s)
パッケージリストを読み込んでいます... 完了
$ sudo apt-get install tinyos
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
tinyos は以下のパッケージで提供されている仮想パッケージです:
tinyos-2.1.2 2.1.2-20120813
tinyos-2.1.1 2.1.1-20100401
tinyos-2.1.0 2.1.0-20090326
tinyos-2.0.2 2.0.2-20090326
インストールするパッケージを明示的に選択する必要があります。E: パッケージ 'tinyos' にはインストール候補がありません
提示された最新バージョン"2.1.2"を導入
$ sudo apt-get install tinyos-2.1.2
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libjna-java libunity6 libftdi1 extra-xdg-menus librxtx-java
これらを削除するには 'apt-get autoremove' を利用してください。
以下の特別パッケージがインストールされます:
avr-binutils-tinyos avr-gcc-tinyos avr-libc-tinyos avr-optional-tinyos
avr-tinyos avr-tinyos-base avrdude-tinyos deputy-tinyos
msp430-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos msp430-tinyos
msp430mcu-tinyos nesc tinyos-base tinyos-required-all tinyos-required-avr
tinyos-required-msp430 tinyos-tools
推奨パッケージ:
sun-java5-bin sun-java6-bin
以下のパッケージは「削除」されます:
arduino arduino-core avr-libc avrdude binutils-avr gcc-avr
以下のパッケージが新たにインストールされます:
avr-binutils-tinyos avr-gcc-tinyos avr-libc-tinyos avr-optional-tinyos
avr-tinyos avr-tinyos-base avrdude-tinyos deputy-tinyos
msp430-binutils-tinyos msp430-gcc-tinyos msp430-libc-tinyos msp430-tinyos
msp430mcu-tinyos nesc tinyos-2.1.2 tinyos-base tinyos-required-all
tinyos-required-avr tinyos-required-msp430 tinyos-tools
アップグレード: 0 個、新規インストール: 20 個、削除: 6 個、保留: 84 個。
95.1 MB のアーカイブを取得する必要があります。
この操作後に 22.5 MB のディスク容量が解放されます。
続行しますか [Y/n]? Y
警告: 以下のパッケージは認証されていません!
tinyos-base avr-tinyos-base avr-binutils-tinyos avr-gcc-tinyos
avr-libc-tinyos avrdude-tinyos avr-tinyos avr-optional-tinyos nesc
tinyos-tools deputy-tinyos msp430-binutils-tinyos msp430-gcc-tinyos
msp430-libc-tinyos msp430mcu-tinyos msp430-tinyos tinyos-required-msp430
tinyos-required-avr tinyos-required-all tinyos-2.1.2
検証なしにこれらのパッケージをインストールしますか [y/N]?
avr系だのmsp430系だのの関連ファイルが付属するようです。
何があるかわからないので全部入れ。
設定ファイルは、tinyOSインストール直下/tinyos.envに記述します。
# Here we setup the environment
# variables needed by the tinyos
# make systemexport TOSROOT="/opt/tinyos-2.1.2"
export TOSDIR="$TOSROOT/tos"
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.:.$CLASSPATH
export MAKERULES="$TOSROOT/support/make/Makerules"
export PYTHONPATH=$PYTHONPATH:$TOSROOT/support/sdk/pythonecho "setting up TinyOS on source path $TOSROOT"
続いて、~/.bashrcに以下の記述を追加します。
#sourcing the J2sdk1.4.x
export JAVA_HOME=/usr/local/java/j2sdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar#Sourcing the tinyos environment variable setup script
export TOSROOT=/opt/tinyos-2.1.2
source $TOSROOT/tinyos.env
このファイルはJava1.4系を定義する部分より後ろに記載してください。
私はそれでエラい目にあいました。
すべての手順を完了させ再起動(またはshellで source ~/.bashrc)させると
Setting up for TinyOS 2.1.2 Repository Version
$
という表示が出てtinyosの処理系が使えるようになります。
念のため、環境変数が認識されているか確認します。
$tos-check-env
ドキュメント生成に使うgraphvizはとりあえず置いておきます()
次に、tinyOSフォルダの権限を変更します。
これをやらないとまともにmakeが通りません。
私はこれで(ry
$sudo chown -R ユーザ名 $TOSROOT
最後にjniの設定を行います。
$ sudo tos-install-jni
Installing 64-bit Java JNI code in /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64 ....
done
のような文字がでれば完了です。
後々に備え、Java docsを作成します。
$TOSROOT/support/sdk/javaへ移動し
$ make
$ make install
$ make javadoc
で作成できます。
...
ここまでやって、ようやくサンプルコンパイル準備完了です
今回は実機の設定をしていないので、TinyOS標準のシミュレータTOSSIM用ファイルの生成を行います。
$cd $TOSROOT/apps/Blink
$make iris sim
mkdir -p simbuild/iris
placing object files in simbuild/iris
writing XML schema to app.xml
compiling BlinkAppC to object file sim.o
...
linking into shared object ./_TOSSIMmodule.so
g++ -shared -fPIC simbuild/iris/pytossim.o simbuild/iris/sim.o simbuild/iris/tossim.o simbuild/iris/c-support.o -lstdc++ -o _TOSSIMmodule.so
copying Python script interface TOSSIM.py from lib/tossim to local directory
Successfully built iris TOSSIM library.