UNIXとPalmシリーズの連携について

Only written in Japanese.
Written by Masahiko KIMOTO <kimoto@ohnolab.org>
LAST UPDATE: $Date: 1999/12/18 07:10:52 $

はじめに

UNIXとPalmシリーズとの連携方法について紹介します。ただし、私が知ってい る内容はすべてを網羅しているわけではないので、他の人からの追加情報を歓 迎します。

タイトルでは総称としてPalmシリーズを使っていますが、本文中では以下をま とめてPalmPilotと呼称します。また、Palm IIIとIBM WorkPad、PalmVと WorkPad c3は搭載されているOSの日本語化がなされている点以外は同等品です。 特に断り書きがない場合は、PalmIII, PalmVと書いた場合はWorkPadも含むも のとします。

UNIX上でのPalmシリーズとの通信

通信方法

別売りのシリアルケーブル、もしくは赤外線を使って通信できます。 最高38.4kbpsまで利用できます。赤外線を利用する場合は、PalmPilot 本体側にも赤外線同期用のソフトウェアが必要です。PalmIIIの場合は IrSync+などを、PalmVの場合は付属の赤外線ソフトウェアをインスト ールする必要があります。IrSync+はPalmVでも利用できます。赤外線の 場合は19.2kbpsで通信できます。

pilot-link

pilot-linkはシリアルポートを使ってPalmシリーズとデータのやりとりを するための、コマンドラインベースのプログラムとライブラリ群です。 最新版は0.9.3です。 pilot-linkに含まれるプログラムのうち主なものは以下です


   addresses: PalmPilotのアドレス帳を読み出してテキストに書き出します。
   debugsh: デバグモニタへのコマンドラインインタフェースです。
   dlpsh: HotSyncプロトコルへのコマンドラインインタフェースです。
   getrom: PalmPilotのROMの内容を吸い出します。
   getrom.prc:  PalmPilotのROMの内容を吐き出します。
   getrom2.prc: PalmPilotのROMの内容を吐き出します(Palm OS 2.x 以降用)
   ietf2datebook: IETFのMLで流れるスケジュールをinstall-datebook用に変換します
   install-datebook: テキスト形式のdatebook情報をPalmPilotに転送します。
   install-memo: テキスト形式のmem情報をPalmPilotに転送します。
   install-todos: テキスト形式のToDo情報をPalmPilotに転送します
   install-user: PalmPilotの利用者情報を変更します。
   memos: PalmPilotのmemo情報をMailbox形式に変換します。
   pi-csd: must be running to accept Network HotSync(tm) connects
   pi-getram: PalmPilotのRAMの内容を吸い込みます。
   pi-getrom: PalmPilotのROMの内容を吸い出します
   pi-nredir: program that accepts connections and redirects them via the Network HotSync(tm) protocol
   pi-port: experimental program to separate serial layer from pilot-link
   pilot-addresses: PalmPilotのアドレス帳のデータとCSV形式のテキストとの
                    読み書きを行います。
   pilot-clip: experimental program to import and export data from Pilot clipboard
   pilot-debug: graphical and command-line program to interface with Pilot debug monitor
   pilot-dedupe: strips duplicate records from Pilot databases
   pilot-file: disect .prc and .pdb files
   pilot-mail: POPでメイルを読み込みPalmPilotに転送したり、PalmPilotで
                作成したmailをsendmail経由で送信したりします。
   pilot-schlep: store a single file on the Pilot
   pilot-undelete: turn archived records into normal records
   pilot-xfer: PalmPilotをプログラム, データベースにに対してバックアップ, 
                復元, インストール, 削除といった操作を行います。
   read-expenses: PalmPilotのexpense情報を読み込みます。
   read-ical: PalmPilotのdatebook, todo情報を読み込んで Ical形式に変換します
   read-todos: PalmPilotのtodo情報を読み込んでテキスト形式に変換します
   reminders: export Pilot datebook into a 'remind' data file
   sync-plan: completely synchronize the Pilot datebook with the Plan calendar via netplan

このうちもっとも頻繁に利用するのはpilot-xferです。
     Usage: pilot-xfer [-p port] command(s)

     Where a command is one or more of: -b(ackup)  backupdir
                                   -u(pdate)  backupdir
                                   -s(ync)    backupdir
                                   -r(estore) backupdir
                                   -i(nstall) filename(s)
                                   -m(erge)   filename(s)
                                   -f(etch)   dbname(s)
                                   -d(elete)  dbname(s)
                                   -e(xclude) filename
                                   -P(urge)
                                   -l(ist)
                                   -L(istall)
                                   -v(ersion)
                                   -h(elp)

      The serial port to connect to may be specified by the PILOTPORT
      environment variable instead of the command line. If not specified
      anywhere, it will default to /dev/pilot.

      The baud rate to connect with may be specified by the PILOTRATE
      environment variable. If not specified, it will default to 9600.
      Please use caution setting it to higher values, as several types
      of workstations have problems with higher rates.

       -b backs up all databases to the directory.
       -u is the same as -b, except it only backs up changed or new db's
       -s is the same as -u, except it removes files if the database is
          deleted on the Pilot.

PalmPilot用プログラムやデータベース(拡張子が.prc,.pdbのファイル)を PalmPilotに転送する場合は、pilot-xferを実行した後にHotSyncボタンを 押します。赤外線通信を使う場合は、ボタンを押す代わりにIrSync+もしく はHotSyncを実行します。
     例:
      pilot-xfer -p /dev/tty01 -i file1.prc file2.pdb ...

to be continued...

jpilot

