SynCE
Overview
SynCE is a framework for Linux and FreeBSD to communicate with PocketPC / Windows Mobile Devices. Currently SynCE has support for viewing/transferring files, syncing, partnership management, installation/removal of software, and more on your device.
SynCE uses the OpenSync framework to sync PIM data with other Linux applications like Kontact and Evolution. It can currently sync Calendar items, Contacts, and Tasks, as well as backing up your PDA's data as files. Installation and removal of software onto your device is very easy, and the SynCE project includes software to expand the "self-extracting" installers that Windows Mobile software is distributed in.
SynCE is now quite a mature project. Basic tasks with standard devices should cause very little trouble. It supports Windows Mobile 2003, 2005, 6 and 7 devices. If your device isn't working, contact the project and help us fix it!
SynCE is NOT meant to sync with PDAs running Linux. It is a replacement for the ActiveSync software on the desktop, not the Windows Mobile OS actually running on the device.
Running SynCE on openSUSE
SynCE packages are built into RPMs on the Build Service in the project system:SynCE. These packages are tuned for openSUSE and are the best way to get SynCE working on your machine.
Installation
For more information, visit Download Help and Installation Help.
Identify which version of the Windows Mobile operating system your device is running.
Legacy (WM2003) Devices
Instead, add the repositories (as shown below) and install the following packages:
- libopensync-plugin-legacy
- synce-hal
- rra-tools
A suitable zypper command to do this would be
and add the following packages depending on your Desktop Environment
Unfortunately, there is no system tray utility available for legacy (WM2003) devices for KDE.
Once this is done, skip ahead to Running the Software
WM2005 and newer Devices
Click the most appropriate YaST Metapackage File below that matches the version of openSUSE you are running.
YaST will ask for permission to install software on your machine. Enter your/root's password, and follow the steps in the wizard. If you are interested, consider installing some of the suggested software as well.
Download Links
Version: 11.3
OR
Add the repository with
zypper ar -f --repo http://download.opensuse.org/repositories/system://SynCE/openSUSE_11.3/system:SynCE.repo
Version: 11.4
OR
Add the repository with
zypper ar -f --repo http://download.opensuse.org/repositories/system://SynCE/openSUSE_11.4/system:SynCE.repo
Running the Software
Once the software has been installed, the dbus daemon needs to be restarted. The easiest way to do this is to restart the computer.
If you are running a software firewall (which you will be by default), e.g. SuSEfirewall2, you must open the appropriate ports for communication. Open the YaST2 Firewall configuration dialog and select "Allowed Services". Choose "SynCE" from the drop-down list and click "Add". Your setup should then look like the screenshot on the right. Then click "Next" and save the firewall settings.
After the restart, you should be in a position to sync your PDA.
An icon should appear in your system tray. From this icon you should be able to access various information about your device. Try plugging in your device and see if the system recognizes it (the system tray icon will react). If it does not, move on to the Troubleshooting part of this page.
Otherwise, move on to Syncing.
Syncing
Syncing using SynCE uses the OpenSync framework. SynCE provides one plugin, and whatever program you want to sync with has to provide a similar OpenSync plugin. Visit the OpenSync page to identify which plugin you want to sync with and install it.
Once you have two plugins, you have to set up a "sync group" including the two. Various frontends exist to set up OpenSync, including kitchensync (for KDE), multisync-gui (for GTK), and msynctool (for the CLI). Installing one of these is necessary to sync with your PDA. Here, we will go over how to set up a file-sync with msynctool.
In the terminal, as your normal user, enter
You should see something similar to
Available plugins: file-sync synce-opensync-plugin
Now enter
msynctool --addmember synce-file file-sync
msynctool --addmember synce-file synce-opensync-plugin
Some plugins, like the file sync plugin, need to be configured before they will work. Entering the following command will open the plugin's configuration file in $EDITOR
Once all of that is set up, try and sync!
You should see lots of output followed by a success message. If you encounter problems, take a look at the Troubleshooting section.
Other Tools
FUR is a filesystem tool allowing you to mount your device as a local directory using FUSE.
Troubleshooting
First Steps
The first step in debugging problems with synchronizing your device is to test the connection. This is most easily done by running the low-level command-line tools in the package rapi2-tools. If you have not already done so, add the system:SynCE repository (see above) and install it now with
Then try running
If you do not see a list of files on your device, the connection is not working. See below. If you do see the list of files, the problem lies in the syncing software.
Kernel
Most of the SynCE code has been integrated into the mainline kernel. However, if you are finding that the kernel is not recognizing or communicating with your device properly, try installing the SynCE-patched version of the usb-rndis-lite kernel-module RPM. At the moment, it is available directly from the openSUSE Build Service.
If someone tells you to install the kernel module "with the samsung patch", you can also install the above package.
Connection
Check /var/log/firewall and /var/log/messages to see if a firewall is blocking communication to your device. The following ports must be open for inbound communication: TCP 990 999 5678 5721 26675. Check that your firewall allows this or disable it completely. The procedure for doing this in SuSEfirewall2 was outlined above.
The default configuration routes your internet traffic through your device when you connect it. If this isn't what you want, edit /etc/sysconfig/network/dhcp and change the line
DHCLIENT_SET_DEFAULT_ROUTE="yes"
to
DHCLIENT_SET_DEFAULT_ROUTE="no"
If you run NetworkManager, it can cause necessary notifications when connecting or removing your device. To stop this, try the following
- Create or edit the file (as root) /etc/NetworkManager/NetworkManager.conf
- Add the following to it:
[main] plugins=ifcfg-suse,keyfile no-auto-default=ff:ff:ff:ff:ff:ff [keyfile] unmanaged-devices=mac:ff:ff:ff:ff:ff:ff
where the ff's are replaced by the MAC hardware address, with letters in lowercase, of your device. You can get this from the output of `ip addr
`.
Sync-Engine
The best way to solve problems in sync-engine, the SynCE to OpenSync syncing program, is to post the output of sync-engine to the synce-users mailing list with a description of your problem. This especially applies if you are experiencing problems with the actual data being synchronized, not the connection.
Where is the logfile? Try this:
ps aux | grep sync-engine
Will show you something like
/usr/bin/python /usr/bin/sync-engine --detached --logfile=~/.synce/sync-engine.log --once
Which shows you the logfile is in /home/%your username%/.synce/sync-engine.log.
For More Information
Visit the SynCE Homepage.
The openSUSE-specific page is at [1].
Join the SynCE Users Mailing List and ask questions. Most get answered very quickly and helpfully!
Visit #synce on irc.freenode.net, where several of the developers hang out.
Join in the OBS project at system:SynCE.