4. Coldsync

Coldsync is an alternative to the pilot-link suite for transferring data to and from your PalmOS device. Like pilot-link, it can synchronise, backup and restore Palm databases.

There are fewer applications available which use coldsync as their backend. That may change, but it seems to reflect a difference in philosophy between coldsync and pilot-link. Applications that sync using pilot-link tend to build in the functionality for synchronisation. It is therefore the author of the application that decides to include pilot-link support.

Coldsync takes a different approach. Conduits can be written to use coldsync with almost any application. The synchronisation process can be entirely transparent to the application. If the application author is not interested in adding PDA support, it does not matter. As long as the data format of the application is available, someone else can write the conduit.

4.1. Installing coldsync

Some Linux distributions are carrying coldsync, but it is not yet as widely available as pilot-link. It is also a younger application, so you are more likely to need to compile from source.

You can find the latest release of coldsync at www.ooblick.com/software/coldsync. As well as the current version, you will find a link to the latest CVS snapshot.

Once you have the downloaded the source, compile it as follows:

tar -xvzf
colsync-2.2.5.tar.gz
cd coldsync-2.2.5
./configure
make
make install

You can run coldsync directly from the src directory. For more information, see the README file that comes with coldsync.

4.2. Using coldsync

4.2.1. The .coldsyncrc file

By default, coldsync reads configuration parameters from a file called .coldsyncrc in your home directory. The -f flag overrides the default if you need to use an alternative configuration file. In addition, some of the parameters in the configuration file can be set or overridden on the command line.

The following is an example of a .coldsyncrc file:

listen serial {
	device: "/dev/palm";
	protocol: default;
	transient;
}

pda "My Palm" {
	snum: "L0PK17C13832-M";
	username: "Sean";
	userid: 1234;
	directory:
	"/home/sean/m505";
	default;
}

This example tells coldsync to look for a serial port connection on /dev/palm. The transient keyword tells coldsync that the device may not exist until the user presses the Hotsync button. The pda section tells coldsync the serial number of the device, the username and id of the user and the directory to which the device will be backed up.

The coldsync configuration file is well documented in the man page (man coldsync), but it is worth repeating some points:

  • Do not use a userid of 0 in your PDA section. This can lead to a loss of data if you need to perform a hard reset of your Palm.

  • If you have a Palm m505 with a USB cradle under Linux, you should not use listen usb. Instead use listen serial with protocol: simple;

4.2.2. The p5-Palm Perl modules

P5-Palm is a set of Perl modules for communicating with a Palm device via coldsync, and can be downloaded from the coldsync site. The purpose of the p5-Palm modules is to simplify and speed up the creation of conduits.

You should install p5-Palm if you want to use any of the coldsync conduits. You do not need p5-Palm if you will only be using coldsync for simple backups.

To install the modules:

tar -zxvf p5-Palm-1.2.4.tar.gz
cd p5-Palm-1.2.4
perl Makefile.PL
make
make install

4.2.3. Coldsync conduits

A number of conduits are available for coldsync. These conduits use coldsync to synchronise other applications with your PDA. The conduits generally require the p5-Palm Perl modules described above.

The list of conduits is available at http://www.ooblick.com/software/coldsync/conduits/.

The conduits require an entry in your .coldsyncrc configuration file. To find out what should be entered, run /path/conduit -config, where path is the location of the conduit.