The upcoming Mandriva Linux 2008 Spring release will boast the easiest ever support for synchronizing with Windows Mobile 5 and 6 devices in any distribution. The adventurous can already try out the support in the current 2008 Spring pre-release repositories, by following the instructions here. Mandriva has uploaded a video demonstrating how easy it is to synchronize with a Windows Mobile 6 device right out of the box with Mandriva Linux 2008 Spring. Support is included for synchronizing with both KDE (KDE PIM) and GNOME (Evolution). Similarly easy synchronization is also possible with many Nokia phones and with Blackberry devices.
Mandriva has really gotten its act together.
Synchronization is a key area that has traditionally been immature in the linux desktop. If Mandriva through opensync can really fix this, it will be a huge relief for many of my customers.
I am doing some prep work for a deployment and would love to hear that Mandriva is ready to offer a corporate desktop release based on the 2008 Spring code. I need a minimum of three years of support for all my deployment, five been the sweet point, but I also need something newer than Mandriva’s last corporate desktop.
Maybe Adam will pop by with some news about when their next corporate desktop will be released.
I don’t know the timeline for our next Corporate release – I mostly work on the consumer side.
However, this is actually something we could potentially add in to the current Corporate release, I think (I’m actually the one implementing this sync stuff). It’s obviously something that would be useful there, too. I think once we get 2008 Spring out and this stuff has some real world testing and any further bugs are shaken out, I will talk to the Corporate maintainers about whether I could get these changes merged into CD4.
With opensync, this doesn’t just open up winCE. OpenSync has a huge list of already supported hardware including some PalmOS devices. I have to go back and check the project site to see if the Nokia N8#0 is supported but in that case, I can always stick with my rsync setup or wire it directly into my groupware server.
Thanks, Mandriva team. Your putting out a great distribution for us “gotta be bleeding edge” types. I may be looking at Debian on several VMs but I haven’t yet found a compelling reason to move away from Mandriva as my host OS. An update to Bastilli wouldn’t hurt, the last verion it seems to support is a few releases back. Either way, I can’t wait for the 2008.1 public release in the second week of April.
(unrelated sidenote: I confirmed that flashdrives mounted through KDE will consistantly mount to the same directory under /media based on partition label. Flashdrives in the machine at boot still seem to mount under /media based on device name rather than partition label. If this is still the case with 2008.1, I’ll learn how to fill out a proper bug report in the tracker.)
This looks great! One of my main remaining sore points for me is the ability to sync my WM6 phone with Linux. On the other hand I am not willing to switch distros just for this ability.
It seems to be a facet of a new release of Opensync and appropriate front end for the DE of choice. I wonder to what extent (if at all) these abilities are custom patches put in by Mandriva and at what stages these abilities will come to other distros. Does anyone know in what version of the various packages that WM6 started to be supported?
I am not trying to make this into a “X has had it forever” or “Y will get it in the next release” war so if everyone could do me a favor and not respond with specific distros I would be appreciative. I am however interested in the underlying packages that give this ability.
EDIT: Kudo’s to Mandriva for a job well done.
Edited 2008-03-17 22:54 UTC
This doesn’t actually depend on any terribly new code. The opensync version used is 0.22, which has been around since early 2007. Current development version is 0.36, but using this in production is *not* recommended by the OpenSync developers (or me – I tested it, and the KDE and Evolution backends don’t work). SynCE used is 0.11, which has also been around for a while.
KitchenSync – the GUI front end you see in the video taking care of the actual sync – is somewhat newer, but has still been around for a while, and MultiSync (the GTK+ alternative) has been around for ages.
synce-kpm is probably the newest bit of code in use in that video: that’s the application used to create the initial sync partnership with the phone. A 0.11 version is available from SynCE project, but the Mandriva package is using the current SVN head.
What I really had to do to make it all work like you see in the video was a succession of minor things. None of them is really hard to fix on its own, but the cumulative effect of all of them is to make this a real slog to do if your distribution doesn’t do it for you.
#1, the usbnet /rndis_host / cdc_ether drivers in the kernel.org kernel and most distributions does not support WM5/6 devices. SynCE have a patched build of the module that fixes this but it’s not yet been accepted upstream. So the Mandriva 2008 Spring kernel has this patched version included. With previous MDV and all other distros I know of, you’d have to build these versions of the modules yourself.
#2, sync-engine (the tool that actually handles partnerships between the devices and SynCE) has a couple of bugs I fixed by backporting fixes from SVN.
#3, sync-engine doesn’t run automatically when it’s needed, in the default upstream configuration. You have to run it manually, or you can’t create any partnerships, and you have to make sure it’s running whenever you want to synchronize. I created a dbus activation profile for it, so that it gets run automatically when anything tries to access it via dbus. (I’m indebted to John Carr for this idea).
#4, synce has a bug which prevents a default configuration being created the first time you try and do anything with it, if there isn’t one already. This stops anything working. This is partially fixed in upstream SVN, but the distro’s synce packages have to make sure to package the default configuration file in the correct place to be copied, which I fixed in ours.
there’s a bunch of other little things like this I had to fix. As I said, it’s all small things that add up. And then the other big thing is to make it easy to put it all together, which is what the metapackage does in Mandriva. Without the task-wm5sync metapackages that make it easy to install all the necessary stuff, it’s not actually easy to know that what you need for all this to work is synce, opensync, odccm, libopensync-plugin-synce , libopensync-plugin-kdepim , synce-kpm and kitchensync. It took me quite a lot of research and reading to figure this out.
it wouldn’t be super-hard to implement this in most distros; all it needs is a maintainer with a test device and the willingness to put it all together. I started working on this around Tuesday last week, just to get my own device working, but it became obvious that it would be reasonably easy and very nice to implement a system so it’d work for most Mandriva users. I’m going to push as many of my changes upstream as possible, and I’m happy to answer any questions any maintainers for other distros have if they try to implement this stuff for their own distro and get into trouble anywhere. Of course, all the patches and changes in the MDV packages are available in our SVN repository.
Wow, that sounds like a pain in the ass. Even with the packages making it easy in Mandriva, there’s probably going to be nothing in the phone’s manual telling people using Linux how to do that, so I would hope that when you plugged in the phone without any of these packages installed, there would be at least something popping up, informing users what they need to do.
I don’t think I would ever go through what you just said you did. I’m getting too old for that sh*t
worknman: the point is that with MDV from 2008 Spring you don’t have to go through all that stuff, that’s the stuff I had to go through to fix it in the packages so no-one *else* has to go through it. =)
It would indeed be nice for something to pop up and offer to install the metapackage when you plugged in an appropriate device. This is probably too big a thing to get into 2008 Spring, but I had already thought of it and we’ll look at getting it into 2009.
Well, even if it doesn’t have the ability to install the meta packages, it should at least be smart enough to tell the user, “Hey, you just plugged something in.. I don’t know what this device is, but you should go to http://www.whatever to see if we have any packages/drivers available for this device.” Obviously, I have no idea how these things work so I’m generalizing, but you get the idea
Just give the user some sort of idea about what they need to do or where to go in order to get more information. Because, as I said before, these devices don’t come with CD-ROMs or quick start manuals for Linux, so people need all the help they can get.
Could you point me in the right direction to do this please?
I’ve been playing with synce and WM6 sporadically for a while but this article has prompted me to get it working properly. I don’t know if knotes is supposed to sync properly but contacts, tasks and appointments seem to work perfectly. It’s just such a pain having to rebuild the drivers every time my kernel is updated and having to manually kick start the back end every time I want to sync.
schmeggma: all you need is a file /usr/share/dbus-1/services/org.synce.service with these contents:
[D-BUS Service]
Name=org.synce.SyncEngine
Exec=/usr/bin/sync-engine
that’s it. Now if something tries to access org.synce.SyncEngine and nothing is providing it, d-bus will run sync-engine. d-bus activation is great.
For the modules, I know there are unofficial packages of the fixed modules for some distributions; you might want to ask in #synce on Freenode if there are any for yours, that might save you the trouble of manual rebuilds (assuming the packages are updated swiftly when the distro’s kernel is updated).
Are these updates to synce and multisync? If so they should appear upstream and be available for other distros shortly.
See above. No, it’s mostly improvements to packaging; the upstream stuff works, distros just haven’t packaged it well until now.
This is excellent news! I recently posted to OSNews that WM6 support was unlikely to come to Linux (based on prior experience). Glad to see I was wrong about that.
I remember trying SynCE ages ago, and with a lot of pain you could get a WM5 device going, but WM6 was always much more of a challenge, and the forums were always really pessimistic about it ever getting off the ground.
Nice work Mandriva.
Yeah, SynCE has good support for WM6 devices now. Actually it’s all hidden by SynCE, as far as the user is concerned the process is exactly the same for WM5 and WM6. WM 6.1 works, too: I updated my Apache to 6.1 this morning and tested, it works no problem, same way as 5 and 6. The video was done with my Apache running WM6.
Edited 2008-03-17 23:46 UTC
When will be see this is Ubuntu, Debian and others?
http://diamond.businessobjects.com/node/18685
http://diamond.businessobjects.com/node/18686
http://diamond.businessobjects.com/node/18687
http://www.streetdirectory.com/travel/forum/calendar.php?do=getinfo…
http://www.streetdirectory.com/travel/forum/calendar.php?do=getinfo…
Just add your device to udev, and set dccm in your sessions file.
It’s not rocket science to make it work. I think the hardest part is deleting your old indexes from active sync (which is in the registry on the device).
I’m already knee deep in documenting how to make it go, and building the deb for gutsy (and 8.04) to make it stupid easy already.
Why does it require a reboot? Is it based on Microsoft Windows or what?
It doesn’t, as you can see from the video. I just recommend rebooting in the documentation as most people don’t want to bother with manually starting system services etc.
If you don’t want to reboot, just do what I did in the video: start the ‘odccm’ service, then plug in the phone and run ‘synce-kpm’.
Edited 2008-03-19 16:12 UTC
True, but had it not been more elegant to put the starting of services in a post install script in the metapackage?
Removing the need for reboot or manually starting of services.
If it was going to go anywhere it would be in %post of the odccm package, but I’m not sure if that’s approved in our service policies; it’s on my to-do list to check that out and do it if appropriate.
Now if only they would do something to get blackberrys working.
I’m running Mandriva 2008.1 and here’s how I go about syncing my blackberry with evolution.
First off, I had to download the older opensync packages from 2008.0 because barry only works with opensync 0.22.
Secondly, msynctool hangs every time when syncing, but it does manage to sync the data, but it leaves the phone in a messed up state (that’s the technical term).
In order to reset the phone you have to run the btool -X command…fine, but that sends the CPU to 100% because dbus-daemon doesn’t unload the berry-charge module when the device resets. So in order to fix it you either have to remember to unload the berry-charge module before btool -X or kill the dbus-daemon, remove the module, restart the daemon…
Basically it’s a total mess created by the desire to have the newest version of kitchensync installed that requires opensync 0.36 that doesn’t work with barry. That and ignoring blackberrys.
Um.
You’re not running up to date 2008.1.
All the stuff discussed here is based on opensync 0.22, not 0.36. I reverted all the 2008.1 packages from 0.36 to 0.22 as part of this work, late last week.
I also created a metapackage for Blackberry syncing, tested it, and wrote code for KitchenSync so it presents a nice GUI for configuring the Barry plugin (well, I did about 20% of that bit of coding, and annoyed Eduardo Habkost till he more or less did the rest for me, as I don’t actually know C++ at all).
Update your repositories to latest Cooker, remove any packages you installed manually, and install task-blackberry-kde . It all works nicely. I just need to add documentation for it to the Wiki page.
Edited 2008-03-20 07:31 UTC
Thanks for the info! Where can I go to discuss this and find out who’s working on what?