The information on this page is not complete, and it is not yet possible to sync your Windows Mobile 5 device using synce. This page only describes the necessary things to setup your Linux box and Synce to communicate with you PDA. Please refer to my post at the synce-windowsmobile5 mailinglist for the latest information.
Ethereal traces
I logged the communication with ethereal between a windows-xp system (hostname rd-richard) and my pda, using the usb connection. I made sure that there were no tasks, mails, and other items to synchronize. I disconnected the device, and set the default capture interface to the Microsoft RNDIS virtual adapter miniport. After that I plugged in the cable, quickly pressed start from the capture menu and let the device sync. After that I stopped the capture process. Here are the first frames with communication on port 990 only! (frames within the first 75 frames)
Bluetooth partnership
Bluetooth partnership
My device was a bluetooth 2.0 dongle:
$ lsusb
Bus 002 Device 004: ID 1131:1001 Integrated System Solution Corp
Bus 002 Device 004: ID 1131:1001 Integrated System Solution Corp
which was initialized using the following commands (as root), one or more steps might not be necessary on your system:
modprobe ohci-hcd
modprobe ehci-hcd
mount /proc/bus/usb
modprobe hci_usb
modprobe rfcomm
hciconfig hci0 up
/etc/init.d/bluetooth restart
modprobe ehci-hcd
mount /proc/bus/usb
modprobe hci_usb
modprobe rfcomm
hciconfig hci0 up
/etc/init.d/bluetooth restart
Check that the device is actually up:
$ hciconfig -a
hci0: Type: USB
BD Address: 11:11:11:11:11:11 ACL MTU: 678:8 SCO MTU: 48:10
UP RUNNING PSCAN ISCAN
X bytes:276184 acl:4546 sco:0 events:5014 errors:0
TX bytes:121372 acl:3587 sco:0 commands:545 errors:0
Features: 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ (0)'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x1fe LMP Ver: 1.2 (0x2) LMP Subver: 0x1fe
Manufacturer: Integrated System Solution Corp. (57)
hci0: Type: USB
BD Address: 11:11:11:11:11:11 ACL MTU: 678:8 SCO MTU: 48:10
UP RUNNING PSCAN ISCAN
X bytes:276184 acl:4546 sco:0 events:5014 errors:0
TX bytes:121372 acl:3587 sco:0 commands:545 errors:0
Features: 0xbf 0xfe 0x8d 0x78 0x08 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ (0)'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x1fe LMP Ver: 1.2 (0x2) LMP Subver: 0x1fe
Manufacturer: Integrated System Solution Corp. (57)
Check the contents of /etc/bluetooth/hcid.conf and make sure that you have the file mentioned in the line 'pin_helper' (/usr/bin/bluepin). Otherwise create it with the following contents:
$ cat /usr/bin/bluepin
#!/bin/sh
echo "PIN:1234"
#!/bin/sh
echo "PIN:1234"
Now discover the linux machine on your PDA. It should report some like your hostname, or 'BlueZ (0)' or something else.
PPPD communication
PPPD communication
For the ppp communication you to insert the following modules (maybe not all of them)
modprobe ppp_generic
modprobe ppp_synctty
modprobe ppp_async
# modprobe sha1
# modprobe arc4
# modprobe ppp_mppe_mppc, but only if you have a patched kernel and a patched pppd. You can get the MPPC patches here.
modprobe ppp_synctty
modprobe ppp_async
# modprobe sha1
# modprobe arc4
# modprobe ppp_mppe_mppc, but only if you have a patched kernel and a patched pppd. You can get the MPPC patches here.
Edit the file /etc/ppp/peers/dun (possibly remove the options in /etc/ppp/options)
noauth
nodefaultroute
local
192.168.131.102:192.168.131.201
ms-dns 0.0.0.0
mru 808
linkname synce-device
debug
# nomppe
# record /tmp/pppd.log
nodefaultroute
local
192.168.131.102:192.168.131.201
ms-dns 0.0.0.0
mru 808
linkname synce-device
debug
# nomppe
# record /tmp/pppd.log
Then start the dialup networking daemon using the following command
$ dund --listen --nodetach --activesync --msdun call dun
If everything went succesfully, you should now be able to discover the device on your PDA. The best thing is to remove the partnerships and let activesync create a new one for you. Try to run 'connect using bluetooth' from the activesync menu. You should now see the pppd output from the dund daemon on your console.
Active Sync server (c++ version)
Active-Sync server (c++ version)
old: async_server (console version)
This is a less quick and dirty server that is still listening on port 990 so you need to run it as root. You can download the latest codethe latest code here, it now depends on a recent Qt 4.x version, which you should have installed on your system. Get the library from www.trolltech.com, and take a coffee while it's compiling or get the compiled development package from your distribution packages.
Compile it with the following commands:
$ tar jxvf ASyncServer-0.0x.tar.bz2
$ cd ASyncServer-0.0x; $ qmake $ make
$ cd ASyncServer-0.0x; $ qmake $ make
If you do not have a compiler and libc-development packages on your system you can get the the compiled binary here. It depends on the libstdc++.so.6 library, so it might not work on older distributions like SuSE 9.x (tested the code on SuSE 9.x and debian unstable). Rename the binary, and make sure it's executable (chmod +x).
Now run the server, it doesn't accept any commandline arguments (yet). If all goes well, you should see the mainwindow. It already started the server on port 990, so run the sync command from the pda. Here is a screenshot:



