Giving Your Palm the Bird

If you're one of the millions of computer geeks and harried executives addicted to your Palm or Palm-compatible connected organizer, you've probably noticed that Palm Computing hasn't exactly been a huge supporter of Linux. For the most part, Linux users have lacked the tools that allow their Palms the same level of interoperability that Windows and Macintosh users have been enjoying for quite some time.

All Systems Go: Through the Helix GNOME Control Center, you can enable conduits for backup, expense, file, and many other utilities.

If you’re one of the millions of computer geeks and harried executives addicted to your Palm or Palm-compatible connected organizer, you’ve probably noticed that Palm Computing hasn’t exactly been a huge supporter of Linux. For the most part, Linux users have lacked the tools that allow their Palms the same level of interoperability that Windows and Macintosh users have been enjoying for quite some time.

Fortunately for you, you can now seamlessly integrate your Palm device with Linux. We’ll show you how to get the most out of both the command-line tools that are available, as well as the latest GNOME GUI software for integrating Linux with your Palm.

Setting Up HotSync

Assuming you’ve got your favorite Linux distribution up and running, the first thing you’ll want to do is connect your HotSync cradle to an available communications port. On most Linux systems, the first two serial COM ports are mapped to /dev/ttyS0 and /dev/ttyS1, but on occasion you may find that they are mapped to /dev/cua0 or /dev/cua1.

By default, most Linux synchronization software looks for the HotSync port on /dev/pilot, so the first thing you’ll want to do is create a link (using the ln command) to your serial port by issuing the following command from the shell prompt (this assumes that your cradle is connected to COM1):

ln -s /dev/ttyS0 /dev/pilot

Syncing Up, Penguin-Style

The next thing you’ll want to do is download a package of command-line tools called Pilot-link. If you’re running a recent version of Red Hat, Mandrake, or Caldera, you’ve probably already got Pilot-link installed. Still, if you want the latest and greatest version you can download it from http://www.sourceforge.net/projects/pilot-link/.

Just like most open source applications, you will need to unzip it with gunzip and untar it. Next, run the configuration script by issuing the ./configure command in the directory where you’ve untarred Pilot-link.

After the configuration script has created the Makefile for your system, simply type make install to compile and install the Pilot-link software on your system.

Once you’ve got it installed, you should edit your .bashrc (it’s a hidden file located in your home directory), or similar shell configuration file, to export the environment variable PILOTRATE to a nice high number (like 115,200). This variable sets the baud rate at which Linux talks to the Palm unit’s cradle while performing a HotSync operation. On my system, I ran picobashrc from the /home/jason directory and added the following lines:


Note that some serial ports may have trouble communicating with your pilot at that speed; by default, most Palm devices are pre-configured to sync at 57600, so you might want to try reducing the baud rate if you fail to handshake with the serial port.

At the time of this writing, Pilot-link only officially supported regular serial and infrared serial connections. If you have a HandSpring Visor and you normally sync using a USB connection under Windows, don’t despair; developer Miles Lott has experimental Linux USB Visor drivers on his page at SourceForge, which is located on the Web at http://www.sourceforge.net/projects/usbvisor/. However, keep in mind that these drivers require a 2.4 Linux developer kernel. If you don’t really want to hack your kernel, you may want to consider buying a regular serial cradle for your Visor. These are available from Handspring’s Web site (http://www.handspring.com).

Show Me the Tools

Desktop jpilot-datebook
In Sync: J-pilot works like the Palm desktop familiar to Windows users.

Pilot-link comes with lots of command-line utilities (more than 40 in all) that allow you to manipulate your Palm device. Of all these utilities, you will likely use pilot-xfer the most. Pilot-xfer allows you to install programs onto your Palm device, as well as make and restore backups.

For example, to install a program type the following at the command prompt:

pilot-xfer /dev/pilot -i program.prc

Or, to backup your Palm device you would type the following at the command prompt:

pilot-xfer /dev/pilot -b backup-directory

This will copy all of the databases on your Palm OS device into a directory called backup-directory, creating it if it didn’t already exist.

To restore data to your Palm device, you would type the following at the command prompt:

pilot-xfer /dev/pilot -r backup-directory

Generally, you will only need to do this if your Palm device loses power or if you have to do a hard reset.

To list the programs on your Palm device, type the following at the command prompt:

pilot-xfer /dev/pilot -l

Choose Your Desktop

While the utilities in Pilot-link can come in handy, you will also probably want to duplicate the Palm Desktop environment on the Linux desktop. While 3Com does

not provide desktop support for Linux, there are a few open source alternatives that fit the bill quite nicely.

