The BSD Filer is a program that let you connect your palmtop PC to a BSD box. It emulates the server mode of Filer on the HP 100/200LX palmtop PC. You can manage files on a BSD box from your LX via serial cable, IR connection is also available.
This program currently works on the BSD UN*X (for example, FreeBSD 2.x, SunOS 4.1.x and NEWS-OS 4.x). Other UNIX operating system version is under construction. (You can also compile this program on the Solaris 2.x and the IRIX 5.3 :-).
これまで、LXの母艦となる計算機といえばConnectivity PackやLapLinkなど のリモートリンクソフトが動くパソコンなどに限られていました。このプログ ラムはそれらのパソコンに限らず、優れた開発環境で知られるBSD UNIX (以下 BSD) が動いているパソコンやワークステーションを LXの良きパートナーとす るための最初のステップです。
このプログラムは、LXの内蔵アプリケーションの一つである Filerのサーバ モードをエミュレートし、BSD が動いている計算機にもう一台の LX あるいは Connectivity Packが動いているAT互換機のフリをさせます。Filerからの操作 で、簡単にBSDからファイルをコピーしたり、逆にLXのファイルをBSDにコピー することを可能にします。
また、このプログラムを使って BSDとファイルのやりとりをする場合、LX側 では内蔵アプリケーションであるFilerを使うので、あらたに何かを LXにイン ストールする必要はありません。 つまり、このプログラムは、メモリや2次記 憶装置の容量に制限の多いLXに負担をかけないのです。
このとき、 接続要求を受け取ったLX (あるいは AT互換機) はサーバになり ます。サーバ側では (サーバモードを終了する以外には) 何もできませんが、 クライアントであるもう一台のLXからは、サーバ側のファイルもまるで手元に あるかのように操作することが可能となります。
このプログラムは、このFilerのサーバモードの真似をして、BSDのファイル をクライアントであるLXから操作することを可能にします。今回のバージョン では、LXから以下の操作ができます。
操作例 BSDで利用している日本語コードが SJISの場合 % lha xt bsdfil02.lzh BSDで利用している日本語コードが EUCの場合 % lha xet bsdfil02.lzhDOSで解凍する場合は、普通に解凍してください。また、DOSで解凍したファイ ルを BSDに転送する場合は、日本語コードや改行コードに注意してください。
操作例 % mkdir ~/bsdfiler % cd ~/bsdfiler % lha xet /tmp/bsdfil02.lzh % vi makefile % makeなお、SunOS 4.1.xでコンパイルする場合は makefileの
#CC=gcc #MACHINEDEPS=-DSUNOS41X -DNEEDVFSH # for SunOS 4.1.xの行頭の '#' を、NEWS-OS 4.xでコンパイルする場合は、
#CC=gcc #MACHINEDEPS=-DNEWSOS4X -DNEEDVFSH # for NEWS-OS 4.xの行頭の '#' をそれぞれはずしてください。FreeBSDの場合は、makefileを編 集する必要はありません。
操作例 (/dev/ttyd0 に LXをつないだ場合) % cd test-for-lx % ~/bsdfiler/bsdfiler /dev/ttyd0シリアルの速度をデフォルトの 9600bpsから変更する場合は、
% ~/bsdfiler/bsdfiler -38400 /dev/ttyd0のように、速度 (この例では 38400bps) を指定してください。 起動できたら、LX で Filer を動かし、通信条件を設定後に接続します。
操作例 (9600bps で接続する場合) FILER → MENU → Communications → Remote Settings... Baud を 9600, Interface を Com1 に設定 → OK {F10} Connect {F10} → Remote {F6}接続できたら、LXどうし、あるいは Connectivity Packにつないでいる時と同 様に操作してください。このバージョンでは、LX から次の操作ができます。
このプログラムは、クライアント側から接続解除要求を受けると終了します。 つまり、終了するには LX側で Disconn {F10} を押します。
Q: makeすると、次のようなエラーがでてコンパイルできません。 % make main.cDEBUG : No such file or directory cc: No input files specified *** Error code 1 Stop. A: 改行コードが CR + LF になっているのが原因だと考えられます。lha(1) で解凍するときに 't' modifier をつけてください。 あるいは、解凍したファイルがあるディレクトリで、 操作例 (シェルが tcsh の場合) % foreach i (*) foreach? mv $i $i.bak foreach? tr -d '\015' < $i.bak > $i foreach? end のようにして改行コードを CR + LFから LFに変更後、makeしてください。 Q: bsdfilerを動かそうとすると、can't open /dev/ttyd0 のようなエラーが でて動きません。 A: そのシリアルポートに対するアクセス権限がないのが原因だと考えられま す。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 (ttys(5)) を編集して kill -HUP 1 で gettyを止めて ください。 Q: bsdfiler は起動したのに、LXでConnect {F10}を押しても接続されません。 A: まず、シリアルポートの速度といった通信条件がBSDとLXで一致しているか を確認してください。また、BSDでgetty(8)を動かし、DataCommを使ってLX からBSDにログインできることを確認してください。 Q: ttys(5) や getty(8) の設定が面倒です。もっと楽にシリアルポートの接 続を確認する方法はありませんか。 A: まず、LXでDataCommを動かします。つぎにBSDからecho(1) を使ってシリア ルポートに文字列を書き込んでください。書き込んだ文字列が DataCommの 画面に表示されれば、シリアルポートの接続はまず大丈夫でしょう。 操作例 (FreeBSDの場合) % stty -f /dev/ttyid0 9600 cs8 clocal -crtscts hupcl % stty -f /dev/ttyd0 9600 cs8 clocal -crtscts hupcl % echo "Can you hear me?" > /dev/ttyd0 Q: 起動時にシリアルポートの指定を忘れたら、ctrl-C や ctrl-Z を押しても 止まりません。 A: 他の端末から kill(1)を使って殺してください。あるいはキーボードから ctrl-V ctrl-V ctrl-V ctrl-P ctrl-B ctrl-A A ctrl-@ ctrl-A ctrl-B ctrl-P ctrl-C - DEL の14文字を入力してください。
それから、このプログラムにはまだいろいろなバグが残っています。
なお、リモート接続中に他のアプリケーション (たとえばMemo) を起動し、 それからFilerに戻った場合、Remote Connection Broken というエラーが出て 再接続できないことがありますが、これはLXと Connectivity Packの組合せで も発生します。他のアプリケーションを動かす場合は、いったん Filerを終了 してからにしたほうがいいようです。
このプログラムの運用によって生じた結果については一切責任を負いかねま すのでご了承ください。使用前には LX、BSDともにディスクのバックアップを とったほうがいいかもしれません。
このプログラムの全部、または一部をそのまま利用して商用目的のプログラ ムを作成することはご遠慮ください。
フリーソフトウェアの作成や個人的な範囲での利用が目的の場合は、このプ ログラムの全部、または一部をそのまま利用してもかまいません。他機種への 移植や他のオペレーティングシステムへの移植およびフリーソフトウェアとし ての公開は大歓迎です。その場合、作者への連絡は不要です。 (でも、報告し てくれたり、ドキュメントに一筆書いてくれたり、さらには、そのソフトのソ ースを公開してもらえると非常にうれしいです。)
このプログラムを再配布する場合は、アーカイブファイル bsdfil02.lzh に 含まれるすべてのファイルを変更せずにそのまま配布してください。再配布す る場合は電子メイルなどでご連絡いただけるとありがたいです。
Sun SPARCstation, Sony NEWS, SGI Indy 他でのコンパイルに関して、いろ いろとアドバイスしてくれた 京都工芸繊維大学 の 太田勝巳さん、 夏コミ本編集 会議にて「xmkmf -a; make か ./Configure; make 一発で、どの UNIX でも動 くようにしよう」と圧力をかけて^H^H^H^H^H^H提案してくれた "かふぇ・ぱらだいす" & "うちゅーせーはProject" のみなさんに感謝します。
96/06/12: BSDFIL00.LZH を NIFTY-Serve FHPPC LIB(8) #550 に登録 96/07/31: BSDFIL01.LZH を NIFTY-Serve FHPPC LIB(8) #575 に登録 v0.0 → v0.1 の変更点 ・カレントディレクトリの変更やファイルの表示など、version 0.0 で サポートされていなかった機能を追加 ・コマンドラインオプションでシリアルの速度を設定可能に ・ワイルドカードの扱いを改善 ・ファイルのタイムスタンプがおかしくなるバグの修正 ・エミュレータ部の関数の大幅な見直し、ソースファイルの分割 今回: v0.1 → v0.2 の変更点 ・SunOS 4.1.x, NEWS-OS 4.x のサポート ・シリアルポートの初期化で、stty(1) コマンドを使っていたのを termios(4) に変更