Wiki Index All Recent Edit Bottom

PocketPC

1.   Introduction
2.   Connecting Windows Mobile and Ubuntu
2.1   Bluetooth
2.2   USB Connection
2.3   Network Connection Sharing
3.   Synchronising Contacts, Calendars and Tasks
3.1   Backup before your start
3.2   Finchsync
3.3   Opensync

Introduction

The phone that my work provided runs Window Mobile 6. I have been able to get the the Windows Mobile device integrated with my Ubuntu workstations in a number of useful ways.

Connecting Windows Mobile and Ubuntu

I have only tested the following using a Windows Mobile 6 device, I imagine it is pretty much the same for Windows Mobile 5 devices too.

Bluetooth

I have Bluetooth interfaces on my laptop and desktop. Sending files between phone and workstation is easy via Bluetooth.

Ubuntu 7.10

Install the required tools.

 aptitude install gnome-bluetooth

Pair the phone and workstation bluetooth interfaces then start Applications -> Bluetooth File Sharing on the Ubuntu workstation. You can now right-click any files using Nautilus and select Send to.... You'll see Bluetooth as a means by which you can send files and a list of pair device your can send to.

File sent to the phone will be stored in the 'My Documents' folder. I have sent lots of .cab files this way and then execute the .cab via File Explorer on the phone to install applications.

Ubuntu 8.04

'gnome-blooth' is not be required anymore for Hardy you just to enable Bluetooth file sharing via the Bluetooth Manager tray icon.

USB Connection

Until recently I have been quite happy using Bluetooth and Wifi to connect my phone and workstation.

Synce

The purpose of the Synce project is to provide a means of communication with a Windows Mobile device from a computer running Linux, *BSD or other unixes using USB or Bluetooth. One can then use one's computer to browse files, install applications and synchronize contacts, calendar and tasks with their PIM application of choice.

The Synce packages in the repositories are quite old and not compatible with Window Mobile 6.

RNDIS

The newer Synce release support RNDIS, you can enable and disable that on a Windows Mobile 6 device by going to Start -> Settings -> Connections -> USB to PC and ticking the box for Enable advanced network functionality.

I recommend you leave RDIS enabled as it allows for flexible integration of Windows Mobile devices and Ubuntu.

Installing Synce on Ubuntu 7.10

Add a new repository which has newer Synce packages.

 sudo nano /etc/apt/sources.list.d/synce.list

Add the following to the file.

 # Synce 
 deb http://ppa.launchpad.net/synce/ubuntu gusty main
 deb-src http://ppa.launchpad.net/synce/ubuntu gutsy main

Now update the repositories.

  sudo aptitude update

Installing Synce on Ubuntu 8.04

Add a new repository which has newer Synce packages.

 sudo nano /etc/apt/sources.list.d/synce.list

Add the following to the file.

 # Synce 
 deb http://ppa.launchpad.net/synce/ubuntu/ hardy main
 deb-src http://ppa.launchpad.net/synce/ubuntu/ hardy main

Now update the repositories.

  sudo aptitude update

Common Configuration (for Kernel < 2.6.24-19)

NOTE! for Kernel 2.6.24-19 and newer this step should be skipped.

Unload the current modules.

 sudo rmmod rndis_host cdc_ether usbnet

Now we have to delete the old drivers, such that the kernel will not reload them next time.

 sudo rm -v /lib/modules/`uname -r`/kernel/drivers/net/usb/{rndis_host,cdc_ether,usbnet}.ko

Now we have to get and compile the new drivers.

 sudo aptitude install usb-rndis-source cdbs
 sudo module-assistant auto-install usb-rndis

Install the Synce Core

 sudo aptitude install odccm librra0-tools librapi2-tools

If you run Hardy's Uncomplcated Firewall (ufw) then make sure you add a rule to allow Synce.

 sudo ufw allow from 169.254.2.1

Connect your device. For password-protected Window Mobile 6 devices, you need unlock the device by following the instructions as shown on the device. If you do have a locked device, you must unlock it before you can go further. Once unlocked run the following :

 synce-pls

You should see a list of files on your device, similar to this.

 Directory               2007-11-22 09:41:48  My Pictures/
 Directory               2007-09-01 00:00:18  Templates/
 Directory               2007-09-01 00:00:18  Personal/
 Directory               2007-09-01 00:00:18  Business/ 
 Directory               2007-11-22 14:57:06  Calls/
 Directory               2007-09-01 00:00:22  UAContents/
 Directory               2007-09-01 00:00:24  My Midlets/

If you get an error that no devices are connected to 'odccm' should try blacklisting the 'ipaq' module.

 sudo nano /etc/modprobe.d/blacklist

Add the following and save the file.

 blacklist ipaq

After that you can remove any currently active ipaq modules.

 sudo rmmod ipaq

Now disconnect and reconnect your device and try 'synce-pls' again.

Synce-Gnome

SynCE-GNOME a work in progress that will eventually encapsulate multiple applications into one applet. At the moment, SynCE-GNOME only displays nice libnotify messages when a device is connected or disconnected, and it prompts for a password if one is required.

Installing Synce-Gnome on Ubuntu 7.10 and 8.04

 sudo aptitude install python-setuptools

Downloading the tarball.

 wget http://downloads.sourceforge.net/synce/synce-gnome-0.11.tar.gz

Extract and install.

 tar zxf synce-gnome-0.11.tar.gz
 cd synce-gnome-0.11/
 python setup.py build
 sudo python setup.py install

Simply execute the python script

 synce-gnome

This will idle until a device is connected, or disconnected. To start synce-gnome automatically add it to System -> Preferences -> Sessions

References

File System Access

GnomeVFS

This is my preferred way to access the file system of my Window Mobile device.

 sudo aptitude install libgnomevfs2-dev libsynce0-dev librapi2-dev
 wget http://downloads.sourceforge.net/synce/synce-gnomevfs-0.11.1.tar.gz
 tar zxf synce-gnomevfs-0.11.1.tar.gz
 cd synce-gnomevfs-0.11.1/
 ./configure --prefix=/usr --sysconfdir=/etc

Build a Debian package and install it.

 sudo checkinstall

Compile the source and install it.

 make
 sudo make install

After it is installed, start Nautilus and enter the following in the Location:

 synce:///

You should now be able to see the file system on your Window Mobile device and copy/move files around.

References

WM5torage

It is possible to turn the Windows Mobile device into a USB disk. *** However this method does not integrate seamlessly when RNDIS is enabled. ***

As the phone is connected to the Ubuntu workstation with the USB cable the choosen memory device on the phone is automatically mounted just like any other USB disk.

When you are finished umount the phone on the Ubuntu workstation and then click Deactivate on the phone.

Network Connection Sharing

I can create a adhoc wireless network and use my phone as an "access point" which then provides Internet access to my Ubuntu workstation via the phones 3G or HDSPA or GRPS connection.

 pcp ICSControl.exe ":/Storage Card/ICSControl.exe"

References

Synchronising Contacts, Calendars and Tasks

I prefer Thunderbird and Lightning over Evolution. Here is how I sync my Windows Mobile device with Thunderbird/Lightning.

Backup before your start

Before I started messing about with sycning stuff I made a backup of my Thunderbird address book and Windows Mobile PIM data.

Backup Thunderbird Addressbook

Backing up the Thunderbird address book is simply a case of exporting it.

Backup Windows Mobile PIM Data

I have found PIM Backup to be a great tool for backing up my Windows Mobile PIM data.

Download and install PIM Backup to the Windows Mobile device.

 wget http://www.dotfred.net/PIM/PPCPimBackupV2.8_wm2005.zip
 unzip PPCPimBackupV2.8_wm2005.zip
 pcp PPCPimBackup.exe ":/Storage Card/PPCPimBackup.exe"

Now use File Explorer on your Windows Mobile device and run PPCPimBackup.exe

References

Finchsync

Finchsync is a tool for synchronizing contacts, appointments and tasks from Thunderbird email and Sunbird/Lightning calendar products with a Pocket PC or Smart Phone.

Opensync

Syncing with OpenSync

In order to sync your device you need to use OpenSync. I have only used Opensync on Ubuntu 8.04. There is no Thunderbird support in any stable opensync release so we are going to be syncing with Evolution.

 sudo aptitude install multisync-tools opensync-plugin-evolution opensync-plugin-synce

Create a partnership.

 synce-matchmaker create

Which should output something like...

 ** Message: Hal reports no devices connected
 ** Message: Hal reports no devices connected
 Partnership creation succeeded. Using partnership index 1.

Now create a sync group called 'Phone' and add the sync plugins to that group.

 msynctool --addgroup Phone
 msynctool --addmember Phone synce-opensync-plugin
 msynctool --addmember Phone evo2-sync
 msynctool --configure Phone 1

The last command opens up a text editor. Make yours something like this and save and exit.

 <config>
        <contact></contact>
        <todos></todos>
        <calendar></calendar>
        <file></file>
 </config>

Well, I got this far and can't get Opensync to see the synce-plugin when I run...

 msynctool --listplugins

References

$Id: PocketPC,v 1.52 2008/07/04 10:13:48 martin Exp $

Wiki Index All Recent Edit Top