J-pilot, which is by far the most complete Palm environment for Linux, can be obtained from http://www.jpilot.linuxave.net. As with Pilot-link, you’ll want to download the source code and compile it for your Linux distribution, or install it from the .rpm files provided on the site. J-pilot is based on the GTK toolkit and libraries (which are also used by the GNOME desktop itself), so you’ll want to download them from http://www.gnome.org if they are not already installed on your system. J-pilot works much like the Windows and Mac versions of Palm Desktop. It has a lot of nice features, including:

  • Support for Datebook, Address, To Do List, and Memo Pad
  • Support for some DateBk3 tags
  • Postscript printing
  • Monthly and Weekly Views of the date book
  • Plug-in support — comes with Expense plug-in
  • Support for multiple backups
  • Does a Full Backup, or just a Sync of supported apps
  • Global Search (Find)
  • Installation of files
  • Quick find in Address application
  • Datebook support for both repeating events and exceptions to those events
  • Datebook support for modification of a single occurrence of a reoccurring event

However, if you’re looking for an even tighter desktop integration than J-pilot, look no further than Helix GNOME itself. Unlike the standard GNOME 1.2 distribution found at http://www.gnome.org, Palm support is built directly into the Helix GNOME Control Center. You can also find the components themselves at the Gnome-Pilot Web site, at http://www.gnome.org/gnome-pilot.

Assuming you’ve already downloaded and installed the version of Helix GNOME specific to your Linux system (as covered in our September 2000 On The Desktop column), you’ll want to launch the Control Center applet, go straight to the “Peripherals” section, and then to “Pilot Link.”

If this is the first time you’ve connected your Palm to the gnome-pilot tools, and your Palm has been synced before, the Control Center will launch a wizard that will prompt you; you’ll want to answer “yes” and then specify which serial port your device is connected to. If you created the symbolic link to your serial port as stated earlier, you should tell the wizard that the device is connected to /dev/pilot.

Desktop gnomecard
Take My Card: Syncing your Palm with GNOME Pilot Link initially will dump your Palm address book into GnomeCard format, letting you manage your contacts in a single database.

After you’ve specified the Palm’s serial connection in the Pilot Link wizard, you should be able to establish the initial link with your device by pressing the HotSync button when prompted. Once the initial link has been completed, an account for your Palm device should be automatically created in the Pilot Link section of the Control Center. If you’ve got more than one Palm device in your household, you can create new device accounts by simply clicking on the Add button in the Pilot Link section.

Once an account for your device has been entered, you’ll want to enable all of the Pilot conduits in the Control Center. There are conduits for Backup, Expense, File, GnomeCalendar, GnomeCard, Memo Files, and Sendmail. Simply click on the corresponding conduits you want to enable in the Pilot Link section and then click on Conduit State: Enabled to enable them.

The first time you do a complete sync of your Palm with Gnome Pilot Link and have the conduits enabled, a subdirectory of your home directory called /MyPilot will be created that contains several other directories:




You will also notice that a file called Address.gcd will also be created.

The /backup directory contains a complete backup of all of the files on your Palm; /memos and /expense contain ASCII text downloads of all the entries in your Palm’s Memo Pad and Expense application. The Address.gcd file is a dump of the Palm Address Book into GnomeCard format, enabling it to be read in the GnomeCard application that comes with Helix GNOME.

Keep in mind that this is a straight one-way dump of the Address Book, so if you change entries in GnomeCard, the Palm will not reflect the changes you make; you’ll need to use J-Pilot if you want to be able to have the Palm synchronize Address Book changes with Linux.

Fortunately, your palm’s Date Book entries are fully synchronized with the GNOME calendaring applet GnomeCal. Once the GnomeCal conduit is activated, you should be able to see and edit all of your appointments either by launching gnomecal from a terminal window or by simply picking GnomeCal from the Helix GNOME Applications menu.

If you’ve got the File conduit enabled, you can install files and programs onto your Palm by doing one of the following:

1. Right-click on prc/pdb files in GMC (the Gnome Midnight Commander). There should be two options called Install Now and Install Later. Install Now displays a box asking you to press sync, thus immediately installing the file. Install Later queues the files until a later sync.

2. Drag and drop files onto the File Conduit panel applet in Control Center.

3. Run gpilot-install-file [-l|-n] [FILES] from the command line. The -l corresponds to the Install Later in GMC. -n corresponds to Install Now.

Note that you won’t be able to use the gnome-pilot tools and the command-line based Pilot-link tools at the same time. This is because gnome-pilot launches the daemon process gpilotd, which constantly polls the serial port and prevents the command-line tools from communicating with your Palm. If you need to use them at the same time, you’ll need to pull up a terminal prompt and type:

gpilotd-client -p

to pause the daemon. This will allow you to sync with J-pilot or pilot-link. When you’re done, you would simply type either:

gpilotd-client -r


gpilotd-client -u

to restart or unpause (respectively) the gpilotd process.

Needless to say, there are lots of other tricks and treats awaiting you once you get your Palm and Linux talking to each other. Palm Computing may not have woken up and smelled the Linux coffee just yet, but so what? The Linux hacker cavalry has saved the day again!

J-pilot, Pilot-link, and the gnome-pilot tools are great software packages in the grand open source tradition of “scratching your own itch.” Until Palm Computing finally decides that it wants to help us scratch, these tools will do just fine.

Jason Perlow is a freelance writer and systems integrator. He can be reached at perlow@hotmail.com.

Comments are closed.