SynCEとFUR

Un*x上で動くActiveSync(RNDIS)互換プログラムであるSynCEを入れてみた。
導入についてはW-ZERO3Windows Mobile 2005なので、http://www.synce.org/index.php/Windows_Mobile_2005_Supportを参照した。Kernelパッチが必要なところと、0.10.0以上はまだPortageに入ってないという2点によりemergeですぐ使えるようにはならない。とは言っても、特別難しいことは無いだろう。
root権限でodccmを起動したあとはUSBで接続すれば

$ pls
--D------T              1998-01-01 21:00:00  miniSDカード/
Archive          32768  2006-08-30 16:01:20  imjp31u.dic
Directory               2006-12-04 15:18:28  UpdateBin/
Archive           7313  2006-01-01 03:04:16  Microsoft .NET CF 2.0.LOG.TXT
Archive         921654  2007-04-29 12:19:42  SCRN0001.BMP
Directory               2006-01-01 00:00:00  Documents and Settings/
--D-----S-              2006-01-01 00:00:00  Windows/
--D-----S-              2006-01-01 00:00:00  Temp/
Directory               2006-01-01 00:00:10  My Documents/
Directory               2006-01-01 00:00:10  Program Files/
Directory               2006-01-01 00:00:12  Storage/
Directory               2006-01-01 00:00:14  Application Data/
A-------S-       53248  2007-05-31 01:15:44  mxip_notify.vol
A-------S-       28672  2007-05-31 03:02:10  mxip_lang.vol
Directory               2006-01-01 00:00:28  ConnMgr/
Archive         299008  2007-05-31 01:20:02  pim.vol
Archive             21  2007-05-31 02:24:34  hoge
Directory               2007-05-31 02:54:30  cegcc/
Directory               2007-05-31 02:54:12  mingw32ce/

と言う風に基本的なファイル操作(pls, pcp, pmv, prm, pmkdir, prmdir)やWinCE上のパッケージ管理(synce-list-programs, synce-install-cab, synce-remove-program)、psettime(時刻同期)、prun(プログラムの起動)などのツールが使用できる。
しかし、pcpディレクトリの再帰的なコピーが出来ないなど非力すぎるので、librapi2をFUSEを使って抽象化してアクセス出来るようにするFURも入れてみた。使い方は簡単。

$ mkdir furtest
$ fur furtest # 注:FURに含まれるコマンドはFurだけど好みでfurにリネームした
$ ls -la furtest
dr-x------   2 gama users      0 1970-01-01 09:00 .
drwx------ 184 gama users  17224 2007-05-31 05:08 ..
drwx------   2 gama users      0 1970-01-01 09:00 Application Data
drwx------   2 gama users      0 1970-01-01 09:00 ConnMgr
drwx------   2 gama users      0 1970-01-01 09:00 Documents and Settings
-rwx------   1 gama users   7313 1970-01-01 09:00 Microsoft .NET CF 2.0.LOG.TXT
drwx------   2 gama users      0 1970-01-01 09:00 My Documents
drwx------   2 gama users      0 1970-01-01 09:00 Program Files
-rwx------   1 gama users 921654 1970-01-01 09:00 SCRN0001.BMP
drwx------   2 gama users      0 1970-01-01 09:00 Storage
drwx------   2 gama users      0 1970-01-01 09:00 Temp
drwx------   2 gama users      0 1970-01-01 09:00 UpdateBin
drwx------   2 gama users      0 1970-01-01 09:00 Windows
drwx------   2 gama users      0 1970-01-01 09:00 cegcc
-rwx------   1 gama users 172032 1970-01-01 09:00 cemail.vol
-rwx------   1 gama users     21 1970-01-01 09:00 hoge
-rwx------   1 gama users  32768 1970-01-01 09:00 imjp31u.dic
drwx------   2 gama users      0 1970-01-01 09:00 mingw32ce
drwx------   2 gama users      0 1970-01-01 09:00 miniSDカード
-rwx------   1 gama users  32768 1970-01-01 09:00 mxip_initdb.vol
-rwx------   1 gama users  28672 1970-01-01 09:00 mxip_lang.vol
-rwx------   1 gama users  53248 1970-01-01 09:00 mxip_notify.vol
-rwx------   1 gama users 143360 1970-01-01 09:00 mxip_system.vol
-rwx------   1 gama users 299008 1970-01-01 09:00 pim.vol
dr-x------   2 gama users      0 1970-01-01 09:00 proc

見てのとおり、タイムスタンプ回りは実装されていないが、SynCEのツールと同時に使えるのでMiniSDに対する排他的なアクセスしか出来ないZERO3標準のマスストレージ機能より遥かに実用的。
ただ、proc/regkeys内にアクセスすると接続が切れてしまうので注意である。
せっかく5つくらいebuildでっちあげたのでこの先に置いときます。/etc/init.d/odccm stopが効かなかったのでちょろんと修正

#!/bin/sh
base64 -d <<EOF | tar xvz
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
EOF