FreeBSD と Windows でネットワーク経由の HotSync

Windows をゲートウェイにして,FreeBSD に HotSync する方法をメモ程度に.

使用機材:

今回は Windows をネットワーク接続のゲートウェイとして使用し,FreeBSD で pilot-xfer を待機させておく手段を取っている.
  1. HotSync マネージャーをネットワーク HotSync できるように設定
    「起動/接続設定」の「ネットワーク」タブでネットワーク HotSync させる Palm デバイスを指定する.
    ここでは Windows がプライマリパソコンになるようにしか設定できないので適当に設定しておく.
    設定が終わったら「ネットワーク(N)」にチェックを入れておく.

  2. Palm 端末側の設定をする
    HotSync のメニューで「プライマリパソコンの設定」を開く.
    ここで必要な設定を行う.

    プライマリパソコンの設定
    - プライマリパソコン名:
    FreeBSD マシンのホスト名を入力.
    ただしこの名前でプライマリパソコンにアクセスできる必要があるので,Windows の hosts ファイルにここで指定するホスト名とプライマリパソコンの関連を記述しておくか,DNS で引ける必要があるようだ.
    - プライマリパソコンのアドレス:
    FreeBSD マシンの IP アドレス.
    しかしなぜかプライマリパソコン名しか見ていないようで,ここに IP アドレスを記述しても無視される.
    - サブネットマスク:
    FreeBSD マシンのサブネットマスク.
    プライマリパソコンの検索が遅い場合はここで区切ってやるといい.

    ちなみに自分はインターネット経由だと,プライマリパソコン名に DNS で登録してある名前 (griffon.gwits.net) を指定するだけで通信できた.
    プライマリパソコンのアドレスと同サブネットマスクは指定していない.
    また,ファイアーウォールを建てている場合などには,「インターネット経由の Network HotSync」も参照していただきたい.

  3. pilot-link をインストールする
    今回は面倒なので packages を使用した (手抜き).
    これをインストールすると pilot-xfer (Palm データ転送ツール) が使える.

  4. FreeBSD で待機させる
    まずは Palm のリストを出してみることにする.
    待機方法は以下の通り.

    % pilot-xfer -p . -l

    -p で使用するポートを指定する.
    ネットワーク HotSync の場合は半角ドットを指定.
    もし毎回指定するのが面倒な場合は,環境変数 PILOTPORT にポートを指定する.

    例) % setenv PILOTPORT .

    環境変数を設定した後でもコマンドラインで -p PORT を指定するとそちらの方が優先される.PILOTPORT 待機に成功すると

       Port: .

       Please press the HotSync button now...

    と出てくるはずなので,ここで Palm を Windows に接続して HotSync を実行する.
    HotSync は赤外線,USB,シリアルポートの全てが使える
    Windows とのローカル HotSync が出来ているならば,1. と 2. の設定を行いさえすればどのデバイスポート経由でも使うことが出来る.
    # 自分の場合は赤外線と USB@CLIE PEG-NR70 で確認済み.

    HotSync を実行すると

    Connecting...

    と出てきた後に Palm のファイルリストが出力されることを確認する.

    % pilot-xfer -p . -l
       Port: .

       Please press the HotSync button now...
    Connected...
    Reading list of databases in RAM...
    'Eiwa.pdb'
    'Waei.pdb'

     )
    'palm20'
    'palm21'
    List done.


インターネット経由の Network HotSync

会社で自宅の鯖に Network HotSync を行おうとしたが,自宅の鯖は ipfw でファイアーウォールを建て,そこからポートフォワーディングで LAN 内の鯖に繋いでいることにはたと気づく.
このままでは FreeBSD 鯖にコネクションを張れないではないか,と.

ということでちょっと調べてみると,以下のポートを開けておけばいいことがわかった.

14237/UDP
14238/TCP

で,現在は natd でポートフォワーディングも加えているので,

- natd
redirect_port tcp SERVER_ADDR:14237 14237
redirect_port udp SERVER_ADDR:14238 14238

