TINI-AMEDES導入ガイド

Naoto Shimazaki


Table of Contents
はじめに
1. TINI-AMEDESを動かす
1.1. 動かす前に知っておくべき事
1.1.1. TINI-AMEDESの構成
1.1.2. TINI-AMEDESの電源
1.1.3. TINI-AMEDESの既定の動作
1.2. TINI-AMEDESとTINIの違い
1.3. ネットワーク設定の変更
1.3.1. 起動とログイン
1.3.2. コマンドシェルslushのヘルプ表示
1.3.3. パスワードの変更
1.3.4. 固定アドレスの設定
1.3.5. ipconfigのまとめ
1.4. TELNETによる操作
1.5. IRCクライアントの設定
1.6. 超小型エディタTEdのコマンドサマリ
2. TINI-AMEDESの詳解
2.1. TINI-AMEDESの初期化動作
2.2. AMEDESlush
2.2.1. Reloadボタンの使い方
2.2.2. autosetup
2.3. irc.tini
3. TINIをHackする
3.1. 用意するもの
3.2. 開発環境の構築
3.3. ファームウェアの更新
3.3.1. ブートローダの更新
3.3.2. ファームウェアとslushの更新
3.4. TINI-AMEDES本体を動かす
3.4.1. TINIの起動と最初の設定
3.4.2. IRCClientを動かす
4. TINIプログラミング
4.1. Javaプログラミング
4.2. 普通のJavaと違うところ
4.3. TINIでは使えないライブラリ
List of Tables
1-1. 1-wireポートの配線
1-2. TEdコマンドサマリ

はじめに

TINI-AMEDESが到着したら、内容物の確認をしてほしい。 TINI-AMEDESには以下のものが含まれる。

ゴム足とラベルは封筒に入っている。


Chapter 1. TINI-AMEDESを動かす

ここでは、TINI-AMEDESを動かすための手順を説明する。最初に TINI本体を動かすまでの手順を、それから、屋外センサをつないで全体とし て動かすまでの手順を説明する。

TINI-AMEDESを動かすための手順は大きく二つに分かれる。まず、ネッ トワークを適切に設定し、TINI-AMEDESがIRCに接続できるようにすること。 次にTINI-AMEDESの所在位置などを適切に設定し、気象レポータとして使え るようにすることである。後半の設定に関してはIRCクライアントの設定に記述されてい る。

続く節をまず読まれたし!

TINI-AMEDESに電源を入れる前にこのすぐあとの節を読んでおくこ とを強くお勧めする。次の節は三つの項があり、最初の項には TINI-AMEDESを構成と各インタフェースの説明が、次の項には TINI-AMEDESに供給する電源に関する注意が、最後の項にはTINI-AMEDESは 出荷状態のまま電源が入るとどんな振舞いをするのか、その振舞いを変え るにはこの文書のどこを読むべきかが書いてある。


1.1. 動かす前に知っておくべき事

1.1.1. TINI-AMEDESの構成

TINI-AMEDESはTINI-AMEDES室内ユニットと屋外センサ、電源アダ プタで構成されている。

室内ユニットにいくつかの外部ポートが付いている。

電源ポート

2.1mmのDCジャック。ここに電源アダプタをつなぐ。

Ethernetポート

8極モジュラジャック。10BASE-Tの端末側ポートである。 10BASE-T用ストレートケーブルでハブと接続する。 TINI-AMEDESはこのポートを通してIRCサーバにアクセスする。

シリアルコンソールポート

スタッド付の9pin DSUBメス。シリアル端末を接続する。 端子の信号配置はDCE側。信号の仕様はIEA-232E(RS232C)非同期 シリアル、115200ビット毎秒、データ8ビット、パリティ無し、 フロー制御なし(ハード制御もXON/XOFF制御もなし)である。PCと 接続する場合はストレート結線でDSUB 9pinオスとDSUB 9pinメス の付いたいわゆる「シリアル延長ケーブル」を使う。とくに、オ ス側はスタッドではなく雄ネジの付いたものでないと干渉してつ なげられないので注意。

このポートを通してシリアル端末からTINIを操作できる。 IPアドレスを変更する場合などはここからTINIを操作しなければ ならない。また、TINIのファームウェアを入れ換える場合もこの ポートを使用する。

1-wireポート

6極モジュラジャック。1-wireネットワークを接続する。 屋外センサはこのポートに接続する。

信号の配置は次の通り。

1: Vcc(+5V), 2: GND, 3: 1-wire DATA, 4: 1-wire GND, 5: V+, 6: V+

TINI-AMEDES室内ユニットではDCジャック側の一番端の信 号が1番ピンになる。


1.1.2. TINI-AMEDESの電源

TINI-AMEDESに電源を供給するにはTINI-AMEDES付属のACアダプタ を用いる。電流容量や内部の三端子レギュレータによる発熱などを考慮 して選択されたACアダプタなので、他の電源を用いる場合は十分に注意 すること。

TINI-AMEDES本体には電源スイッチはない。電源端子に電源を供 給すると、TINIが起動する。


1.1.3. TINI-AMEDESの既定の動作

TINI-AMEDESのTINIは特別にカスタマイズされたソフトウェアが インストールされている。このため、TINIの販売元(www.ibutton.com)から購入した場合の 工場出荷時状態とは違っている。

TINI-AMEDESの本体のシリアルポートはTINIのシステムコンソー ルである。ダム端末を接続して操作できる。

PCと接続するにはストレート結線のシリアルケーブルを使う。シ リアルケーブルのTINI-AMEDES側はDSUB 9pinオスだ。TINI-AMEDES室内 ユニットにはDSUB 9pinメスが付いている。PCにつなぐ場合は、DSUB 9pinオスとDSUB 9pinメスの付いたいわゆる「シリアル延長ケーブル」 が目的に合うだろう。

シリアルポートの設定は、信号速度115200bps、8ビット、パリティ 無し、フロー制御なし(ハード制御もXON/XOFF制御もなし)である。

出荷状態のTINI-AMEDESは電源をいれるとEthernet上でDHCPを用 いて自分のIPアドレスを取得し、IRCに接続しようとする。DHCPサーバ が動いていて、そこからInternetへ接続できる環境ならば、そのままで も動くはずである。既定の動作では不都合がある場合は続くネットワーク設定の変更を参照して手作業 でTINIを設定する必要がある。

ファイアウォールを越えてIRCに接続する場合の注意点: IRCサーバはクライアントから接続されると接続したクライア ントのTCPの113番ポートと1080番ポートにアクセスする。このとき、 このアクセスしてきたパケットをファイアウォールでだまって捨てる と、IRCのチャネルにjoinするまでに1分以上の時間がかかってしまう。 このとき、TINI-AMEDESはタイムアウトを起こしてIRCの接続をあきら めてしまい、別のIRCサーバを試みようとする。他のサーバでも同様 のことが起こるため、接続とタイムアウトを繰り返すばかりでいつま でもjoinできないということになってしまうのである。

これを避ける方法は二つある。一つは113番と1080番へのアク セスに対してアクセス拒否の旨を速やかに応答するようにファイアウォー ルを設定する方法だ。例えばこれらのポートへのアクセスを TINI-AMEDESに到達するようにすると、IRCサーバからのアクセスに対 してTINI-AMEDESがRESET(接続拒否)を返すので、速やかにjoinできる。 あるいは、ファイアウォールからICMP port unreachable等のエラー を返すように設定してもよい。

もう一つは最新のTINI-AMEDESプログラムに入れ換えることで ある。最新版はタイムアウトを3分に設定しているので、joinは遅い ままだが、問題は回避できる。プログラムを入れ換える方法は TINIをHackするを参照のこと。


1.2. TINI-AMEDESとTINIの違い

TINI-AMEDESはダラスセミコンダクタオリジナルのTINIに対してい くつか変更を行っている。ここではTINI-AMEDESとオリジナルのTINIの違 いについて説明する。

TINI-AMEDESとTINIの違い

シリアルポート

ダラスの販売しているTINIソケットボードのシリアルポート は、DTR端子がTINIのリセット信号に配線してある。一方、 TINI-AMEDESのシリアルポートのDTR端子はTINIのリセット信号に配 線してあるが、途中にジャンパが設けてあり、出荷時にジャンパを 切断状態にしてある。このため、TINI-AMEDESでJavaKitを用いるに は、ジャンパを短絡状態にしておく必要がある。詳しくはTINI-AMEDESをJavaKitで操作する際の注意点を参照。

1-wireポート

以下は、ダラスの販売しているTINIソケットボードTINI Sockets E10 Revesion CおよびTINI Sockets E20 Revesion Cでの 1-wireポートの配線と、TINI-AMEDESでの配線の対照表である。

Table 1-1. 1-wireポートの配線

装置名1番ピン2番ピン3番ピン4番ピン5番ピン6番ピン
TINI Sockets ExxVcc(+5V)GND1-wire DATA1-wire GNDNCV+
TINI-AMEDESVcc(+5V)GND1-wire DATA1-wire GNDV+V+

ダラスのソケットボードでは、1-wireポートの5番ピンはど こにも接続されていないが、TINI-AMEDESでは1-wireポートの5番ピ ンはV+に接続されている。

TINIのリビジョン

TINI-AMEDESが使用しているTINIはRevision DのTINI。一つ 前のRevision Bとの主な違いはEEPROMを提供する1-wireデバイスで あるDS2433がTINI上に実装されていることだ。

DHCPクライアント

TINI-AMEDESはDHCPを使って自分のアドレス、デフォルトゲー トウェイ、DNSサーバのアドレス等を取得する設定で出荷されてい る。ダラスオリジナルのTINIは出荷状態ではネットワークは未設定 のままだ。

irc.tiniの起動

TINI-AMEDESにはあらかじめirc.tiniがインストールされて おり、電源投入やリセットで自動的にirc.tiniが起動する。ダラス オリジナルのTINIにはアプリケーションはなにもインストールされ ていない。

ファームのバージョン

TINI-AMEDESのファームウェアのバージョンは1.02である。 ダラスオリジナルのTINIの場合、ファームウェアのバージョンは購 入時期によって異なる。

Slush

TINI-AMEDESのコマンドシェルAMEDESlushはオリジナルの slushを改造したものだ。自動設定用にいくつかのコマンドが追加 され、追加のコマンドでメモリが足りなくなってしまった分いくつ かのコマンドが削除されている。

AMEDESlushで追加されたコマンド

ted

smartsc製の小さなText Editor。いわゆるラインエディ タ。マニュアルはhttp://www.smartsc.com/tini/TEd にある。TEdの簡単なサマリは超小型エディタTEdのコマンドサマリを参照のこと。

autosetup

TINI-AMEDES用に作成したコマンド。ファイルのダ ウンロードや、TINI-AMEDES内蔵のEEPROMデバイスDS2433 へのアクセスができる。詳しくはautosetupを参照。

AMEDESlushで削除されたコマンドは df, sendmail, append, nslookup, who, su, source, wall, history, touch, echo, whoamiである。dfstatsコマンドで代用、 appendtouchは TEdで代用、nslookuppingで代用する。環境変数を見るには echoの代わりに setenvで代用する。その他のコマンド は必要性が低いだろうと言う理由で削除されている。


1.3. ネットワーク設定の変更

DHCPを使う代わりに固定のIPアドレスを付けるなど、出荷状態と異 なる振舞をさせるためには、シリアルコンソールを用いてTINIの設定を変 更する必要がある。シリアルコンソールを使うには適当なシリアル端末を TINI-AMEDESのシリアルコンソールポートにつなぐ。PCと接続するにはス トレート結線のシリアルケーブルを使う。端末の設定は信号速度 115200bps、8ビット、パリティ無し、フロー制御なし(ハード制御も XON/XOFF制御もなし)である。

屋外センサ、イーサネットは最初はつながない。

屋外センサをつながないのは、なにか問題があった場合の切り分け を容易にするため。イーサネットをつながないのは、つなぐと勝手に IRCサーバに接続してしまうからだ。


1.3.1. 起動とログイン

端末を接続してTINI-AMEDESの電源をいれると、起動画面が表示 され、最後に、キーを押すとログイン可能になる旨のメッセージがでる。 画面はおおよそ次のようなものになるはずだ。

	  TINI loader 05-15-00 17:45
Copyright (C) 2000 Dallas Semiconductor. All rights reserved.

>E
----> TINI Boot <----
TINI OS (Build B 11-27-00) 1.01
API Version 8006
Copyright (C) 1999, 2000 Dallas Semiconductor Corporation
08000000
Running POR Code
Memory POR Routines
000028
0080,0100,0180,0200,0280,0300,0380,0400,0480,0500,0580,Transient blocks freed: 05AD, size: 01BB80
Persistant blocks freed: 0000, size: 000000
KM_Init Passed
Ethernet MAC Address Part Found

TTS Revision: 158 , Date: 10/20/00 7:09a 
Thread_Init Passed
External Serial Port Init
External serial ports not enabled
Memory Available: 0EE9E0
Creating Task:
0100
01
Loading application at 0x070100
Creating Task:
0200
02
Application load complete


[-=        slush Version 1.01         =-]
[          System coming up.            ]
[      Beginning initialization...      ]
[        Not generating log file.       ]    [Info]
[    Initializing shell commands...     ]    [Done]

