UNIX 母艦化計画 その1
BSD Filer v0.1 -- FreeBSD を Filer の server に

Copyright (C) 1996 by Dai ISHIJIMA


v0.0のドキュメントへ, v0.2のドキュメントへ, LX Filerの目次へ

HP 100/200LX (以下LX) を十二分に活用するためには、母艦となるパソコン が欠かせません。このプログラムはパソコン用 UNIX のひとつである FreeBSD が動いているマシンを LX の母艦にするための最初のステップです。このプロ グラムは LX の内蔵アプリケーションである Filerのサーバモードのフリをし、 LX・FreeBSD間のファイル転送を容易にします。

☆ このプログラムでできること

LX の内蔵アプリケーションのひとつである Filer にはリモート接続の機能 が用意されています。これを使うと、赤外線ポートやシリアルケーブルを介し て、もう一台の LX や Connectivity Pack が動いている AT互換機とのファイ ルのやりとりが可能になります。

このとき、 接続要求を受け取った LX (あるいはAT互換機) はサーバになり ます。サーバ側では (サーバモードを終了する以外には) 何もできませんが、 クライアントであるもう一台の LX からは、サーバ側のファイルもまるで手元 にあるかのように操作することが可能となります。

このプログラムは、この Filer のサーバモードの真似をして、FreeBSDのフ ァイルをクライアントである LX から操作することを可能にします。今回のバ ージョンでは、LXから以下の操作ができます。

ただし、 といった制約があります。

☆ 動作環境

このプログラムそのものは FreeBSD 2.x 上で動きます。LX では動きません。 動作テストは以下の組合せで行いました。
クライアント: HP 200LX 2Mモデル (無改造)
サーバ: Digital HiNote Ultra CS433 / FreeBSD 2.1R / 赤外線ポート接続
なお、テストに使った速度は 9600bps です。また、以前のバージョンでは、
自分で組み立てたAT互換機 / FreeBSD 2.1R / 自作クロスケーブル,
EPSON PC-386GS2 (改) / FreeBSD(98) 2.0R / 自作クロスケーブル
をサーバにした場合の動作も確認しています。

☆ アーカイブファイルに含まれるファイル

アーカイブファイルbsdfil01.lzh には、 が含まれています。拡張子 .lzh からわかるように、このアーカイブファイル は UNIX版 LHa (lha(1)) で作成されています。 アーカイブ内の日本語コード はシフトJIS、改行コードは CR + LF になっていますので、FreeBSD で解凍す る場合は、't' あるいは 'et' modifier をつけてください。
   操作例:
      FreeBSDで利用している日本語コードが SJIS の場合
      % lha xt bsdfil01.lzh

      FreeBSDで利用している日本語コードが EUC の場合
      % lha xet bsdfil01.lzh
DOS で解凍する場合は、普通に解凍してください。また、DOS で解凍したファ イルを FreeBSDに転送する場合は、日本語コードや改行コードに注意してくだ さい。

☆ 準備 -- LX と FreeBSDの接続

このプログラムを使用するためには、LX と FreeBSD マシンをきちんと接続 しておく必要があります。まず、F1015 などのクロスケーブルを用意して物理 的に接続します。(以下の説明では FreeBSD 側の COM1: (/dev/ttyd0) に接続 した場合の例を示します。)

つぎに LX と FreeBSDの間でデータのやりとりができることを確認しましょ う。これには、FreeBSD 側でシリアルポートからログインできるようにし、LX から DataComm で FreeBSD にログインしてみるのがいいでしょう。FreeBSDの /etc/ttys ファイル (ttys(5)) を編集し、LX を接続したシリアルポートから のログインを許可します。

   /etc/ttys の編集例 (抜粋):
      ttyd0   "/usr/libexec/getty std.9600"   unknown on insecure
編集が終ったら、kill(1) コマンドで変更を有効にします。
   操作例:
      # kill -HUP 1

BSD側の設定がすんだら、LX で DataComm を起動し、通信条件をあわせてか らログインします。/etc/ttysを上のように設定した場合は、MENU -> Connect -> Settings...で Baud を 9600, Interface を Com1, Parity を none, Data Bits を 8, Stop Bits を 1 に設定します。

DataComm の通信条件設定後 ENTER キーを押し、FreeBSD のログインメッセ ージがでてきたら準備完了です。 FreeBSD の /etc/ttys の設定を元に戻して、 BSD Filerがシリアルポートを使えるようにしておきましょう。

      ttyd0   "/usr/libexec/getty std.9600"   unknown off insecure
設定を戻したら、再度 kill -HUP 1 を実行してください。

☆ コンパイル方法

適当なディレクトリでアーカイブファイル bsdfil01.lzhを解凍し、make(1) でコンパイルします。ここではアーカイブファイルが /tmp にあり、ホームデ ィレクトリの下の bsdfiler でコンパイルする例を示します。
   操作例
      % mkdir ~/bsdfiler
      % cd ~/bsdfiler
      % lha xet /tmp/bsdfil01.lzh
      % make

☆ 使用方法

転送したいファイルのあるディレクトリに移動し、このプログラムを起動し ます。起動時のオプションとして、LXを接続したシリアルポートを指定してく ださい。

   操作例
      % cd test-for-lx
      % ~/bsdfiler/bsdfiler /dev/ttyd0