- ipfw
ipfw 2300 add allow udp from any to SERVER_ADDR 14237
ipfw 2310 add allow tcp from any to SERVER_ADDR 14238

で穴を開けている.
※SERVER_ADDR = FreeBSD 鯖の IP アドレス


PalmWare のインストール

インストール方法はいたって簡単.

% pilot-xfer -i ragnadiary-01.pdb
   Port: .

   Please press the HotSync button now...
Connected...
Installing ragnadiary-01.pdb... OK
Install done

-i オプションでインストールするファイルを指定して pilot-xfer を実行すると待ち受けに入るので,あとは Palm で HotSync を実行するだけ.
インターネット経由だろうがローカルネットワークだろうが,繋がれば問題ないようだ.
複数のファイルをインストールする場合は,ファイル名を書き連ねればよい.

例) % pilot-xfer -i file1.pdb file2.pdb file3.pdb

ファイルを記述した順にインストールされる.
ファイル名にはワイルドカードも使えるようだ.


pilot-xfer の backup と sync とupdate の違い

自分で実際にやってみた.

  • backup
    Palm のファイルを全てプライマリパソコン側に転送する.
    プライマリパソコン側のファイルは,上書きされるが削除されることはない.
  • sync
    Palm との同期を取る.
    プライマリパソコン側に Palm のファイルがない場合は,プライマリパソコン側のファイルは削除される.
  • update
    動作は sync とほぼ同じ.
    違う点は,プライマリパソコン側に Palm のファイルがない場合でも,プライマリパソコン側のファイルは削除されない.
  • この 3つの全てに共通することだが,たとえ同期ディレクトリの下にインストールしたいファイルをおいてもインストールは行われない.
    インストールを行う場合は明示的に -i でインストールファイルを指定しなければならない.

    日常的には,一度 backup で全てをバックアップしてから,sync で同期を取ればいいと思われる.
    # update の使い道ってあるのかなぁ・・・?


    PEG-NR70 USB 情報

    FreeBSD 4.3-RELEASE で USB 接続を試してみたが,一向に繋がる気配がないので,とりあえず NR70 の USB 情報を記載しておく.
    HotSync 時と MSimport 時 (USB Mass Strage Mode) では ProductID (prdct) と Class (clss) が違うことに注意.

  • HotSync 時
    - 接続時
    % usbdevs -v
    usbd: attach event at 1019103027.827829000, Palm Handheld, Sony Corp.:
      vndr=0x054c prdct=0x009a rlse=0x0100 clss=0x00ff subclss=0x0000 prtcl=0x0000
      device names: ugen0
    usbd: Found action 'USB device' for Palm Handheld, Sony Corp. at ugen0

    - 切断時
    % usbdevs -v
    usbd: detach event at 1019103042.909616000, product 0x009a, Sony Corp.:
      vndr=0x054c prdct=0x009a rlse=0x0100 clss=0x00ff subclss=0x0000 prtcl=0x0000
      device names: ugen0
    usbd: Found action 'USB device' for product 0x009a, Sony Corp. at ugen0
  • MSimport 接続自
    - 接続時
    % usbdevs -v
    usbd: attach event at 1019103339.093765000, Sony PEG Mass Storage, Sony:
      vndr=0x054c prdct=0x0099 rlse=0x0100 clss=0x0000 subclss=0x0000 prtcl=0x0000
      device names: ugen0
    usbd: Found action 'USB device' for Sony PEG Mass Storage, Sony at ugen0

    % dmesg
    Apr 20 02:51:05 merrow /kernel: ugen0: Sony Sony PEG Mass Storage, rev 1.10/1.00, addr 2

    - 切断時
    % usbdevs -v
    usbd: detach event at 1019103365.675213000, product 0x0099, Sony Corp.:
      vndr=0x054c prdct=0x0099 rlse=0x0100 clss=0x0000 subclss=0x0000 prtcl=0x0000
      device names: ugen0
    usbd: Found action 'USB device' for product 0x0099, Sony Corp. at ugen0

    ←戻る