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
Make sure you have completely uninstalled any versions of the SynCE components you had installed from source.
Identify which version of the Windows Mobile operating system your device is running.
Legacy (WM2003) Devices
If you want to connect a device running Windows Mobile 2003, DO NOT install the YaST Metapackages. They include the latest version of the SynCE OpenSync plugin, which is now incompatible with WM2003 devices.
Instead, add the repositories (as shown below) and install the following packages:
- libopensync-plugin-synce-legacy
- synce-hal
- rra-tools
A suitable zypper command to do this would be
zypper install synce-hal rra-tools libopensync-plugin-synce-legacy
and add the following packages depending on your Desktop Environment
For KDE3
- kcemirror
- kde3-kio_rapip
For KDE4
- kde4-kcemirror
- kde4-kio_rapip
Unfortunately, there is no system tray utility available for legacy (WM2003) devices for KDE.
For GNOME
- synce-trayicon
- synce-gnomevfs
- synce-gvfs
- gcemirror
Once this is done, skip ahead to Running.
WM2005 and newer Devices
Click the most appropriate YaST Metapackage File below that matches the version of openSUSE you are running.
For KDE4 download the synce-kde YMP.
For KDE3 download the synce-kde3 YMP.
For GNOME Download the synce-gnome YMP.
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
openSUSE 11.0
- For KDE4
- For KDE3
- For Gnome
OR
Add the repository with zypper ar --repo http://download.opensuse.org/repositories/system://SynCE/openSUSE_11.0/system:SynCE.repo
openSUSE 11.1
- For KDE4
- For KDE3
- For Gnome
OR
Add the repository with zypper ar --repo http://download.opensuse.org/repositories/system://SynCE/openSUSE_11.1/system:SynCE.repo
openSUSE 11.2
- For KDE4
- For KDE3
- For Gnome
OR
Add the repository with zypper ar --repo http://download.opensuse.org/repositories/system://SynCE/openSUSE_11.2/system:SynCE.repo
Running
Once the software has been installed, you should be in a position to sync your PDA.
On KDE start the program synce-kpm.
On GNOME start the program synce-trayicon.
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
msynctool --listplugins
You should see something similar to
Available plugins: file-sync synce-opensync-plugin
Warning: Due to a bug in openSUSE 11.2 the synce-opensync-plugin might not be listed. In this case update the Opensync python plugin as described in the Sync-Engine Troubleshooting section of this page.
Now enter
msynctool --addgroup synce-file
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
msynctool --configure synce-file 1
Once all of that is set up, try and sync!
msynctool --sync synce-file
You should see lots of output followed by a success message. If you encounter problems, take a look at the Troubleshooting section.
Other Tools
The program kcemirror (available for KDE3 and KDE4) allows you to control and take screenshots of your device from your computer. kde{3,4}-kio_rapip are KIO-Slaves that allow you to browse through your device's file system (read+write) by typing rapip:/ into the address bar of Dolphin or Konqueror.
synce-gvfs and synce-gnomevfs allow you to browse through your device's file system in Nautilus and other Gnome programs by typing the address synce:/. gcemirror allows you to control and take screenshots of your device from your computer.
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
zypper install rapi2-tools
Then try running
pls
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. If you are finding that the kernel is not recognizing or communicating with your device properly, try installing the usb-rndis-lite KMP RPM. Add the system:SynCE repository (see above) and install it now with
zypper install usb-rndis-lite-kmp
If someone tells you to install the kernel module "with the samsung patch", you can also install the above package.
Connection
Two problems are diagnosed below: firewalls and NetworkManager.
Firewalls
Try disabling SuSEfirewall2 for your device's interface. This is usually eth* or rndis*. The firewall configuration can be accessed through Yast (Administrator Settings) >> Security and Users >> Firewall. Add the interface to the "Internal Zone" or disable your firewall completely. It is only considered safe to completely disable SuSEfirewall2 if you are behind a hardware firewall, such as a router!
Unfortunately, even if you add the device's interface to the firewall's "Internal Zone", you might still experience problems with your device being firewalled. You will need to restart SuSEfirewall2 every time the device is plugged in, unplug the device, and then plug it back in. One way around this is to edit /etc/udev/rules.d/70-persistent-net.rules. Find the 2 lines that look like the following (the "?" differ between devices):
# USB device 0x????:0x???? (rndis_host)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="??:??:??:??:??:??", ATTR{type}=="1", KERNEL=="eth*", NAME="eth?"Note that you might have "rndis" instead of "eth" above and there should be no line breaks after "SUBSYSTEM". Add , RUN+="/sbin/rcSuSEfirewall2 restart" at the end of the line. The two lines should look like this now:
# USB device 0x????:0x???? (rndis_host)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="??:??:??:??:??:??", ATTR{type}=="1", KERNEL=="eth*", NAME="eth?", RUN+="/sbin/rcSuSEfirewall2 restart"Now the firewall setup will be restarted each time the device is plugged in, and you don't need to worry about doing it manually and replugging your device.
NetworkManager
If you run NetworkManager, it will interfere with your connection, causing you to lose your internet connection whenever you connect your device. Try the following:
Create a file (as root) in /etc/sysconfig/network titled ifcfg-%name of your device's interface%
- Add the following to it:
BOOTPROTO='dhcp' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='' MTU='' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='auto' USERCONTROL='no' NM_CONTROLLED='no' DHCLIENT_MODIFY_RESOLV_CONF='no'
This should prevent NetworkManager from attempting to take over the interface.
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.
There is a bug in the openSUSE 11.2 Opensync python plugin. The package provided by OpenSUSE Factory Repository (Version 0.22-154.1 as of 04.01.2010) should work. You can search for it here.
Information
The openSUSE wiki has another version of this page at http://en.opensuse.org/Synce.
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.