[        Checking system files...       ]    [Done]

[ Initializing and parsing .startup...  ]
[        Initializing network...        ]
[     Starting up Telnet server...      ]    [Done]
[       Starting up FTP server...       ]    [Done]
[         Network configuration         ]    [Done]
[         System init routines          ]    [Done]

[    slush initialization complete.     ]


Hit any key to login.
	  
	

ここまでがうまく行かないようなら、シリアルポートが正しく動 作していること、ケーブルがクロス結線のものでないことなどを確認し た方が良いだろう。

言う通りにいずれかのキーを叩くと、ログインプロンプトが表示 される。プロンプトの最初の文字列はTINI-AMEDESのホスト名だ。出荷 状態ではTINIxxxxという形式で、 xxxxの部分にシリアル番号が入っ ている。各自のTINI-AMEDESに合わせて適当に読み替えてもらえばいい。 Unixのログイン時と同様の要領でログインできる。ユーザ名の既定値は root、パスワードの既定値はtiniだ。

Welcome to slush. (Version 1.02)

tinigy login: root
tinigy password: tini    実際はエコーバックされない
tinigy /> 
	

ログインすると、">"で終るプロンプトが表示される。これは slushというTINIのコマンドシェルである。この状態でさまざまな操作 が行える。


1.3.2. コマンドシェルslushのヘルプ表示

slushで使えるコマンドを参照するには helpコマンドを入力する。特定のコマンドのヘル プを見るにはhelpに続けてスペース、コマンド名 を入力すればいい。

tinigy /> help
Available Commands:

  arp            autosetup      cat            cd           
  chmod          chown          clear          copy         
  cp             date           del            dir          
  downserver     gc             genlog         help         
  hostname       ipconfig       java           kill         
  ls             md             mkdir          move         
  mv             netstat        passwd         ping         
  ps             pwd            rd             reboot       
  rm             rmdir          setenv         startserver  
  stats          stopserver     ted            useradd      
  userdel        wd           
tinigy /> help ipconfig
ipconfig [options]

Configure or display the network settings.
 [-a xx.xx.xx.xx]    Set IP address.  Must be used with the -m option.
 [-n domainname]     Set domain name
 [-m xx.xx.xx.xx]    Set subnet mask.  Must be used with -a option.
 [-g xx.xx.xx.xx]    Set gateway address
 [-p xx.xx.xx.xx]    Set primary DNS address
 [-s xx.xx.xx.xx]    Set secondary DNS address
 [-t dnstimeout ]    Set DNS timeout (set to 0 for backoff/retry)
 [-d]                Use DHCP to lease an IP address
 [-r]                Release currently held DHCP IP address
 [-x]                Show all Interface data
 [-h xx.xx.xx.xx]    Set mailhost
 [-C]                Commit current network configuration to flash
 [-D]                Disable restoration of configuration from flash
 [-f]                Don't prompt for confirmation
tinigy /> 
	

1.3.3. パスワードの変更

passwdコマンドでログインパスワードを変 更できる。rootでログインし、プロンプトが表示された状態でpasswdと 入力するとUNIXのpasswdコマンドと同様の手順でrootの新しいパスワー ドを設定できる。

tinigy /> passwd
Enter the new password: hogehoge       実際はエコーバックされない

Confirm the new password: hogehoge     実際はエコーバックされない

tinigy /> 
	

1.3.4. 固定アドレスの設定

ipconfigコマンドでIPアドレスなどを設 定できる。ipconfigとだけ入力すると、現在の 設定内容を参照できる。

TINI-AMEDESは出荷状態でDHCPを用いるように設定されている。 固定アドレスを振るにはこれを解除する必要がある。

tinigy /> ipconfig -r
	

上記の入力でDHCPを解除し、既に付いているアドレスがあれば解 放する。

固定のアドレスを振るには以下のようにする。アドレスの値は適 当に読み替えて欲しい。この後に出てくるアドレスに関しても同様であ る。

tinigy /> ipconfig -a 210.162.231.148 -m 255.255.255.240
	

-aの後ろにIPアドレス、 -mの後ろにネットマスクを指定する。 -a-mは一度のコマ ンドライン入力で同時に指定しなければならない。

アドレスを変更すると次のように確認を促してくるのでyと答え る。

Warning:  This will disconnect any connected network users
and reset all network servers.

OK to proceed? (Y/N): 
	

デフォルトゲートウェイを指定するには以下のようにする。

tinigy /> ipconfig -g 210.162.231.158
	

デフォルトゲートウェイのアドレスを変更すると次のように確認 を促してくるのでyと答える。

Warning:  This will disconnect any connected network users
and reset all network servers.

OK to proceed? (Y/N): 
	

プライマリDNSサーバーを指定する場合は以下のようにする。プ ライマリDNSサーバーとは、DNSサーバへのアクセスが必要になったとき に最初に問い合わせるサーバである。

tinigy /> ipconfig -p 210.162.231.145
	

-pの後ろにサーバのアドレスを指定す る。

セカンダリDNSサーバーを指定する場合は以下のようにする。セ カンダリDNSサーバーとは、プライマリDNSサーバへのアクセスに失敗し たときに次に問い合わせるサーバである。

tinigy /> ipconfig -p 210.162.231.146
	

-sの後ろにサーバのアドレスを指定す る。

設定した内容をフラッシュメモリに記憶させるには以下のように する。

tinigy /> ipconfig -C
	

ipconfigとだけ入力すると、現在の設 定が表示される。

tinigy /> ipconfig

Hostname          : tinigy.
Current IP        : 210.162.231.148
Default Gateway   : 210.162.231.158
Subnet Mask       : 255.255.255.240
Ethernet Address  : 00:60:35:00:71:0c
Primary DNS       : 210.162.231.145
Secondary DNS     : 210.162.231.146
DNS Timeout       : 0 (ms)
DHCP Server       : 
DHCP Enabled      : false
Mailhost          : 
Restore From Flash: Enabled
Restored last boot: false
tinigy /> 
	

1.3.5. ipconfigのまとめ

ipconfigコマンドのコマンドライン文法は 以下の通り。

ipconfig [-d] [-r] [-x] [-C] [-D] [-f] [ -a address -m netmask ] [-g gateway]
[-p primary_addr] [-s secondary_addr] [-n domainname] [-h mailhost]

主要なオプションの意味は以下の通り。

-a, -m

TINIのIPアドレスとネットマスクを設定する。-aの後ろに IPアドレス、-mの後ろにネットマスクをともにnumber dot記法で 指定する。この二つのオプションは一度のコマンドラインで同時 に指定しなければならない。つまり、-aだけ、-mだけを個別に指 定することはできない。

-g

