This page contains various details and instructions about using SynCE in Gentoo.

/!\ Note: SynCE only works with libopensync 0.22, NOT 0.3x! You will loose data if you use opensync-0.3x!

Which version of SynCE?

You should install either version 0.14 or 0.15. 0.14 is the latest in the Gentoo tree, and 0.15 is slowly making it's way into the overlay.

0.15 contains many internal revisions, updates, and bug fixes.

Skip ahead to the version you're interested in.

The Official SynCE Version (0.14)

The official Gentoo SynCE version is 0.14. You can jump straight to the section "Unmasking".

The SynCE overlay (0.15)

The overlay is working towards a stable 0.15 release.

You still need the overlay for usb-rndis-lite for kernels <= 2.6.25.

"Bleeding edge" source ebuilds are also available in the overlay, but they need updating.

Install & Configure layman

$ emerge -va layman

Check the output, and then continue with the install.

To first run layman, you need to do two things:

  1. echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf

  2. edit /etc/layman/layman.cfg and add the SynCE source to the overlays option:

overlays : http://www.gentoo.org/proj/en/overlays/layman-global.txtBR            http://synce.svn.sourceforge.net/svnroot/synce/dist/gentoo/synce-wm5-layman.xmlBR

Then fetch the list of available overlays:

$ layman -f

Finally add the SynCE overlay

$ layman -a synce

To update layman overlays when a new ebuild is released, just

$ layman -s synce

Unmaksing

All SynCE packages are marked "unstable". If you have ACCEPT_KEYWORDS="~x86" (or any ~ARCH) then you can skip this step. Otherwise, you will need the following in /etc/portage/package.keywords.

Note: Replace ~x86 with your arch (eg. ~amd64), and modify the list of packages to suit your needs.

app-pda/synce ~x86
app-pda/synce-gnomevfs ~x86
app-pda/synce-gvfs ~x86
app-pda/synce-hal ~x86
app-pda/synce-kde ~x86
app-pda/synce-kio-rapip ~x86
app-pda/synce-librapi2 ~x86
app-pda/synce-librra ~x86
app-pda/synce-librtfcomp ~x86
app-pda/synce-libsynce ~x86
app-pda/synce-software-manager ~x86
app-pda/synce-sync-engine ~x86
app-pda/orange ~x86
app-pda/dynamite ~x86
app-arch/unshield ~x86

For trayicons (synce-kpm works in gnome and kde):

app-pda/synce-kpm ~x86
app-pda/synce-trayicon ~x86

OpenSync & Plugins

<app-pda/msynctool-0.30 ~x86
<app-pda/libopensync-0.30 ~x86
<app-pda/libopensync-plugin-python-0.30 ~x86
<app-pda/libopensync-plugin-kdepim-0.30 ~x86
<app-pda/libopensync-plugin-evolution2-0.30 ~x86

SynCE rndis kernel patch (not nessary for kernel > 2.6.25):

=sys-fs/usb-rndis-lite-0.11 ~x86

For pre Windows Mobile 5 devies:

app-pda/synce-serial ~x86

USE Flags

/!\ Note SynCE is moving away from hal, since it has been deprecated, but hal is still recommended for version 0.15.

Edit (or create) /etc/portage/package.use and add the USE flag you desire. eg:

app-pda/synce wininstallers hal
synce-libsynce/synce-libsynce desktop hal

These are the USE flags currently supported:

app-pda/synce

app-pda/synce-libsynce

Connection Schemes

There are two connection schemes you can use: newer rndis and legacy serial-over-usb. rndis is done by the rndis_host driver, while the legacy serial is done by the ipaq driver. Furthermore, there are two ways of making the connection: using the older synce-odccm or the newer synce-hal which should essentially do everything odccm did, but in a simpler and cleaner way.

Set serial USE flag if you want serail connection by the ipaq driver, otherwise it will be rndis connection. This sheme also must working with WM2003 devices.

Set hal USE flag if you want synce-hal managed connection, otherwise it will be synce-odccm managed.

Now emerge!

HAL needs to be running before libsynce will compile with the 'hal' USE flag, so if it's not already installed:

$ emerge -av1 hal

Then add it to the default runlevel and start it:

$ rc-update add hald default
$ /etc/init.d/hald start

After you've chosen your version, you can simply emerge all needed packages by typing:

$ emerge -av synce

Troubleshooting

emerge errors

If emerge fails with a message similar to:

!!! subversion.eclass: ESVN_REPO_URI (or specified URI) and working
copy's URL are not matched.

Then you have a stale svn download to get rid of:

$ sudo rm -rf /usr/portage/distfiles/svn-src/

If you get a missing libtool file message (eg /usr/lib/libdbus-1.la not found) then you need to run revdep-rebuild or lafilefixer.

Syncing errors

Enable enhanced network functionality

Please note, that not all devices supporting rndis follow the same naming. E.g. for Asus P535 instead of turning Enable enhanced network functionality on you need to select ActiveSync (Turbo mode) in the USB Setting dialogue. Please refer to your device documentation on how to enable rndis on your particular PDA or smartphone.

Other Ebuilds

You might also be interested in these ebuilds:

Kernel requirements

You should build your kernel with these options:

Device Drivers -->
   Networking device support -->
     USB Network Adapters -->
        <M>  Multi-purpose USB Networking Framework
        -M-   CDC Ethernet support (smart devices such as cable modems)
        <M>   Host for RNDIS and ActiveSync devices (EXPERIMENTAL)

Using usb-rndis-lite

usb-rndis-lite provides the most up-to-date kernel patch for kernels <= 2.6.25. To emerge it, see the "Unmasking" section, then

$ emerge -av sys-fs/usb-rndis-lite

patching the kernel manually

Its not the gentoo way. When you merged the kernel you want, go to /usr/src/linux/drivers/net/usb and edit rndis_host.c: Delete the lines 502: dev->rx_urb_size = dev->hard_mtu + (dev->maxpacket + 1); and 503: dev->rx_urb_size &= ~(dev->maxpacket - 1); Then add in line 502: dev->rx_urb_size = (dev->udev->speed == USB_SPEED_FULL) ? 16384 : 8192;

using the kernel patch provided

Alternatively you can follow the SynceInstallation/KernelPatch instructions for downloading a patch.

Starting needed services

SynCE >=0.12 with 'hal' flag

You don't need a special service running. Device connection is managed automatically by hal and dbus services.

SynCE 0.11 & SynCE >=0.12 without use 'hal' flag

odccm is installed as a system service but disabled by default. You can start it with

$ /etc/init.d/odccm start

as root. If odccm should be started automatically add it to the default runlevel

$ rc-config add odccm default

Finished

SynCE is now installed. Continue with SynceInstallation/Connecting.

SynceInstallation/Gentoo (last edited 2010-10-05 03:02:06 by IainBuchanan)