このページでは、TINIの開発環境を整え、JavaKitを走らせて、TINI上でSlushやTNIWebServerを走らせるまでの説明をします。
使用したソフトウェア
- RedHat Linux 6.0 (英語版, PC版)
- JDK 1.2 pre-v2
- Java Communications API (commapi) 2
- RXTX 1.3.4
- TINI alpha 6 (patch 1)
まずは、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としてやると、jdk1.2pre-v2.tarが出来上がります。かなりでかいので、相当時間がかかりました。出来上がったtarファイルは45MB以上にもなります。次に、このファイルを/usr/localに移して、bzip2 -d jdk1.2pre-v2.tar.bz2で、tarをほどいてやると、/usr/local/jdk1.2というDirectoryができあがります。次に、tar xfv jdk1.2pre-v2.tarで、/usr/local/javaで使えるように、Symbolic linkを張っておきます。あとは、/etc/profileでもいじって、デフォールトで$PATHに/usr/local/java/binが入るようにしておくと便利です。具体的には、ln -s jdk1.2 javaPATH="$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だけでできますよね。
http://www.frii.com/~jarvi/rxtx/download.html からrxtx-1.3-4.tar.gzをdownloadします。いちおう1999.9.25現在での安定版の最新版を使いました。これで、JavaKitを動かす準備は完了しました。今度はJavaKitを立ち上げてみましょう。
Downloadしたら例によって、tar.gzを展開します。これで、rxtx-1.3-4というディレクトリができているはずです。次に、この中にbuildというDirectoryを作ります。tar zxfv rxtx-1.3-4.tar.gzここで、ちゃんとjavaへのパスが通っていることを確認しておいてください。java -versionで、ちゃんとバージョン番号が表示されればOKです。もし、ダメだったら、cd rxtx-1.3-4 mkdir build cd buildとしておきましょう。ここで、再度確認。次に、export PATH=$PATH:/usr/local/java/binとして、Makefileを作ります。ここまで行ったら、いよいよmakeです。export JDK_HOME=/usr/local/java export COMM_JAR_PATH=/usr/local/java/jre/lib/ext/comm.jar ../configure --enable-JDK_HOME --prefix=/usrで、完了です。最後に、/dev/ttyS0がちゃんと使えるようなpermissionになっているのを確認しておきましょう。make make jcl make install
JavaKitの立ち上げ
tar zxfv tinialpha06.tar.gz
tar zxfv tinialpha06_p1.tar.gz
java -cp tini.jar JavaKit
さて、配線はOKとして、今度はJavaKitのWindowに戻りましょう。まずは、下の方のPopup Menuで接続してあるシリアルポートを選びましょう。COM 1であれば、ttyS0です。選択したら、Openボタンを押します。速度は、デフォールトの115200のままにしておきましょう。ローダーはAuto baudrateですが、Slushは115200でしか通信できません。
つぎに、Resetボタンを押しましょう。シリアルポート側についているLEDが、一瞬消えて、再度点灯します。ここで、JavaKitの画面に、
>
エラーが出ますが、これはBank 0の消去ができないようにプロテクトされているためで、心配はいりません。
次に、firmwareをTINIに送ります。File MenuのLoad Hex Fileを選んで、firmware directoryの中のtini.hexを送ります。しばらくして、プロンプトが出たら、同じくtiniapi.hexをLoadします。
次に、heapをクリアします。コマンドプロンプトで、b18と引き続いてf0と打ちます。小文字でないといけませんので、ご注意ください。
>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 / >
まずは、いろいろいじる前にIPアドレスをセットしてtelnetでも使えるようにしてしまいましょう。このためには、ipconfigコマンドを使います。
ipconfig -a 192.168.0.2
これで、telnetもftpもできるようになっているはずですので、チェックしてみてください。
TINIWebServerを動かしてみよう
転送がうまく行ったら、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を読んで、さらに理解を深めてみてください。