デフォルトゲートウェイを設定する。-gの後ろにゲートウェ イのIPアドレスをnumber dot記法で指定する。

-d

IPアドレス等をDHCPで設定する。

-r

設定されているIPアドレスを解放し、IPアドレスが設定さ れていない状態にする。DHCPで設定していた場合は、DHCPによる 設定をやめる。


1.4. TELNETによる操作

TINIのネットワーク機能が適切に設定されると、TELNETによって操 作することができるようになる。適当なホストから、TELNETクライアント を用いてTINIに接続すればよい。接続すると、ユーザ名とパスワードの入 力を求められ、適切に入力するとログインできる。ログインするとTINIの コマンドシェルslushのプロンプトが表示される。この状態でさまざまな 操作が行える。

igy@portellen:~/wk/ichiro/tini/amedes/doc$ telnet tinigy
Trying 210.162.231.148...
Connected to tinigy.arhc.org.
Escape character is '^]'.

Welcome to slush.  (Version 1.02)


tinigy login: root
tinigy password: tini     実際はエコーバックされない
tinigy /> 
      

ネットワーク設定の変更でいくつかのコマン ドについて説明しているので参照のこと。


1.5. IRCクライアントの設定

TINI-AMEDES内部のファイルシステムのルートディレクトリに、 irc.tiniというプログラムがある。これが TINI-AMEDESで温度や降雨のレポートを行っているIRCクライアントプロ グラムだ。irc.tiniirc.confで設定する。

Note: irc.confに設定できるパラメタはアル ファベットと数字だけである。地名などはローマ字で記述する必要が ある。

irc.confは次の形式で記述する。

parametername : value
      

つまり、行頭にパラメタ名、続いてコロン、さらに続いてパラメタ に与える値である。

指定できるパラメタとその既定値は以下の通り。

Address1

細かい設置場所を指定する。指定できるのはアルファベット と数字のみ。日本語は使えない。以下のパラメタも同様である。

既定値はUnknown。

Address2

大まかな設置場所を指定する。都道府県/政令指定都市程度 の大まかさ。

既定値はUnknown。

Address3

設置されている国を指定する。

既定値はJapan。

Owner

TINI-AMEDESの飼い主を指定する。

既定値はanonymous TINI owner。

Nickname

irc.tiniがIRC上で使用するニックネームを指定する。IRCは ニックネームで接続しているユーザを識別している。ここで指定す るのはそのニックネーム。

既定値はtini + シリアル番号の下4桁。

ServerName

接続するIRCサーバのFQDNを指定する。server.listがある場 合は、server.listの記述がこの項目よりも優先する。

既定値はirc.tokyo.wide.ad.jp。

ServerPort

接続するIRCサーバのポート番号番号を指定する。 server.listがある場合は、server.listの記述がこの項目よりも優 先する。

既定値は6660。

Password

接続するIRCサーバのパスワードを指定する。一部のIRC serverは接続時にクライアントにパスワードを問い合わせ、クライ アントの返答が正しくないと接続させない。ここで指定するのはこ の問い合わせに対して返答するパスワード。IRCサーバがパスワー ドを要求しない場合は指定しなくてよい。server.listがある場合 は、server.listの記述がこの項目よりも優先する。

Channel

joinするチャネル名を指定する。irc.tiniは、IRCサーバに 接続するとここで指定したチャネルに自動的にjoinする。joinする とは当該のチャネルの会話に加わること。

既定値は#tini-ja。

ReportInterval

PINGに応答した旨レポートする間隔を指定する。irc.tiniは IRCサーバからPINGコマンドが来るとその旨レポートするが、毎回 レポートすると頻繁すぎるので「間引き」してレポートする。ここ で指定するのは、最低のレポート間隔。

既定値は840000。

PingTimeout

IRCサーバからのPINGコマンドが来ない状態が続いた場合、 接続が切れていると見なして再接続する迄の時間設定。irc.tiniは IRCサーバから所定の時間PINGコマンドが到着しないと、IRCサーバ との接続が何らかの障害によって失われたと見なして、改めて接続 を試みる。ここで指定するのはその再接続を試みるまでの時間。 0にしておくと、再接続を試みない。

既定値は300000。

HtmlRoot

気象情報レポートのHTMLファイルを置くディレクトリ。 irc.tiniは温度等の情報を一定時間毎にHTML形式にまとめて指定の ディレクトリ上のファイルに書き込む。ここで指定するのはその書 き込むディレクトリ。

既定値は/(ルートディレクトリ)。

HtmlIndex

気象情報レポートのファイル名。irc.tiniは温度等の情報を 一定時間毎にHTML形式にまとめて指定のディレクトリ上のファイル に書き込む。ここで指定するのはその書き込むファイル名。

既定値はindex.html。

ActivateHTTPServer

HTTPサーバを起動するかどうかを指定する。

既定値はfalse。

HTTPPort

HTTPサーバのport番号を指定する。

既定値は80。

MailFrom

雨メールを出す場合の差出人名。irc.tiniは降雨を検出する と所定の宛先にメールを送ることができる。ここで指定するのは送 るメールの差出人、即ち、Fromフィールドの値。

RainMail

雨メールの宛先。カンマ","で区切っていくつでも設定でき る。irc.tiniは降雨を検出すると所定の宛先にメールを送ることが できる。ここで指定するのは送るメールの宛先、即ち、Toフィール ドの値。

AdminPassword

特定の管理コマンドを動かすためのパスワード。

既定値はamedes。

OutTemp

外気温センサーの1-wire IDを指定する。

RoomTemp

室温センサーの1-wire IDを指定する。

WindCounter

風速カウンターの1-wire IDを指定する。

RainCounter

雨量計のカウンターの1-wire IDを指定する。

RainSwitch

降雨計の1-wire IDを指定する。

Barometer

気圧計の1-wire IDを指定する。

Humidity

湿度計の1-wire IDを指定する。

既定値はBarometerと同じ2450のID。

の1-wire IDを指定する。

RoomTempSensor

室温センサーが基板上でなく、ちゃんと室温をさすように改 造されていることを明示する設定。

既定値はfalse。

VoltagePort

電源電圧の1/2分圧測定の2450のポート

既定値は0。

HumidityPort

湿度測定の2450のポート

既定値は1。

BarometerPort

気圧測定の2450のポート

既定値は2。

BarometerOffset

気圧測定のオフセット値

既定値は-0.095。

BarometerSlope

気圧測定のスロープ値

既定値は0.009。

HumidityOffset

湿度測定のオフセット値

既定値は0.789。

HumiditySlop

湿度測定のスロープ値

既定値は0.031438。

以下は、irc.confの一例だ。

