Nov 23, 2006

W-ZERO3とLinuxでActiveSync

LinuxとWindows Mobile 5.0でActiveSyncもどきを実現するためには、usb-rndisドライバとSynCEを使用するのだが、今までW-ZERO3(Intel PXA27x/XScale)ではusb-rndisが動作しなかった。 が、2006/11/22にOle André Vadla Ravnås氏がSynCE-WindowsMobile5のMLでIntel PXA27x/XScaleでも動作するusb-rndis-ngをアナウンスしたので早速試してみる。 環境は以下の通り。

  • W-ZERO3 WS003SH
  • Gentoo Linux amd64
    • sys-kernel/gentoo-sources-2.6.18-r2
    • dev-libs/libusb-0.1.12
カーネル構築時にTUN/TAPを有効(CONFIG_TUN=y)にすること。 subversionで取得し構築。
$ svn co https://svn.sourceforge.net/svnroot/synce/trunk/oleavr-files/usb-rndis-ng $ cd usb-rndis-ng $ ./autogen.sh $ ./configure $ make $ sudo make install
で、W-ZERO3とLinuxをUSBで接続し、今インストールしたusb-rndis-driverをrootで実行。
$ sudo usb-rndis-driver scanning for devices doing rndis_init rndis_init succeeded: major_version = 1 minor_version = 0 device_flags = 0x00000001 medium = 0 max_packets_per_message = 32 max_transfer_size = 8192 packet_alignment = 3 af_list_offset = 0 af_list_size = 0 doing rndis_query for OID_802_3_PERMANENT_ADDRESS rndis_query succeeded, got MAC address: 80:00:60:0f:e8:00 setting packet filter packet filter set got device 'tap0' all good done scanning for devices recv_thread speaking send_thread speaking
のように出ればOK。 tap0に対しdhclient等を実行しIPアドレス取得する。eth0など他のインタフェースでdhcpcd等を動作させてる場合はバッティングするのでごにょごにょする。
$ sudo dhclient tap0 Internet Systems Consortium DHCP Client V3.0.3-Gentoo-r9 Copyright 2004-2005 Internet Systems Consortium. All rights reserved. For info, please visit http://www.isc.org/products/DHCP Listening on LPF/tap0/80:00:60:0f:e8:00 Sending on LPF/tap0/80:00:60:0f:e8:00 Sending on Socket/fallback DHCPDISCOVER on tap0 to 255.255.255.255 port 67 interval 3 DHCPOFFER from 169.254.2.1 DHCPREQUEST on tap0 to 255.255.255.255 port 67 DHCPACK from 169.254.2.1 bound to 169.254.2.2 -- renewal in 1228849 seconds.
と、こんな感じでIP取得できたらOK。あとはSynCE。 最新のSynCEをSubversionで取得するか、SynCE-0.9.3を導入すると良い。 ちなみにGentooでは2006/11/23現在SynCE-0.9.2までしかない。
  • app-pda/synce-libsynce
  • app-pda/synce-librapi2
  • app-pda/synce-dccm
あたりをでっちあげれば良い。tarballのファイル名が変わってるので臨機応変に。面倒ならSubversionで。 SynCEがインストールできたら、
$ vdccm -s 40 $ triggerconnection 169.254.2.1
で準備完了。
$ pls
でW-ZERO3上のファイル一覧が表示される。おーすばらしい。 続きはまたこんど。詳細はこちらで。

No comments: