This page contains various details and instructions about using SynCE in Gentoo.
Contents
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:
echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf
- 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
- gnome - pulls synce-trayicon
hal - uses synce-hal instead of odccm (highly recommended!)
- kde - pulls synce-kpm and synce-kio-rapip
- serial - pulls synce-serial. Needed for Windows Mobile 3
app-pda/synce-libsynce
hal - enables hal support (highly recommended!)
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
- Windows Mobile 5: Microsoft doesn't supply a program to change the behaviour, but it is set by default to RNDIS. In case of problems, check for the existence of a program regarding USB settings on your device (some vendors supply a third-party tool with the device for this). You can also try the Window Mobile 6 method:
Windows Mobile 6: Go to Start -> Settings -> Connections -> USB and make sure the checkbox Enable enhanced network functionality is checked.
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:
- app-pda/synce-kio-rapip - for browsing a device as a normal unix file system in KDE
- synce-gvfs - for browsing your device through Gnome
- synce-trayicon - Trayicon for Gnome
- synce-kpm - Trayicon for KDE
- gcemirror - a gtk tool to show and control your phone's screen on your desktop
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.