jpilotでは、PalmPilot付属のPalmDesktopと同等のことができます。 スケジューラやToDoリスト管理もできます。ソフトウェアのインス トールも行えます。

compileにはpilot-linkとGTK+ 1.2.xが必要です。BSD/OSでは (こればBSD/OSの問題なのかXserverの問題なのかXlibの問題なのかが 明確になっていないのですが)フォントの展開に異常に時間がかかると いう問題は解決していません。BSD/OSでgtkを動かして日本語を使おう としたときに必ず発生する問題のようです。起動にかかる時間が我慢 できない人は環境変数LANGをCに設定してjpilotを起動してください。 日本語の表示はできなくなりますが、短時間で起動するようになります。

上記の問題を除くと(つまり2分我慢して起動させてしまえば)、一通り の機能は利用できます。HotSyncにかかる時間がWindows上のPalmDesktopと 比較して長いという難点はありますが、我慢できる範囲でしょう。

その他 (kpilot, gnome-pilot. ...)

TBD

UNIX上のアプリケーションとの連携方法

スケジューラ, ToDo

著者はUNIX上でスケジュールを管理していないので、良く分かりません。

TBD

住所録

著者はUNIX上で住所録を管理していないので、良く分かりません。 携帯電話の電話帳とsyncできたら非常にありがたいのですが、やって いません。一部の携帯電話のback upソフトはCSVを吐き出せて pilot-addressはCSVをaddressbookに追加出来るので、フィルタを書けば できそうではあります。

TBD

メモ, ドキュメント

メモについてはpilot-linkのinstall-memoでPalmPilotに書き込めます。 漢字コードをSJISにすれば日本語でも大丈夫です。 ただし、PalmPilotのメモ帳は4KB以上の大きさの文書を扱えません。 PalmPilot用のドキュメント形式としてDOCがあります。PalmPilot用の DOCリーダはフリーソフトウェアとして入手できます。PalmPilot上で 編集できるソフトもあります。UNIXではmakedocというプログラムを 使ってテキストからDOC形式のファイルを作成できます。漢字コードを SJISにすれば日本語文書も変換できます。使い方は以下です。
     makedoc [-n] [-b]   
       -n builds the .prc file without compression
       -b option compresses/decompresses binary
makedocを実行すると.prcファイルが作成されます。このファイルを pilot-xferでPalmPilotに書き込めばDOCリーダから読めるようになります。

表計算

TBD

データベース

PalmPilotで利用できるデータベース管理ソフトのうちもっとも著名な ものとしてJFileが挙げられます。Jfileの改良版としてJFile Proも あります。Windows用には、CSV-> JFile, JFilePro変換プログラムが 存在するのですが、いまのところUNIX用では存在していません。調べた 限りではJFileのフォーマットは公開されていないようです。

TBD

UNIX上での開発環境

クロスコンパイル環境の構築

GCCを使ったクロスコンパイル環境が用意されています。prc-toolsという パッケージになっています。最新版は0.5.0です。prc-tools-0.5.0.tar.gz の他に以下のソースが必要です。PalmPilot用にpatchを当てるので、 新たに展開しなおした方が良いでしょう。 また以下のプログラムがインストールされている必要があります。 prc-toolsのソースを展開した後、Makefileを編集します。主に変更する 必要がある箇所は以下です。
CC = ....     Cコンパイラの実行形式の名前(BSD/OSの場合shlicc2)
PREFIX = ...  クロスコンパイラを置くディレクトリ。/usr/local/palmなど
BINUTILSDIR = binutil-2.7のソースの場所。../binutils-2.7など
GCCDIR =      gcc-2.7.2.2のソースの場所。../gcc-2.7.2.2など
GDBDIR =      gdb-4.16のソースの場所。../gdb-4.16など
また、stubgenはperl5専用になっているので、必要に応じて1行目のperl5の pathを変更してください。

以上の変更を加えたうえで

% make doeverything
を実行するとすべてのコンパイル作業が行われます。また、
% make install
を実行するとインストールされます。

コンパイル実行例

以下のURLに井澤@JAISTさん作のHelloWorldがあります。

http://minerva.jaist.ac.jp:8080/hobby/palm/index.html

ただし、Makefile中のCFLAGSの行にインストールした環境に合わせてパスを 追加る必要があります。後述のパッケージを用いた場合は
CFLAGS = -Wall -g -O2 -I/local/palm/m68k-palmos-coff/include/PalmOS
としてください。

実際のプログラム作成例

PalmPilotのプログラミングモデルは、Macintoshに非常に良く似ています。 詳細は別のドキュメントで述べることにして、情報源のURLのみを紹介して おきます。

デバグ環境

xcopilotというエミュレータがあります。xcopilotを実行するためには PalmPilotのROMイメージが必要です。PalmPilotのROMイメージはpilot-link 付属のgetromやpi-getromを使って取得できます。この原稿を書いている時点 でのxcopilotの最新版は6.6.6ですが、xcopilot-6.6.6ではPalmOS 3.xは動き ません。つまりPalmIII以降の機種のROMイメージは利用できません。 3COMが配布しているデバグ用ROMイメージか、PalmOS 2.xのROMイメージを 何らかの方法で入手してください。

また3COMが開発、配布しているPOSEというエミュレータのUnix用ソースコード が公開されています。これをコンパイルすればPOSEを動かせられるはず ですが、pthreadとそれなりに新しいGCCを要求するので、いまのところ 筆者の環境(BSD/OS 3.1)では動作できていません。


Masahiko KIMOTO <kimoto@ohnolab.org>
Last modified: Sat Dec 18 10:20:51 1999