// This is a comment line
ServerName	: irc.kyoto.wide.ad.jp
ServerPort	: 6668
Channel		: #tini-ja
Address1	: Tama
Address2	: Tokyo
Address3	: Japan
Owner		: Shimazaki
Nickname	: tinigy
Password        : ohanami
RoomTemp	: C100080009C38310
//OutTemp	: C100080009C38310
// 最低レポートインターバル 540000 = 9分
ReportInterval 		: 540000
ActivateHTTPServer	: true
      

1.6. 超小型エディタTEdのコマンドサマリ

TEdを起動するには、slushのコマンドライン で以下のようにする。

tinigy /> ted filename
      

TEdが起動すると、次のようなメッセージが出 てTEdのプロンプトが表示される。

tinigy /> ted foo
TEd Version 0.4
Copyright (C) 1999,2000 Smart Software Consulting.

New file '/foo'
TEd> 
      

終了するにはTEdのプロンプトが表示されてい る状態で終了コマンドqを入力する。

TEd> q
Save changes to '/foo'? [y/n] y
Wrote 0 lines to '/foo'
tinigy />
      

ファイルにテキストを書いていくにはiコマン ドを使う。ファイルの内容を見るにはlコマンドを使 う。以下はiコマンドとlコマン ドの例。

TEd> i
1i: abc
2i: def
3i: ghi
4i: .
TEd> l
1:  abc
2:  def
3: *ghi

TEd> 
      

iコマンドを実行すると挿入モードになる。挿 入モードを抜けるには、.(ピリオド)だけの行を入力する。挿入モードの プロンプトは1i: のような形をして いる。先頭の数字が現在の行番号、続くiが挿入モードであることを示し、 コロンと空白一つが続く。

lコマンドの例の3行目に付いているアスタリ スクはカレント行、つまり現在注目している行である。 iコマンドはこの行の次の行からテキストを挿入する。 カレント行を変更するには、l line_numberとすれば よい。

Table 1-2. TEdコマンドサマリ

コマンド省略形コマンドの動作

append text

a text

カレント行の後ろにtextを追加 する。

change /old/new

c /old/new

カレント行のoldnewに置き換える。

change /text

c /text

カレント行をtextで置き換える。

clear

cl

全ての行を削除する。

del

なし カレント行を削除する。

del n

なし n行目を削除する。

del *

なし カレント行を削除する。

del n *

なし n行目からカレント行までを削除 する。

del m n

なし m行目から n行目までを削除する。

del * n

なし カレント行からn行目までを削除 する。

insert

i

0行以上の行をカレント行の後ろに挿入する。.(ピリオド)だけ の行を入力するとinsertコマンドを終了 する。

insert text

i text

textからなる行をカレント行の 後ろに挿入する。

list

l

編集中の全ての行を表示する。

list n

l n

n行目を表示する。

list *

l *

カレント行を表示する。

list n *

l n *

n行目からカレント行まで表示 する。

list m n

l m n

m行目から n行目まで表示する。

list * n

l * n

カレント行からn行目まで表示 する。

n

なし n行目を表示する。

n text

なし n行目を textで置き換える。

open filename

o filename

ファイル名filenameのファイル を開く。

quit

q

TEdを終了する。

read filename

r filename

ファイル名filenameのファイル をカレント行の後ろに挿入する。

write

w

編集中の内容をファイル上書きする。

write filename

w filename

編集中の内容をファイル名 filenameのファイルに書き出す。

Chapter 2. TINI-AMEDESの詳解

2.1. TINI-AMEDESの初期化動作

ここではTINI-AMEDESのに電源が投入されてから稼働状態になるま での動きを説明する。というのも、この部分がTINI-AMEDES独特の部分だ からだ。TINI-AMEDESのソフトウェアの大部分はダラスセミコンダクタが 提供するTINIソフトウェアから構成されている。しかし、初期化の部分と IRCクライアントirc.tiniはTINI-AMEDESオリジナルである。

TINI-AMEDESは起動するとDHCPによって自分のIPアドレス、デフォ ルトゲートウェイのIPアドレス、DNSサーバのIPアドレスを設定する。さ らに、TINI-AMEDES用に改造されたコマンドラインシェル、AMEDESlushが 起動する。AMEDESlushはTINI-AMEDES室内ユニットの底面にあるreloadボ タンの状態を見て、通常の起動を行うか、または、ソフトウェアや設定ファ イルのダウンロードを行ったりTINIのヒープメモリ(ファイルシステム)の 初期化を行ったりする。通常の起動を行う場合、AMEDESlushはirc.tiniを 起動する。irc.tiniは設定ファイルの情報を元に室内ユニット内蔵の温度 センサと1-wireケーブル上の屋外ユニット上のセンサを識別し、接続され ているセンサを調べ挙げる。そして、IRCサーバに接続して気象情報のレ ポートを始める。


2.2. AMEDESlush

Note: この部分は、作者の解説をそのまま引用しているだけでまだ未 整理。文体も元のまま

AMEDESlushはダラスが配布しているSlushにTINI-AMEDES向けのいく つかの機能を追加したものだ。追加された機能は以下の通り。

AMEDESlush追加機能

Reloadボタン対応

TINI-AMEDES室内ユニットの底面にあるReloadボタンを操作 することでヒープメモリを消去(TINIのファイルシステムを初期化 )したり、TINI-AMEDESの動作に必要なファイルをHTTPサーバからダ ウンロードしたりできる。

TEd内蔵

ラインエディタTEdを内蔵している。使い方は超小型エディタTEdのコマンドサマリまたはTEdのWebページ http://www.smartsc.com/tini/TEd を参照のこと。

autosetupコマンド

TINI-AMEDESの自動設定やirc.tiniのアップデートを行った り、自動設定の足掛かりになる情報を保持しているEEPROMをメンテ ナンスするためのコマンド。詳しくはautosetupを参照。

TINIのプロセスのサイズ制限から、機能追加と引き替えにいくつ かのコマンドが削られている。削られたコマンドはdf, sendmail, append, nslookup, who, su, source, wall, history, touch, echo, whoamiである。 dfstatsコマンドで代用、 appendtouchはTEdで代用、 nslookuppingで代用する。 環境変数を見るにはechoの代わりに setenvで代用する。その他のコマンドは必要性が 低いだろうと言う理由で削除されている。


2.2.1. Reloadボタンの使い方

Reloadボタンを押すタイミングは、リスタート後、LEDが消えて から2秒以内。LEDが再度点灯するまで押して離せばファイルを断ロード する。さらに長くLEDが再度消灯するまで押し続けると(5秒)ヒープ(ファ イルシステム)が初期化される。TINIを空にして、ファイルをダウンロー ドするには、以下の手順に従えば良い。

  1. 電源を入れるかリセットボタンを押す。やがてLEDが点灯す る。

  2. 暫くすると、LEDが消えるので、すかさずreloadボタンを押 す。

  3. LEDが点灯するがそのまま押し続ける(5秒)。

  4. LEDが消灯したらボタンを離す。

  5. LEDが点灯し、再起動が始まる。ヒープメモリも空になる、 当然ファイルシステムも空になる。

  6. LEDが消灯するまで待って、消えたらすぐにreloadボタンを 押す。

  7. 今度は、LEDがついたらすぐに手を離す。

  8. 必要なファイルがダウンロードされる。

  9. 再度リセットする。今度はreloadスイッチには触れない。

  10. ダウンロードされている/etc/.startupに従って、 irc.tiniが起動

もちろん、必要なファイルがダウンロードされた後に、 irc.confを編集して、場所や名前を設定するのが望ましい。


2.2.2. autosetup

autosetupコマンドの機能は以下の通り。

  • DS2433(EEPROM内蔵の1-wireデバイス)に記録されたURLか ら、/etc/autosetup.confをdownloadし、 さらにその内容に従って、さらにfileをdownlodしたり、コマン ドを実行したりする。

  • DS2433に書き込まれた設定ファイルを読み出して表示する。

  • DS2433に設定を書き込む。

  • DS2433に書き込まれたネットワーク設定を復元する。

読み書きの対象となるDS2433は、1-wireネットワーク上のデバイ スを検索して最初に見つかったDS2433である。DS2433を搭載している TINI(Rev. Dなど)でも、DS2433を別途外付けすればそちらが使われるこ とになる。というのも、TINIが1-wireデバイスを検索するときは外部の 1-wireネットワークをまず探し、それから内部の(SIMM上の)ネットワー クを探すからだ。


2.2.2.1. ファイルのダウンロード

autosetupとだけすると、 /etc/autosetup.confに従って、ファイルを ダウンロードする。

-aをつけると、/etc/autosetup.conf のダウンロードから始める。

-uでautosetup.confをdownloadする URLを、DS2433に記録されたものからその時だけ変更できる。


2.2.2.2. 保存内容の読みだし

autosetup -rで、DS2433からデータを 読み出し表示する。表示は以下のようになる。

	    Version            : 1.00
Serial Number      : 38
Internal 1820 ID   : D30008000994D810
autosetup.conf URL : http://www.tini.org/amedes/amedes_setup
Use DHCP           : NO
IP Address         : 192.168.1.100
Net Mask           : 255.255.255.0
Default Gateway    : 192.168.1.100
Primary DNS        : 192.168.1.1
Secondary DNS      : 
SMTP Server        : 192.168.1.1
Proxy Server       : 0.0.0.0
Proxy Port         : 80
	    
	  

2.2.2.3. 設定の保存

autosetup -Cとすると、現在のnetwork 設定をDS2433に書き込む。autoconf -Cを行う 前に、ipconfigでネットワークの設定をして おく必要がある。

autosetup -Sシリアル番号 で、シリア ル番号他の設定を書き込む。内蔵DS1820だけを接続した状態で書き 込みを行います。(最初に見つかったDS1820を内蔵のものとみなし て書き込む。)

-Uでautosetup.confのdownload先を 変更することもできる。

書き込み後に、書き込まれた内容を表示する。


2.2.2.4. 保存された設定の回復

autosetup -Rで、DS2433に書き込まれ たネットワーク設定を回復する。ネットワークの設定を回復したら、 ipconfigを実行し、現在のネットワーク設定 を自動的に表示する。


2.2.2.5. DS2433の使われ方

DS2433は、32byteのバンクが16バンク装備されたEEPROMで、 AMEDESではその先頭4バンクを使っている。各バンクは、利用長と CRCを除いた29byteが使える長さになっている。

bank 0

先頭から、AMDSの4文字、続いてバージョン番号 (2byte)、シリアル番号( 2byte)、Proxy server address(4byte)、Proxy port(2byte)、内蔵1820アドレス (8byte)の22byte

bank 1

autosetup.confのある、hostの アドレス

bank 2

autosetup.confの位置。 "http://" + bank1 + "/" + bank2 で、 autoseup.confのURLとなる。

bank 3

先頭から、4byteずつ、DHCP、IP Address、Net Mask、 Default Gateway、Primary DNS、Secondary DNS、SMTP host addressの28byteを使っている。DHCPは、flagとして先頭の 1byteだけ使っている。


2.2.2.6. autosetupのまとめ

autosetupコマンドのコマンドライン文 法は以下の通り。

autosetup [-r] [-a] [-C] [-R] [ -u URL ] [ -U URL ] [ -S serial_number ]

autosetupはオプション無しで起動する と/etc/autosetup.confの内容にしたがって ファイルをダウンロードする。

-r

DS2433からデータを読み出し表示する。

-a

autosetup.confをDS2433に保 存されたURLからダウンロードし、その内容にしたがってファ イルをダウンロードする。

-C

現在のネットワーク設定をDS2433に書き込む。

-R

DS2433の内容に従ってネットワークを再設定する。

-u

-aでautosetup.confをダウン ロードするURLを指定する。このオプションを-aとともに指 定すると、DS2433の設定によらず-uの引数に指定したURLか らautosetup.confをダウンロードす る。

-U

DS2433内の、 autosetup.confをダウンロードする URLを-Uの引数に指定したURLに変更する。

-S

DS2433内の、シリアル番号を引数に指定した番号に変 更する。


2.3. irc.tini

Note: この部分は、作者の解説をそのまま引用しているだけでまだ未整 理。文体も元のまま

基本的に、irc.confでのsensorのID設定は必要無くなっています。 Serverからdownloadされる、defaultの設定のままで、そのまま使えるよ うになっています。

自動で検索されるセンサーは、温度2個、降雨の2406、その他の 2450です。風速、雨量などは自動検索の対象になりません。1820は、室温 側のIDが2433に記録してあるので、それ以外で最初に見つかった1820が、 外気温にセットされます。2450のポートはirc.confで他の設定にも設定可 能ですが、defaultは、配付基板の回路に合わせてあります。

defaultも、以下のようにほとんど空欄です。(実質的にこういう 設定項目もあるよぉん的なリストになってます。別途Ducomentを用意して、 もっとさっぱりしてしまった方が良いかも知れませんね)特製Slushには、 TEdが入っているので、これで最初の4行程度を修正するだけでちゃんと運 用できます。(立ち上がるのは、このままでも問題なく立ち上がります) Nicknameは、空でもtiniの次にシリアル番号が入った物がdefaultになり ます。実質的に、場所と名前だけのファイルと同じことになりましたので、 別途アドレスファイルを置くようにはしてありません。

FIXME:一覧は省略

サーバーの設定がありませんが、これは、server.listというファ イルに分けました、このファイルは、以下のように、サーバー、port、 passwordを':'で区切ったものが順にならんだテキストファイルです。改 行コードはCR, CR+LF, LFのどれでも構いません。これを順に使って接続 をトライするようにしてありますので、適宜順番を並び変えることで、起 動時にどこから繋ぎはじめるかを変更できます。

//で始まる行はコメント行です。

// This is a comment line
irc.kyoto.wide.ad.jp:6660:ohanami
irc.tokyo.wide.ad.jp:6660:
irc.kyoto.wide.ad.jp:6661:ohanami
irc.tokyo.wide.ad.jp:6661:
irc.kyoto.wide.ad.jp:6662:ohanami
irc.tokyo.wide.ad.jp:6662:
irc.kyoto.wide.ad.jp:6663:ohanami
irc.tokyo.wide.ad.jp:6663:
irc.kyoto.wide.ad.jp:6664:ohanami
irc.tokyo.wide.ad.jp:6664:
irc.kyoto.wide.ad.jp:6665:ohanami
irc.tokyo.wide.ad.jp:6665:
irc.kyoto.wide.ad.jp:6666:ohanami
irc.tokyo.wide.ad.jp:6666:
irc.kyoto.wide.ad.jp:6667:ohanami
irc.tokyo.wide.ad.jp:6667:
irc.kyoto.wide.ad.jp:6668:ohanami
irc.tokyo.wide.ad.jp:6668:
irc.kyoto.wide.ad.jp:6669:ohanami
irc.tokyo.wide.ad.jp:6669:
      

Chapter 3. TINIをHackする

Note: この章はまるっきりの未完成。

この章ではTINIのアプリケーションを書くために必要な準備について 説明する。

TINI-AMEDESは、とっつきやすさを優先してDHCPでアドレスを取得し たり自動的にIRCに接続したりするように作り込まれて出荷されたが、素の TINIはもっとなにもしないのが既定の動作だ。IPアドレスも付いていないし、 もちろんIRCクライアントも入っていない。

ここでは、素のTINIから出発して、TINIを操作し、アプリケーション を書いてデバッグできるようにする所までを説明する。

TINIを動かすところまでの手順は

http://www.ibutton.com/TINI/hardware/toc.html
http://www.ibutton.com/TINI/hardware/started.html
http://www.ibutton.com/TINI/hardware/javakit.html

などに詳しく解説されている。


3.1. 用意するもの

TINIのアプリケーションはJavaプログラミング言語で記述するから、 用意するのはJavaのプログラム開発環境だ。さらに、TINI用のデバッグコ ンソールを動かすためなどに追加で用意しておく必要があるものがいくつ かある。

TINIを操作するには、JavaKitが必要だ。これはTINI用のデバッグ コンソールプログラムでシリアルポート経由でTINIを操作できる。TINIを リセットしたり、ブートローダやファームウェアをダウンロードするのに 使う。TINIのネットワーク関係の設定が完了すればtelnetでTINIのコマン ドラインを操作できるが、それまではJavaKitを用いてコマンドラインを 操作しなければならない。

JavaKitを動かすにはJavaの動くPCがいる。というのもJavaKitが Javaで記述されているから。JavaKitを動かすにはJava実行環境があれば 十分だが、ここではJava開発環境のインストールを説明する。Java開発環 境の中にJava実行環境も含まれる。

他にストレートストレート結線のシリアルケーブルがいる。 JavaKitはDTR端子を操作することでTINIをリセットする。つまり、シリア ルケーブルはDTR端子が結線されたものを用意しなくてはならない。 9pin全てが結線されたものがお薦め。

TINI-AMEDESをJavaKitで操作する際はTINI-AMEDESをJavaKitで操作する際の注意点を必ず読んでおく必要が ある。


3.2. 開発環境の構築

TINIアプリケーション開発のために用意しなければならないものは、 JDK、CommAPI、RxTx、TINI開発キットだ。

TINI開発環境

Sun JDK

SunのJava Development Kit。Javaプログラムをコンパイル するのに使う。JDK1.1以降であればなんでもよい。TINIはJDK1.1の APIを実装している。JDKはhttp://www.javasoft.com からダウンロード出来る。Java 2からはJava 2 Software Development Kitと称しているようだ。

CommAPI

Java Communications API。シリアルポートを使うためのラ イブラリで、JavaKit(後述)を動かすために必要になる。Windows用 とSolaris用が用意されている。紛らわしいのだけれど、Linuxで使 う場合はSolaris用を使う。CommAPIは http://www.javasoft.com/products/javacomm/index.html からダウンロード出来る。

RxTx

CommAPIのOS寄りの部分。Windowsで開発する場合は要らない。 Linuxで開発する場合はCommAPIをインストールした後にこれをイン ストールする。RxTxはhttp://www.rxtx.org/から ダウンロードできる。

TINI開発キット

TINIのデバッグコンソールであるJavaKitや、Javaのクラス ファイルをTINI専用形式に変換するコンバータ、1-wire用APIのラ イブラリ、サンプルプログラムにドキュメントなどなどがパックに なったもの。これがないとTINIのプログラミングはできない。 TINI Softwareのページからリンクをたどって行くと、FTPサー バのURLを教えてもらえる。

インストールは、JDK、CommAPI、RxTx、TINI開発キットの順に行う。 最初にJDKをインストールする。JDKは一つのディレクトリの下に全てが展 開される。つまり、Unix流の、binの下に実行形式、libの下にライブラリ、 などという風にはインストールされない。そのため快適に使うにはJava VMやコンパイラの実行形式のあるディレクトリにパスを通す必要がある。 JDKをインストールするディレクトリは、/usr/local/libの下などに適当 に決めれば良い。

次にCommAPIをインストールする。適当な場所に展開し、中にある comm.jarのフルパス名をCLASSPATH環境変数に追加する。JDK-1.2以降をイ ンストールした場合は、CLASSPATHに追加する代わりにcomm.jarをJDKの jre/lib/extの下にコピーしてもよい。バージョン1.2以降のJDKはこのディ レクトリに含まれるjarファイルをCLASSPATHに含まれているかのように扱 う。

RxTxのインストールはGNU autoconfを用いたソフトと共通の手順で ある。つまり、configureスクリプトを実行し、 makeを実行し、最後にmake installを実行する。configureスクリプ トを実行する前に、あらかじめjavaコマンド等の実 行形式のあるディレクトリにパスを通しておく必要がある。 configureスクリプトがJDKのバージョンを調べるた めにjavaコマンドを実行するからだ。


3.3. ファームウェアの更新

3.3.1. ブートローダの更新

よほど古いTINIを持っているのでない限り、ブートローダの更新 は必要ない。JavaKitでTINIをリセットすると、最初の行にブートロー ダの日付が表示される。2000年5月15日版のブートローダならこんな風 に表示されるはずだ。

TINI loader 05-15-00 17:45
Copyright (C) 2000 Dallas Semiconductor. All rights reserved.

>

この日付が2000年5月15日かそれよりも新しければブートローダ の更新は必要ない。これより古い場合は Note to TINI Beta Usersのページの指示にしたがってブートローダ を更新する。


3.4. TINI-AMEDES本体を動かす

TINI-AMEDESをJavaKitで操作する際の注意点

TINI-AMEDESそのままJavaKitで操作しようとすると、JavaKitか らTINIをリセットできない。

JavaKitはDTR信号を操作してTINIをリセットする。そして、 Dalas Semiconducter製のTINI用ソケットボードのシリアルポートは、 DTR端子がTINIのリセット信号に配線されている。

TINI-AMEDESのシリアルポートも同様にDTR端子がTINIのリセット 信号に配線されている。そして、内部にジャンパを設け、ジャンパを切 断状態にして出荷してある。

なぜかというと、DTR端子がHになるとTINIがリセットされるのに 対して、通常のシリアル端末はDTRをHにするからだ。DTRがリセット信 号に配線されたまま通常のシリアル端末をつなぐとTINIがリセットされっ ぱなしになってしまう。普通の端末で操作できるように、 TINI-AMEDESはDTRピンを切り離して出荷されたのである。

DTRを切り離した状態ではJavaKitからTINIをリセットできない。 リセットできるようにするにはジャンパの位置を変えて短絡状態にしな ければならない。

TINI-AMEDES本体の蓋を開け、DTR Resetと書かれた基板上のジャ ンパ端子を短絡状態にする。これでDTR端子がTINIのリセットに接続さ れ、JavaKitからリセットできるようになる。

TINI-AMEDESはTINIの基本ソフトウェアとAMEDESアプリケーション の組み合わせで作られている。きちんと動かすには、まずTINIの基本ソフ トを適切に設定し、それからAMEDESアプリケーションを設定しなくてはな らない。

まず、TINIを起動し、TINIの基本ソフトが正しく動作しているかど うか確認し、IPアドレスなどを設定する。次に次に雨センサを接続して AMEDESアプリケーションを設定し、起動する。


3.4.1. TINIの起動と最初の設定

TINIを起動し、設定するのに必要な作業は以下の通り。

  • ケーブルの接続と電源投入

  • JavaKitの起動とslushの起動

  • ネットワークパラメタの設定


3.4.1.1. ケーブルの接続と電源投入

TINI-AMEDESとJavaKitを動かすPCの間はストレート結線のシリ アルケーブルでつなぐ。

TINI-AMEDESに電源を供給するにはTINI-AMEDES付属のACアダプ タを用いる。電流容量や内部の三端子レギュレータによる発熱などを 考慮して選択されたACアダプタなので、他の電源を用いる場合は十分 に注意すること。

TINI-AMEDES本体には電源スイッチはない。電源端子に電源を 供給すると、TINIが起動する。

雨センサは最初はつながない。


3.4.1.2. JavaKitの起動とslushの起動

PC上でJavaKitを起動する。JavaKitのウィンドウの下部にある ポート選択メニューから、TINI-AMEDES本体に接続したシリアルポー トを選んでopenボタンを押すとJavaKitとTINIが接続される。通信速 度は既定値の115200bpsをそのまま使う。

JavaKitのresetボタンを押すと、TINIがリセットされ、ブート ローダのプロンプトが表示されるはずだ。ここでE、Enterと続けて入 力すると、TINIのコマンドラインインタフェースslushが起動する。 slushが起動すると、JavaKitをダム端末のように用いてTINIを操作で きるようになる。slushにはroot、tiniでログインする。

JavaKitのウィンドウの大部分を占めているのが、端末画面だ。 JavaKitのresetボタンを押すとブートローダが起動し、この端末画面 に下記のようなメッセージが表示される

TINI loader 05-15-00 17:45
Copyright (C) 2000 Dallas Semiconductor. All rights reserved.

>

ここまでがうまく行かないようなら、シリアルポートが正しく 動作していること、ケーブルがクロス結線のものでないことなどを確 認した方が良いだろう。

ここですべきことはEを入力して次へ進むことだけ。この画面 でなにか他の操作をするのは、TINIのファームウェアを更新したり、 メモリ内容の一部を強制的に消去したりする場合だけだ。ブートロー ダのヘルプはHを入力すると出てくる。

Eを入力するとslushが起動する。

TINI loader 05-15-00 17:45
Copyright (C) 2000 Dallas Semiconductor. All rights reserved.

>E
----> TINI Boot <----
TINI OS (Build B 11-27-00) 1.01
API Version 8006
Copyright (C) 1999, 2000 Dallas Semiconductor Corporation
08000000
Running POR Code
Memory POR Routines
000028
0080,0100,0180,0200,0280,0300,0380,0400,0480,0500,0580,Transient blocks freed: 05AD, size: 01BB80
Persistant blocks freed: 0000, size: 000000
KM_Init Passed
Ethernet MAC Address Part Found

TTS Revision: 158 , Date: 10/20/00 7:09a 
Thread_Init Passed
External Serial Port Init
External serial ports not enabled
Memory Available: 0EE9E0
Creating Task:
0100
01
Loading application at 0x070100
Creating Task:
0200
02
Application load complete


[-=        slush Version 1.01         =-]
[          System coming up.            ]
[      Beginning initialization...      ]
[        Not generating log file.       ]    [Info]
[    Initializing shell commands...     ]    [Done]

[        Checking system files...       ]    [Done]

[ Initializing and parsing .startup...  ]
[        Initializing network...        ]
[     Starting up Telnet server...      ]    [Done]
[       Starting up FTP server...       ]    [Done]
[         Network configuration         ]    [Done]
[         System init routines          ]    [Done]

[    slush initialization complete.     ]


Hit any key to login.

起動画面の細部は多少違うかも知れないが、だいたいこんな雰 囲気の画面が表示されて、最後にHit any key to loginと出ていれば slushが起動している。言われた通りに何かキーを押すと、ログイン プロンプトが出る。既定値として用意されている、ユーザ名root、パ スワードはtiniでログインできる。

Welcome to slush.  (Version 1.01)


TINI login: root
TINI password: 

TINI />

ブートローダは起動するのにslushがうまく起動しない場合は なにか問題があるということだ。例えば、何かの理由でシステム全体 が消去されてしまっていてブートローダしか入っていない状態になっ てしまった、とか。こういう場合は TINIの Getting Startedのページを良く読んでなんとか解決するか、 詳しい人に相談するしかない。


Chapter 4. TINIプログラミング