Return to LinuxDig.Com HowTo's

1. Introduction

This document describes how to connect your PalmOS PDA to a computer running Linux, and synchronise the PDA data with local applications.

1.3. Major Changes

This document was originally called the Palm Howto. Major changes are detailed below.

Revision History
Revision 2.0.12002-03-03
Added info about various software that I hadn't even heard of before I got feedback from 2.0.0.
Revision 2.0.02002-01-06
Major rewrite to include USB connections and recent PalmOS devices
Revision 1.1.11999-02-28
Last version maintained by David Silber.

2. Connecting to the PC

The first step to getting your PDA running under Linux is to connect it to your PC. Until recently, all PalmOS devices connected via a serial cable. The latest devices use USB, and some can also connect via infrared.

Another development allows the PDA to physically connect to one machine on the network and synchronise remotely with another machine.

2.3. USB Connection

USB access to Palm devices is relatively new. The Handspring Visor seems to be well supported, and works with the pilot-link suite. Currently, the Palm m500 series only works with coldsync, although pilot-link support is in active development. Update: the current development version of pilot-link, 0.10.x, has support for USB devices. See the pilot-link section for more about this release.

To use any USB device under Linux, you need to have USB support in your kernel. You will also need the relevant modules available. Most (TODO: Check which distros work out of the box) recent Linux distributions have USB support enabled by default. To check your system, try the following command as root:

modprobe visor

If you get no output from this command, then the module is available and you do not need to recompile your kernel. If this does not work, try the alternative usbserial module:

modprobe usbserial

This is used by some distributions, such as Redhat 7.0.

If you need to set up USB support in your kernel, the Handspring Visor with Linux mini-HOWTO provides instructions. (TODO: Incorporate into this HOWTO?)

Once USB support is set up, you should use device /dev/ttyUSB1 to communicate with your PDA. Note that this device name only exists after you have pressed the hotsync button on the cradle. You must press the button before running the connection software.

If you have problems synchronising via USB, try an updated kernel. There may be some timing issues with the USB driver. For example, I found that stock Mandrake 8.1 did not work on one PC, but worked first time on a faster PC. Upgrading to a stock 2.4.17 kernel solved the problem and worked fine on both PCs.

3. The pilot-link suite

The pilot-link suite provides the tools for communicating with your PDA. The pilot-link programs provide the background functionality for many higher level programs, but can also be used on their own as command line tools.

Most distributions come with the pilot-link suite available as an optional package. The package will be available on the installation media or from the ftp site of the distribution. Install the package in the usual way for your distribution. You may also need development versions of the packages if you wish to compile any software that uses pilot-link.

Note: Unless otherwise specified, the details below refer to the 0.9.x release of pilot-link. The version in development is 0.10.x. This version contains support for USB devices, and has been updated to ensure greater consistency between the various utilities. Once 0.10.x is officially released, this document will be updated for the new version.

If you upgrade to 0.10.x, you will also need to update applications which use pilot-link. In particular, J-Pilot and gnome-pilot need modifications to work with 0.10.x. J-Pilot 0.99.2 should work with the latest version of pilot-link.

3.1. Installing the pilot-link software

The pilot-link suite comes with most major Linux distributions, including RedHat, Mandrake, SUSE and Debian. If you intend to compile applications which rely on pilot-link, you may need to install development packages as well.

If you use a distribution that does not come with pilot-link, or you need a more recent version, you can find the latest release at As well as the current version, you will find a link to the latest CVS snapshot.

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

tar -zxvf pilot-link.0.9.5.tar.gz cd pilot-link.0.9.5
make install

The programs can be run directly from the directory in which they were compiled. You may wish to test them before running make install. For more information, see the README file that comes with pilot-link.

3.2. Using the pilot-link software

Most of the programs in the pilot-link suite are conduits, that is they transfer data into or out of your Palm OS device.

Each time you use of one of the programs, press the HotSync button on your PDA's cradle. This will initiate the PDA side of the data transfer. Note that not all of these programs prompt you to press the `HotSync' button, so you may have to remember to do it yourself.

For more details, view the corresponding manual page. There is an overview manual page under the name pilot-link.

The pilot-link programs all use the same method of determining the location of your PDA:

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 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
cd coldsync-2.2.5
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

5. Desktop Applications.

This section describes applications which can synchronise their data with your PDA. The applications generally use pilot-link to provide communication with the PDA. Coldsync provides conduit capabilities to application that are not specifically written with PDAs in mind.

5.2. Gnome-pilot

Gnome-pilot aims to provide PDA connectivity for the Gnome desktop. Gnome-pilot provides conduits for the Gnome PIM applications, a control centre applet for configuring the link, and a panel applet for dislaying the hotsync status.

Gnome-pilot uses a daemon process to communicate with the PDA via pilot-link. Client applications use the daemon, rather than call pilot-link directly. The daemon must be running in order to use the client applications such as the conduits.

Gnome-pilot should be available as part of Gnome. The home page for the project is at

Gnome-pilot configuration is done through the Gnome control centre. If you have gnome-pilot installed, you should have a "Pilot Link" section under the peripherals section of the control centre.

5.2.1. The Pilot Link Applet

The Gnome control panel Pilot Link applet allows you to configure your PDA for use with Gnome. You must set up your PDA before you can use any of the Gnome conduits.

The first step is to add a device. Start the Gnome control centre, and click on "Pilot Link" in the left hand pane. The right hand pane should show the pilot link applet.

Once you have configured the device, you can configure the actual PDA:

Once you have configured your PDA, you need to configure the conduits.

A. Appendix

A.1. Resources

Information resources for Linux/Palm applications

A.1.1. Pilot-link

A.1.3. JPilot

A.1.5. KPilot

A.2. Devices that use the Palm OS

This is an overview of the range of devices that work with the software detailed in this HOWTO.

A.3. A History of Palm OS devices.

This section is included unchanged from the original document. It's clearly out of date, and I'm not sure if it's worth keeping in. It's a bit offtopic for a Linux howto, and the effort of keeping it current seems a bit pointless. Instead I've added a section detailing devices that use the Palm operating system, and which therefore should work with the instructions in this HOWTO.

There are two versions of the Pilot. They are the 1000 and the 5000 and have 128k and 512k of RAM, respectively. They come with Palm OS 1.0 in ROM.

Then came two devices with the name PalmPilot. They are the PalmPilot Personal and the PalmPilot Professional and have 512k and 1 Meg of RAM, respectively. They also have a backlighting feature for the LCD panel and version 2.0 of the operating system. The Professional also comes with a TCP/IP stack and a few extra programs built-in.

IBM has released a rebadged version of the PalmPilot Professional, which they call a WorkPad.

Now we have the Palm III, which has a redesigned case and an infrared port, not to mention the 2 Meg of RAM and Palm OS 3.0.

There is an announced product from Qualcomm, called the pdQ smartphone, which is a cell phone that incorporates a Palm OS PDA. Don't get all excited about it yet, it will not be released until sometime in 1999.

It is possible to upgrade any Pilot by swapping out the memory card, which includes both RAM & ROM. Of course, this doesn't get you backlighting for the original Pilot series.