总算在Linux平台下搞定了,步骤很烦琐(需要的东西太多)。我的手机是多普达577W,系统是 windows mobile 5 smartphone。用到的东西主要是 synce,当然也少不了opensync这个同步框架。具体过程如下(可能不是很完善,有些步骤很久以前就做了的,可能会有遗漏。):
1、装synce(从tarball安装,从SVN安装)
具体的安装过程就不说了,跟编译安装其它软件差不多,不外乎./configure ,make,make install。
需要装几个包:
synce-libsynce-0.10.0.tar.gz
synce-librapi2-0.10.0.tar.gz
synce-odccm-0.10.0.tar.gz
synce-gnome-0.10.0.tar.gz(貌似不是必要的,我就没装这个)
一般的发行版都会自带这些软件,大家找找吧,不一定得自己安装。像我的archLinux就有这些,我 pacman -Ss synce搜索了一下,然后把这些东西装上就可以了。用的比较多Ubuntu应该也有这些东西,如果没有大家就自己编译安装吧,如果对编译安装不熟,则看 wiki。
2、装驱动(官方网站wiki)
如果你的内核>=2.6.21,那么你需要给内核打一个补丁
CONFIG_USB_USBNET=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_RNDIS_HOST=m将它们作为内核模块编译也可以。做完这些按往常一样编译内核就行了。(上帝啊,编译内核是个体力活啊,其实可以不用整个内核都重新编译,编译需要用到的模块即可)
2.6.21以下的内核麻烦一点,需要下载整个驱动(2.6.21已自带驱动),具体的就不说了,需要的看官方网站wiki好了。其实也不算麻烦,都是差不多的。
编译完内核并用新内核启动之后,插上你的手机,系统应该能够发现你的手机并添加一个rndis_host设备。具体看dmesg出来的消息。官方网站说用这个命令查看:
dmesg | grep “rndis[0-9]: register” | grep “rndis_host” | tail -1
其实这个命令不一定正确,因为在我的电脑上,认出来的interface是被命名为eth1,具体大家看情况,反正有类似:
eth1: register ‘rndis_host’ at usb-0000:00:10.1-2, RNDIS device, 80:00:60:0f:e8:00
的就是了。
到这里其实已经告一段落了,到这里已经可以往手机复制文件/从手机复制文件,给手机装软件等等了。在终端下输入odccm启动odccm,然后插上手机,输入pls看看能不能浏览手机文件即可测试。
3、同步(SyncEngine同步)
先生们,女士们,最复杂的一步来了!这一步的目的是要将手机与系统中的软件进行同步,如同步联系人,日历等等等等。说它最复杂,并不是说它很难,而是麻烦。为什么?因为它依赖的软件实在是太多了!看看下面这个列表吧。
libopensync >= 0.21
libopensync-plugin-Python >= 0.21
msynctool >= 0.21
udev -> make sure that udev->hald->dbus-daemon (ps aux | grep -E “hald|dbus-daemon|udevd”) are all running
dbus >= 0.60 and its python bindings (e.g. python2.4-dbus, or for Gentoo users: dbus-python)
python2.4-gobject (注意,这个包应该是必要的…)
python2.4-pyrex
python-pyrex
python2.4-xml
libxml2-dev
libxslt
python-libxslt1
libexpat1-dev
python2.4-dev
pyxml
swig
libsqlite3-dev (注意,这个包应该是必要的…)
libmimedir0
libmimedir-dev
你晕了没有?反正我是差点晕了。不过还好,事情并没有那么恐怖,因为,第一、这些包可能是其它软件也需要的,你的系统已经装了一些了;第二、如果你系统的包管理器很方便的话,比如我的archLinux ,装这些东西其实很简单,其它的如debian,gentoo,ubuntu等等等等能自动从网上下载安装的系统应该都不麻烦。但是,要注意的一点就是,包的文件名不一定跟上面的一样。