PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック・前編 ―― 無線インターネット・アクセスを組み込みシステム開発の手駒に
● 搭載されているファイルの中身をのぞく
さて,まずは本機の中身をのぞいてみることにします注2.起動時にW-SIMが挿入されているとダイアルアップ・モードになるので,以下で説明する作業はすべて,W-SIMを取り外して行います.W-SIMを抜いて電源を入れると,セットアップ・モードで起動します.セットアップ・モードではブラウザで内部設定を行うために,HTTP(Hypertext Transfer Protocol)サーバが有効になります.これと同時に,パソコンとファイルをやりとりするためのTFTP(Trivial File Transfer Protocol)サーバも起動されます.
注2;サイレントシステム製のOS-1でも,OSX-1と同じように動作する.
TFTPはUDP(User Datagram Protocol)を利用した簡単なファイル転送のためのプロトコルで,Windowsにも標準で搭載されています.TFTPを利用すると,パソコンと本機の間で自由にファイルをやりとりすることができます.
まず,パソコンのブラウザで本機の設定用Webページにアクセスできる状態にしてください.次に,Windowsのコマンド・プロンプトを起動して,以下の二つのコマンドを実行してみましょう.コマンド・プロンプトを起動し,cd ¥と入力してカレント・ディレクトリをC:¥に移動してから作業を進めてください.
C:¥>tftp 192.168.1.10 get dirlist
このコマンドをタイプすると,本機の中にあるすべてのファイルのリストが表示されます.全部で17個のファイルが見えるはずです.このファイルのうち,拡張子が.htmとなっているファイルはすべてWeb設定用のhtmlファイルです.試しにトップページにあるhtmlファイルのindex.htmの内容をチェックしてみましょう.以下のコマンドを実行してください.
C:¥>tftp 192.168.1.10 get index.htm
Transfer successful: 459bytes in 1 second, 459bytes/s
C:¥>type index.htm
おなじみのhtmlファイルの内容が表示されれば,成功です.これで本機のすべてのファイルの内容をのぞくことが可能です.例えばDialupRegistryというファイルにはダイアルアップ情報が格納されています.SilentMoonのレジストリの設定方法を理解できると思います.
● Webを利用してLEDを操作
本機がセットアップ・モードで起動した場合,設定用のHTTPサーバが立ち上がりますが,このHTTPサーバでは内部のメモリやポートの内容を読み書きするためのCGIが利用可能です.例えば,http://192.168.1.10/SetEnd.htm?PORTG3=1&PORTG4=1をブラウザのアドレス欄に入力してみてください.電界強度表示のLEDが黄色に点灯するはずです.また,このURLの後半部分のポートの値をそれぞれ'1'か'0'に変化させると,LED(写真7)の色も変化します.
写真7 OSX-1の電界強度LED
OSX-1に内蔵されたHTTPサーバのCGI機能を利用し,WebからのCGI操作によってこのLEDの色を変化させる.
このようにWebを通じてポートを操作することができます.また,メモリの値を参照したり設定したりすることも可能です.LanSet.htmなどのhtmlファイルの内部に記述されているCGIスクリプトを読めば,ある程度,動作を理解できると思います.レジストリに登録してあるシンボルについては,URLのアドレス欄に記述することで値を設定できます.また,htmlファイル内に$に続けてシンボル名を記述すれば,目的の文字列に置換されます.
ユーザが独自のプログラムを作成した場合も,このCGI機能を利用すると便利です.Webブラウザを利用してユーザが設定するメモリを参照し,動作をコントロールしたり,パラメータを与えるようなスタイルで開発するとスマートです.CGIシンボルは,ユーザが自由に定義できます.