FreeBSD News
In This Issue:

ISPの No.1 は FreeBSDさ!

Matthew Dillon

FreeBSD ってなに?

Jordan K. Hubbard

FreeBSDで動くCodaファイルシステム

M. Satyanarayanan

もう一つの FreeBSD 成功物語: 大変革を遂げたある ISP

Dan Benjamin

TCJA の web で子供たちと始めよう

Wilko Bulte

FreeBSD と PalmPilot

Oliver Fromme

いかにして FreeBSD は私のお気に入りになったか

Martin Cracauer

FreeBSD で動かすハイファイ・オーディオ

Oliver Fromme

Blender Released!

Go to Cover Page

FreeBSD と PalmPilot
Oliver Fromme <olli@fromme.com>
訳: 龍池 哲也<ryuchi@jp.FreeBSD.org>、浜田 直樹<nao@tom-yam.or.jp>
Photo of PalmIII

というわけで、このちっちゃくてキュートなPDAを買ってきたとしよう。組み込みアプリケーションをちょこちょこ使って、メモだの予定だの住所録だのを書き込んでみた。3Comからの電子メール``Welcome''に返事まで出したかもしれない。そしてあなたは思うのだ。「さて、次はどうしよう?」インターネットには格好いいアプリケーションやゲームがころがっているけれど、PalmPilotに入れるにはどうすればいいのだろう?さらに、データのバックアップを自分のデスクトップPCにとりたいかもしれない。でも付属ツールは WindowsとMacしかサポートしていない。さてはて?

さいわい、PalmPilotとUNIXを仲よくさせるツールはいくつもあって、当然FreeBSDもサポートされている。この記事は詳細なチュートリアルとはいかないけれど、とっかかりにはなるはずだ。FreeBSDだけでなく、PalmPilotの機能についてよく知っていることは前提にしよう。ここでは``PalmPilot''と書くけれど、全部Pilotの昔のモデルやIBMの Workpad(基本的に PalmPilotProfessionalのOEM版)そして新Palm IIIにもあてはまるってことはおぼえておいてほしい。

注: PalmPilotへのアクセスはほとんどのツールが/dev/pilotデバイスを利用する。ここにPilotの受け口をつないだシリアルポートへのシンボリックリンクを張っておく必要がある。たとえば、受け口を2番目の(COM2)シリアルポートにつないだ場合、以下の様に/dev/cuaa1から/dev/pilotへシンボリックリンクを張る。

ln -fs /dev/cuaa1 /dev/pilot

さらに、シリアルポートへの読み書きの権限が必要だ。ユーティリティをrootで動かすのがいやならば、/etc/groupを編集して自分を``dialer''グループに入れ、シリアルデバイスのグループをdialerにしておくといった方法がある。

まず``kpilot''をみてみよう。その名のとおり、kpilotはKDE環境用のグラフィックアプリケーションで、FreeBSDポートコレクションのディレクトリ/usr/ports/comms/kpilotから入手できる(ポートコレクションについて良く知らないなら、FreeBSDハンドブックの適当な個所を見てほしい)。

kpilotのいいところはグラフィックインターフェイスで簡単に使えることだ。マウスをクリックするだけでPCのテキストファイルをPalmPilotのメモに変換できる。逆も同様。アドレス帳の項目の出し入れや、メールサーバーとのメールのやりとりだってできる。kpilotはPOP3プロトコルをサポートしているので、メールサーバーからとってきたメールを、PalmPilotのメールアプリケーションに転送もしてくれる。PalmPilotにためておいたメールをsendmailで送り出すこともできる。kpilotでデータのバックアップや同期がとれるし、受け口のhot-syncボタンを押すとデータの同期をとってくれる小さなデーモンプログラムだって動いている。たいていのKDEアプリケーション同様、kpilotにはHTML形式のオンラインヘルプがある(残念ながら普通あるはずのマニュアルページはない)。

