LinuxでのTINI環境の構築

 
このページでは、TINIの開発環境を整え、JavaKitを走らせて、TINI上でSlushやTNIWebServerを走らせるまでの説明をします。
 

使用したソフトウェア

 
まずは、Java環境を構築
まずは、Linux用のJDK 1.2 pre-v2をDownloadします。
http://www.blackdown.org/java-linux/mirrors.html
で、最寄りのミラーサイトを探します。日本からだと、
 ftp://ftp.lab.kdd.co.jp/Linux/java-linux/
が良いでしょう。で、ここの、JDK-1.2/i386/pre-v2/glibc2.1/jdk1.2pre-v2.tar.bz2をDownloadします。

次に、bzip2を使って、圧縮されたtarファイルを戻します。RedHat 6.0ですと、標準では、bzip2はインストールされていませんので、bzip2のrpmパッケージを、

rpm -i bzip2-0.9.0c-1.i386.rpm
としてインストールしておかないといけませんでした。で、
bzip2 -d jdk1.2pre-v2.tar.bz2
としてやると、jdk1.2pre-v2.tarが出来上がります。かなりでかいので、相当時間がかかりました。出来上がったtarファイルは45MB以上にもなります。次に、このファイルを/usr/localに移して、
tar xfv jdk1.2pre-v2.tar
で、tarをほどいてやると、/usr/local/jdk1.2というDirectoryができあがります。次に、
ln -s jdk1.2 java
で、/usr/local/javaで使えるように、Symbolic linkを張っておきます。あとは、/etc/profileでもいじって、デフォールトで$PATHに/usr/local/java/binが入るようにしておくと便利です。具体的には、
PATH="$PATH:/usr/X11R6/bin"
の行を、
PATH="$PATH:/usr/X11R6/bin:/usr/local/java/bin"
とします。
 
Java Communications APIのセットアップ
まずは、SunのサーバーからSolaris Sparc用(Intel PCで使うんですが、これを選びます)のJava Communication APIをDownloadします。
http://java.sun.com/products/javacomm/
で、Downloadした、javacomm20-sparc.tar.Zというファイルを、ほどいてやります。
tar zxfv javacomm20-sparc.tar.Z

これで、commapiというディレクトリーができたはずです。この中のcomm.jarというファイルを/usr/local/java/jre/lib/ext/というディレクトリーに移動します。他のファイルはとりあえず必要ありません。

次に、/usr/local/java/jre/lib/にjavax.comm.propertiesというファイルを作り、中身を

Driver=gnu.io.RXTXCommDriver
の一行のみとします。editorを引っ張り出さなくても、
echo -n Driver=gnu.io.RXTXCommDriver >/usr/local/java/jre/lib/javax.comm.properties
だけでできますよね。
ここまでで、いちおうjavaが使えて、Java CommAPIも半分使えるようになりました。次は、RXTXの設定です。

 
 
RXTXのセットアップ
 http://www.frii.com/~jarvi/rxtx/download.html からrxtx-1.3-4.tar.gzをdownloadします。いちおう1999.9.25現在での安定版の最新版を使いました。
Downloadしたら例によって、tar.gzを展開します。
tar zxfv rxtx-1.3-4.tar.gz
これで、rxtx-1.3-4というディレクトリができているはずです。次に、この中にbuildというDirectoryを作ります。
cd rxtx-1.3-4
mkdir build
cd build
ここで、ちゃんとjavaへのパスが通っていることを確認しておいてください。java -versionで、ちゃんとバージョン番号が表示されればOKです。もし、ダメだったら、
export PATH=$PATH:/usr/local/java/bin
としておきましょう。ここで、再度確認。次に、
export JDK_HOME=/usr/local/java
export COMM_JAR_PATH=/usr/local/java/jre/lib/ext/comm.jar
../configure --enable-JDK_HOME --prefix=/usr
として、Makefileを作ります。ここまで行ったら、いよいよmakeです。
make
make jcl
make install
で、完了です。最後に、/dev/ttyS0がちゃんと使えるようなpermissionになっているのを確認しておきましょう。
これで、JavaKitを動かす準備は完了しました。今度はJavaKitを立ち上げてみましょう。
 

JavaKitの立ち上げ

まず、ftp://ftp.dalsemi.com/pub/tini/ からtinialpha06.tar.gzをdownloadします。ついでに、tinialpha06_p1.tar.gzもDownloadしておきましょう。Downloadしたら例によって、   tar.gzを展開します。
tar zxfv tinialpha06.tar.gz
ここで、さらに
tar zxfv tinialpha06_p1.tar.gz
とすると、alpha6のパッチ分も更新されますので、一緒にやっておきましょう。これで、JavaKitの準備は完了です。早速動かしてみましょう。
java -cp tini.jar JavaKit
さて、立ち上がるまでしばらく時間がかかると思いますが、JavaKitというWindowが出て来たでしょうか。かなり時間かかると思いますので、辛抱強く待ちましょう。無事立ち上がってくれたら、TINIのセットアップに入りましょう。
 
 
TINIのセットアップ
 
TINIをSocket boardに入れて、シリアルポートがPCに接続されているのを確認して、Socket boardにACアダプターを差し込みます。シリアルケーブルは、D-Sub 9pinの延長ケーブルを使えばバッチリです。ACアダプターは、12V程度の物であれば、極性も関係なく(ACですらOK)たいてい使えますが、あまり低電圧になると動かなかったりするので、気をつけましょう。ちなみに、私は120VAC -> 9V AC 650mAのものを使っています。100V換算だと7.5Vになってしまいますが、比較的電流がとれる物なので、TINIが稼働中でも8.3Vの電圧が供給されています。

さて、配線はOKとして、今度はJavaKitのWindowに戻りましょう。まずは、下の方のPopup Menuで接続してあるシリアルポートを選びましょう。COM 1であれば、ttyS0です。選択したら、Openボタンを押します。速度は、デフォールトの115200のままにしておきましょう。ローダーはAuto baudrateですが、Slushは115200でしか通信できません。

つぎに、Resetボタンを押しましょう。シリアルポート側についているLEDが、一瞬消えて、再度点灯します。ここで、JavaKitの画面に、
 

TINI Loader  08-24-99 9:34
Copyright (C) 1999 Dallas Semiconductor. All rights reserved.
 
というようなメッセージの後、">"のプロンプトが出ていれば、ローダーの起動がうまく行きました。では、z8と打ってみましょう。これで、Bank 0から7までをクリアします。"You sure?"と確認されますので、"Y"と打ちます。
 
>z8
Z8
 
You sure? y
Y
76543210 *Err*
*Err* 

>


エラーが出ますが、これはBank 0の消去ができないようにプロテクトされているためで、心配はいりません。

次に、firmwareをTINIに送ります。File MenuのLoad Hex Fileを選んで、firmware directoryの中のtini.hexを送ります。しばらくして、プロンプトが出たら、同じくtiniapi.hexをLoadします。

次に、heapをクリアします。コマンドプロンプトで、b18と引き続いてf0と打ちます。小文字でないといけませんので、ご注意ください。

 
>b18
B18

>f0
F0

>


さらに、Load Hex Fileで、examples/slush/Slush.hexをLoadします。これで、Slushの準備が完了です。eコマンドで実行しましょう。SlushのOpeninig Messageが出たあと、"Hit any key to log in."と表示されます。

ここでキー入力する前に、JavaKitの右上のTerminal modeをDumb Terminalに切り替えておきます。そうしないとloginできませんので、ご注意ください。

切り替えたら、何かキーを押してやりますと、"TINI login: "というプロンプトが出ますので、rootと入力します。ついで "TINI password: "と出て来ますので、tiniと入力します。これで、ちょっと間を置いて、Slushのプロンプトが表示されます。
 

Hit any key to login.

Welcome to Slush. (version 1.0 Alpha 6)

TINI login: root
TINI password:
TINI / >
helpと打ってやると、Slushで使えるコマンドの一覧が見られます。さらに、help <Command名>としてやると、そのコマンドのhelpが見られます。ほぼ、UNIXに近いコマンドがそこそこ揃っているので、抵抗なく使えると思います。

まずは、いろいろいじる前にIPアドレスをセットしてtelnetでも使えるようにしてしまいましょう。このためには、ipconfigコマンドを使います。

ipconfig -a 192.168.0.2
で、確認のメッセージが出て来ますので、Y,YとどちらにもYで答えてしまいましょう。
これで、telnetもftpもできるようになっているはずですので、チェックしてみてください。
 

TINIWebServerを動かしてみよう

 
Slushが動いている状態では、ftpでプログラムを転送して、それを動かすことができます。ftpでexamples/tini/TINIWebServer/TINIWebServer.tiniをTINIに転送してください。まずは、動かしてみることを第一義にして、TINIのrootに置いてしまいましょう。転送時には、binary modeで転送するように気をつけてください。

転送がうまく行ったら、telnetでTINIに入りましょう。lsするとTINIWebServer.tiniがあるはずです。ここで、
 

java TINIWebServer.tini &


としてやると、TINIWebServerが立ち上がります。この時一番後ろの"&"を忘れないように気をつけましょう。(ま、忘れても、もう一つtelnet sessionを張ってTINIWebServerをkillすれば、Slushに戻りますが...)先に、Slushのプロンプトが帰って来て、その後に、"Starting TINI WebServer version 2.0 ..."と、Web serverのstart up messageが出て来ます。これで、TINIWebServerが立ち上がりましたので、Browserでアクセスしてみましょう。どうでしょう?iButtonのDS1920をお持ちでしたら、Socket boardのソケットに入れておけば温度がページに表示されるはずです。時間の方はSlushのdateコマンドで、時計をセットしておけば正しく表示されるはずです。


 

さて、これで、TINIはバッチリ使えるようになったはずですが、いかがでしょう?Slushでのhelpや、添付されたdocumenntを読んで、さらに理解を深めてみてください。
 

All Rights Reserved, Copyright (C)PRUG
tini-ja@tini.prug.or.jp
$Id: linuxinstall.html,v 1.1.1.1 2005/09/26 07:59:49 ichiro Exp $