note 2009
after spending hours on trying to get a working setup with opensync I finally gave up and moved to finch sync
this page might be obsolete in some points, anyway you'll need synce to get an IP connection to your handheld.
also be sure to install "PIM Backup" from FdcSoft on your windows mobile - it will save you from trouble...

Synce on OpenSuse 10.3

some hints on using "synce" to synchronise a WindowsMobile 6.1 device - namely a HTC touch diamond = XDA diamond - with Kontact running on a OpenSuse 10.3 Linux computer via USB. This is not a full HowTo, as the whole installation is pretty complex at the moment. Once running the process seems quite stable. As this uses Opensync it is far beyond ActiveSync as one might sync with almost any device or software.

installation

1st you have to add some software repositories: launch Yast / Software / change installation source
add type HTTP - server download.opensuse.org - path /repositories/home:/MasterPatricko:/synce/KDE4_openSUSE_10.3
and type HTTP - server download.opensuse.org - path /repositories/home:/b-s-a:/synce/openSUSE_10.3
maybe there are more repositories or changes on this - search on packages.opensuse-community.org for details

install the following packages, at the moment version 0.12 is current - watch out, because there are older ones!

kernel-module

As of writing this, the current kernel in opensuse 10.3 is 2.6.22.18, the shipped usb-module to handle the network connection to the handheld does not work with WindowsMobile, so you need a different one. This is supposed to change with more recent kernels. For now you most likely need to compile the module from the sources on synce.org. They only have the 0.11 version, but that should work. Alternately download a zip-package containing the 3 files: cdc_ether.ko, rndis_host.ko, usbnet.ko here (15kB). I compiled them and they work for me, but I give absolutely no warranty for anything about them - use at own risk!

become a superuser and copy alle 3 files to /lib/modules/(your running kernel)/extra
move the old modules from /lib/modules/(your running kernel)/kernel/drivers/net/usb anywhere out of /lib/modules and where you'll find them again (just a backup)
there might be more older versions of theese files in /lib/modules/(your running kernel)/updates/... they need to be moved as well!

restart your system or manually unload the modules: rmmod (modulename)
depmod -a

knetworkmanager

(if you're not using KNetworkManager but Kinternet skip this part...)
When connecting the handheld, KNetworkManager detects a new network device and tries to enable an internet connection. This is bad and we need to stop that: read on synce.org or just quickly:
create a file: touch /etc/sysconfig/network/ifcfg-rndis0
use any editor to add the following lines to that file:

BOOTPROTO='dhcp'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR=''
MTU=''
NAME='htc'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='hotplug'
USERCONTROL='yes'
NETMASK=''

network and firewall configuration

as the USB connection is using a network interface, we need to tell the firewall about it, namely have both, rndis0 and eth2 in the internal zone (numbers may change depending on local network situation!) Use Yast to change this.

also it seems that yast needs to know about the network interface. when connected it should list a network card rndis0, this might need to be configured as DHCP, internal firewal zone

a 1st test:
the device should be set to ActiveSync mode with fast connection (settings/connections/usb) - caution, the WM popup screen that should switch that upon connecting the USB does NOT work with Linux.
make sure, odccm is not running: /etc/init.d/odccm stop
start it in debug mode: odccm -f
this command will just give you a waiting shell, no output at the moment
as soon as you connect the handheld that shell should output some funny lines, hopefully you'll see something like "...device_info_received..." and a lot of numbers - your're connected!

just disconnect for now and press ctrl+c
if there is just one line like "...PDA network interface discovered!..." there is a communication problem
helpful debugging tools: dmesg or tail -f /var/log/messages

it seems like there are no network settings necessary on WM - but make sure that the internal ActiveSync IP setting is on "automatic".

synchronisation

still being superuser execute: synce-install-plugins.py

now open a console as normal user and run: sync-engine -d
run synce-trayicon or synce-kpm and connect the handheld device - this should be notified
now create a partnership with the device containing all you want to sync (only calendar, contacts, todo and ... are supported at the moment)

use kitchensync (or whatever) to create an opensynce group containing the members synce and KDE (or whatever you want to sync with)
quit Kontact and quit its reminder module in the taskbar! it is not possible to sync while any of theese are running
start the sync: msynctool --sync (name of you group) --conflict d
I prefer not to use Kitchensync or the like for syncing because they do not tell you if something goes wrong.

finally

All this takes time and is not easy to work through, especially if something works not like expected. Of course you have to find a way to integrate this into a normal day workflow. Thats upon you, this text was intended to give some hints on the installation. I do not give an warranty, use at own risk!

todo: real network connection incl. Internet Sharing...

CG 2008