kpilotはKDEがなくても使えることに注意。必要なのはKDEライブラリだけだ(FreeBSDでは独立のポートになっている)。といっても、完全なKDE環境がないと使えない機能もあるので、ディスクさえ空いていれば(ポートから)インストールする価値はある。そうすると、オンラインヘルプ、自動同期、ステータス表示などがフルに使えるようになる(このへんはkdehelp toolやKFM、kpanelを必要とするため)。いずれにせよ、オンラインヘルプ(/usr/local/share/doc/HTML/en/kpilot/にインストールされる)は好きなHTMLブラウザで読める。

そもそもGUIが嫌い、あるいはKDEが嫌いなら``pilot-link''ポート(/usr/ports/comms/pilot-link)には一見の価値がある。PalmPilotとのコマンドライン通信ツール集なのだが、これにふくまれている各種ライブラリやモジュールをつかうと、CやPerlやTcl/Tkなどなどのプログラムを書いて(書ければ、の話だが)PalmPilotと通信することだって簡単にできる。

pilot-linkポートのなかでいちばん役に立つのは``pilot-xfer''だ。いろんなコマンドラインオプションがあるのだが、いちばん重要なのは-b(PalmPilotのデータを与えられたディレクトリにバックアップする。つまり単方向の同期をとる)と-s(ディレクトリの中身の同期をとる)と-i(PalmPilotにファイルをインストールする)だ。たとえば、``foobar''というゲームをインターネットから入手したとしよう。pilot-xferでPlamPilotにインストールしようとおもったら、以下をタイプするだけでいい。

pilot-xfer -i foobar.prc

PalmPilot用プログラムはファイル名に拡張子.prc(``pilot runnable code'')がついているが、他のデータファイルの拡張子は.pdb (``pilot database'')であることに注意。これはPalmPilotのデータファイルはデータベースでもありえるからなのだが、そもそも区別がつくとはかぎらないので気にしない。

注: シリアルポートの速度を指定する環境変数``PILOTRATE''は重要なのだがpilot-linkポートではドキュメントから抜けている。デフォルトの9600は遅いうえに電池の消費が激しいので、最大の57600にしておくことをおすすめする。

Daemon

でもって、ソフトウェアの開発ができるなら、FreeBSD上でのPalmPilotアプリケーション開発に役立つツールもいくつかある。全部あげるのはこの文章の範囲を越えるので、一部だけ紹介してあとは読者の宿題ということにしよう。まず、``prc-tools''ポート(/usr/ports/devel/prc-tools)はGCCの完璧なクロスコンパイル環境で、CやC++で書いたアプリケーションをFreeBSD上で直接.prc形式にコンパイルできる。pilotなブツをアセンブラで組みたければ、pilotアセンブラの``pila''がある。ほかにおもしろいのが``jump''だ。これはJavaバイトコードのコンバータでJavaのクラスファイルを、pilaでアセンブルできるアセンブラファイルに変換してくれる。生成したプログラムはびっくりするほど小さくてなかなか速い。ただし、Java言語を完全にはサポートしていない(たとえば、threadはない)。他のユーティリティー同様、どちらもhttp://www.palmpilotfiles.com/Development.htmlに記述があってここから入手できる。

おしまいに、インストールしなきゃおしまいだよってわけではないが、xcopilotポート(/usr/ports/emulators/xcopilot)はあらゆるPalmPilotプログラマのPCにインストールされるべきだ(プログラマでなくても役に立つかもしれない)。xcopilotはX11用の完璧なPalmPilotエミュレータで、PalmPilotをまるごとシュミレートするために必要なのはPalmOSのROMイメージのみ。pilot-linkポート(上記参照)をインストールしているなら、``pi-getrom''ユーティリティでPalmPilotのROMをデスクトップPCのファイルに落とせばいい。たったこれだけの手間で、あなたの忠実なる下僕pilot君のデータを危険にさらすことなく、新しいソフトウェアを安全なエミュレーション環境でテストできるという寸法だ。

PalmPilotはコンパクトだがびっくりするほど強力なマシンで、FreeBSDがあれば新しいソフトウェアを使うのも開発するのもいたって簡単だ。すばらしい製品を開発してくれたPlamPilotの技術者たちと、懸命の努力によりこんなにも豊富なユーティリティを用意してくれたUNIX開発者の面々に栄光あれ!

参考文献: