This page contains various details and instructions about using SynCE in Gentoo.
The SynCE overlay
The official Gentoo tree now contains SynCE 0.12! Old ebuilds for SynCE (0.9.2 and earlier) are still there, so make sure you are using ~ARCH, or use package.keywords (read on!).
You still need the overlay for usb-rndis-lite.
The bleeding edge source is still available using the SynCE overlay.
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
Building
Choose SynCE-0.12
Note: SynCE only works with libopensync 0.22, NOT 0.3x! You will loose data if you use opensync-0.3x!
You will need to use the unstable branch for these packages. 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)
For pre Windows Mobile 5 devies:
app-pda/synce-serial ~x86
USE Flags
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.
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.
Choosing bleeding edge SynCE
Your /etc/portage/package.keywords should look similar as for SynCE-0.12 but replace
app-pda/synce ~x86
with
emerging
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/
Other Ebuilds
You might also be interested in these ebuilds:
- Fuse based rapip driver for browsing a WM device as a normal unix file system
- app-pda/synce-kio-rapip - for KDE
- synce-gvfs - for Gnome
GUI WM Device Manager
- synce-trayicon - for Gnome
- synce-kpm - for KDE
Kernel requirements
You should build your kernel with these options:
Device Drivers -->BR Networking device support -->BR USB Network Adapters -->BR <M> Multi-purpose USB Networking FrameworkBR -M- CDC Ethernet support (smart devices such as cable modems)BR <M> Host for RNDIS and ActiveSync devices (EXPERIMENTAL)BR
Using usb-rndis-lite
usb-rndis-lite provides the most up-to-date kernel patch. To emerge it, add
=sys-fs/usb-rndis-lite-0.11 ~x86
to your /etc/portage/package-keywords. (Replace ~x86 with your actual arch) and then emerge it:
$ 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.