起動できたら、LX で Filer を動かし、通信条件を設定後に接続します。
   操作例
      FILER -> MENU -> Communications -> Remote Settings...
         Baud を 9600, Interface を Com1 に設定 -> OK {F10}
      Connect {F10} -> Remote {F6}
接続できたら、LXどうし、あるいはConnectivity Packにつないでいる時と同 様に操作してください。このバージョンでは、LX から次の操作ができます。 このプログラムは、クライアント側から接続解除要求を受けると終了します。 つまり、終了するには LX側で Disconn {F10} を押します。

☆ トラブルシューティング

・DataComm で FreeBSD にログインできない。
→まず、ttys(5) や LXの設定を確認してください。次に、

      # stty -f /dev/ttyid0 clocal -crtscts hupcl
      # stty -f /dev/ttyd0 clocal -crtscts hupcl

  でフロー制御を無効にしてみてください。それでもダメなら、FreeBSD を動
  かしているマシンで DOSを起動し、Connectivity Pack や通信ソフトで接続
  できることを確認してください。その後、FreeBSD に戻って設定を再確認し
  てください。

・bsdfiler を起動させようとすると can't open /dev/ttyd0 と表示されて
  起動しない。
→/dev/ttyd0 へのアクセス権限がないのが原因だと考えられます。
  root になってから chmod(1) してください。

   操作例
      % ls -l /dev/ttyd0
      crw-------  1 root  wheel   28,   0 May 19 21:17 /dev/ttyd0
      % su
      # chmod 666 /dev/ttyd0
      # exit
      % ls -l /dev/ttyd0
      crw-rw-rw-  1 root  wheel   28,   0 May 19 21:17 /dev/ttyd0

  また、そのポートで getty(8) が動いているかもしれません。この場合は
  /etc/ttys を編集して kill -HUP 1 で getty を止めてください。

・bsdfiler の起動には成功したが、LX で Connect {F10} を押しても接続で
  きない。
→stty(1) コマンドで、シリアルポートの設定を確認してください。

   操作例
      % ~/bsdfiler /dev/ttyd0 &
      % stty -f /dev/ttyd0 everything
      speed 9600 baud; 0 rows; 0 columns;
      lflags: -icanon -isig -iexten -echo -echoe -echok -echoke -echonl
              -echoctl -echoprt -altwerase -noflsh -tostop -flusho -pendin
              -nokerninfo -extproc
      iflags: -istrip -icrnl -inlcr -igncr -ixon -ixoff -ixany -imaxbel ignbrk
              -brkint -inpck -ignpar -parmrk
      oflags: -opost -onlcr -oxtabs
      cflags: cread cs8 -parenb -parodd hupcl clocal -cstopb -crtscts -dsrflow
              -dtrflow -mdmbuf
      discard dsusp   eof     eol     eol2    erase   intr    kill    lnext
      <undef> <undef> <undef> <undef> <undef> <undef> <undef> <undef> <undef>
      min     quit    reprint start   status  stop    susp    time    werase
      1       <undef> <undef> <undef> <undef> <undef> <undef> 0       <undef>

  また、LX側で Filer の Remote Settings... も再度確認してください。

☆ 制限事項

このプログラムには、以下の制限があります。 それから、このプログラムにはまだいろいろなバグが残っています。 これ以外にもあるかもしれません (^^;;;)。

☆ おことわり

このプログラムは (狭義の) フリーソフトウェアです。パブリックドメイン ソフトウェア、シェアウェアではありません。このプログラムの著作権は、作 者である いしじま☆だい が所有しています。

このプログラムの運用によって生じた結果については一切責任を負いかねま すのでご了承ください。使用前には LX、FreeBSD ともにディスクのバックアッ プをとったほうがいいかもしれません。

このプログラムの全部、または一部をそのまま利用して商用目的のプログラ ムを作成することはご遠慮ください。

フリーソフトウェアの作成や個人的な範囲での利用が目的の場合は、このプ ログラムの全部、または一部をそのまま利用してもかまいません。他機種への 移植や他のオペレーティングシステムへの移植およびフリーソフトウェアとし ての公開は大歓迎です。その場合、作者への連絡は不要です。 (でも、報告し てくれたり、ドキュメントに一筆書いてくれたり、さらには、そのソフトのソ ースを公開してもらえると非常にうれしいです。)

このプログラムを再配布する場合は、アーカイブファイル bsdfil01.lzhに 含まれるすべてのファイルを変更せずにそのまま配布してください。再配布す る場合はメイルなどでご連絡いただけるとありがたいです。

☆ 今後の予定

☆ 謝辞

このプログラムの最初の版である BSD Filer version 0.0 を Windows NTに移植 し、 公開してくださった 伊藤 栄一郎 (GHC02331@niftyserve.or.jp) さん、 そして、このプログラムを他のUNIXに移植した、あるいは移植にトライし ているNIFTY-Serve FHPPC のみなさんに感謝します。

Sun SPARCstation, Sony NEWS, SGI Indy 他でコンパイルにチャレンジして くれた 京都工芸繊維大学太田勝巳さん、 夏コミ本編集会議にて「xmkmf -a; make か ./Configure; make 一発で、どの UNIX でも動くようにしよう」と圧 力をかけて^H^H^H^H^H^H提案してくれた "かふぇ・ぱらだいす" & "うちゅーせーはProject" のみなさんに感謝します。

☆ 参考文献

☆ 改編の記録


BSD Filer version 0.1 Copyright (C) 1996 by Dai ISHIJIMA