So you’ve had your Palm Pilot for a long time. It’s your trusty companion, and you can’t commute/compute without it. The Pilot (in all of its incarnations) has been around for quite some time, and its syncing ability, obviously, was created with Windows in mind. However, let’s not assume that it will play well only with that operating system.

The Pilot devices play along with Linux as well! Or maybe I should say that Linux plays well with the Pilot devices. In this Daily Drill Down, I’ll try to get you started on the path of least resistance with Palm Pilot and Linux—from setting up to syncing.

Setting up the link
As with any Linux system, you have various options (some would say too many) to link your Pilot with your desktop. In this Daily Drill Down, I’ll take a look at the first of two major players, GNOME, and its own native sync utilities.

The first step in getting your Pilot to sync in Linux—regardless of which desktop environment (DE) you’re using—is to successfully create the link to the /dev/pilot file. To do this, first determine to which serial port your Palm Pilot will be connected. Here’s which device files go with which ports:

  • ttyS0—Serial Port 1
  • ttyS1—Serial Port 2
  • ttyS2—Serial Port 3

Or, depending on your distribution:

  • cua0—Serial Port 1
  • cua1—Serial Port 2
  • cua2—Serial Port 3

The cua* name scheme is being phased out of Linuxdom, so, although many distributors still include the cua* devices, stick with the ttyS* devices.
The first step in creating the actual link is to create, as root, a new device file called /dev/pilot along with the link to the ttyS* device, with the following command:
ln /dev/ttyS* /dev/pilot

Remember to replace the * with the number of the tty device to be used. Once this link is created, you’re ready to attempt to link your Palmtop machine to your Linux machine. Put the device in its cradle and press the Sync button. You should hear a familiar tone, and the window shown in Figure A will appear on your desktop.

Figure A
After you press the Sync button, you’ll see this window.

Once you’ve created the link, you must make sure that users can read and write to it. To give users read/write permission to your new link, you must run the following command (as root):
chmod 666 /dev/pilot

Now you can begin your first sync.

Our first DE to sync with is GNOME, which is, by far, the most Palm-friendly of all the DEs. Through the Control Center, shown in Figure B, you can configure all possible aspects in which GNOME will interact with your Pilot. The first step is to select the Pilot Link subsection, which will walk you through the initial process of linking to your Pilot.

Figure B
Welcome to GNOME Pilot.

Figure C shows step 2 in the configuration of the GNOME Pilot application. Here, the primary function is to determine what device (port) will be used for the Pilot to link. If you’ve used the above method, you’ll want to use the default configuration (/dev/pilot).

Figure C
Here, you’ll configure the proper device.

The final configuration step, shown in Figure D, is to define how you want to use sync software with the Pilot. Basically, here you want to either send your user info to or retrieve your user info from the Pilot.
The user ID you want to use is your Linux user ID currently on your system.

Figure D
In the final configuration, you define how you want to use sync software with the Pilot.

Once you’ve made the final configuration choice, click Next and then press the Hot Sync button on the Pilot. If all goes well, you will be greeted with the tiny success chime.

On to the settings
In Figure B (see above), you will see the Palm Pilot tree expanded to reveal the various conduits and the Pilot link configuration itself.

Pilot link
Figure E shows that the first step in configuring your Pilot to work with GNOME is to configure Linux itself. Within this tool, your primary function is to add or configure the user identification to send to the Pilot. Under the Pilot tab, highlight a name and select Edit (if there is no name already configured, then select Add). Within this window you will enter a username and ID (the user ID on the Linux system), and you will send this information to the Pilot with the Send To Pilot button. If you already have a Pilot configured with user data, you can opt to press the Get From Pilot button and retrieve the information instead.

Figure E
The first step in configuring your Pilot to work with GNOME is to configure Linux itself.

Below the User Identification section, you can rename the Pilot, change the local base directory, and choose the sync action. The sync action allows you to choose whether or not you want to do one of the following:

  • Use Conduit Settings
  • Synchronize
  • Copy From Pilot
  • Copy To Pilot
  • Merge From Pilot
  • Merge To Pilot

The above choices are all fairly self-explanatory. I suggest choosing to use conduit settings—that way, you can use individual configuration settings for each conduit.

On the Devices tab, you can configure all your device settings, such as Name, Port, and Speed. Generally speaking, there should be nothing for you to do on this tab (once you’ve created your link from the proper serial port to /dev/pilot). The only time you might need to visit this section is if, for some reason, your device was set to an improper port or speed.

The Advanced tab is used only for the SynPCid number and therefore will not need to be altered.

Conduit configuration
There are seven different conduits to configure within GNOME’s Control Center:

  • Backup
  • Expense
  • File
  • GNOME Calendar
  • GNOME Card
  • Memo file
  • Sendmail

Each of these conduits has various configurations, ranging from the minimalist Enable/Disable choice of the File conduit to the more involved options of the Sendmail conduit. Let’s take a look at each conduit before we actually get into syncing our Pilot within GNOME.

Backup conduit
The Backup conduit serves to back up the following files:

  • Giraffe High Score.prc
  • Graffiti ShortCuts.prc
  • Net Prefs.prc
  • NetworkDB.pdb
  • Saved Preferences.prc
  • ToDoDB.pdb
  • Unsaved Preferences.prc

It saves these files to the ~/MyPilot/backups directory. Within the GNOME Control Center, the Backup conduit has only four possible configurations:

  • Enable/Disable
  • Backup Directory
  • Only Back Up Changed Bases
  • Remove Local Base If Deleted On Pilot

In actuality, only the Backup Directory option is configurable (the other three are enable/disable-type options).

Expense conduit
The Expense conduit is simple to configure and contains some basic tools that can be configured from within the same Control Center. As with all other conduits, you will be allowed to enable/disable the conduit, configure the date format, change the output format, configure the directory where the Expense conduit will dump its contents, change the mode of the directory, and change the mode of the file. Let’s look at some of these options in detail.

Date format

The date format within the GNOME Pilot set of applications uses the standard variations:

  • Day/Month/Year
  • Month/Day/Year
  • Since 1970-01-01 in (sec)
  • Local format

The setting Since 1970-01-01 in (sec) allows you, in typical UNIX fashion, to configure your Pilot to transfer its expense data dated in seconds, starting from January 1, 1970. For example, a dinner date on May 2, 2000, would be listed as:
Date: 957240000

This format, of course, is not exactly useful. For techheads, however, this date format is a great way to wave your flags!

Output format

The simple vs. complex output format choice will depend on how much detail you will want to retain on your GNOME desktop. For instance, a complex configuration will save the following:
Date: 05/02/00, Type: Dinner, Payment: MasterCard, Currency: $, Amount: ‘$25.96’, Vendor: ‘Thai Siam’, City: ‘Louisville’, Attendees: ‘Haversham Happenstance and Plat E. Puss.’, Note: ‘Had vegetarian Phad Thai’

The same expense, in simple format, looks like this:
05/02/00, Dinner, MasterCard, $, $25.96

The differences are quite obvious here, and the choice will be dictated either by user taste or user needs.

Expense Directory

The Expense Directory configuration allows you to dictate where the expense files are to be stored. This is yet another nice feature that will aid in the sharing of files. In a business setting, where expenses are tightly tracked, being able to dump this data into a shared folder can make all the difference.


The two different mode settings (one for directories and one for files) dictate who has read/write permissions. By default, the directory mode is set to 0700 (-rwx—— or, in English, user read/write/execute privileges) and the file mode is set to 0600 (-rw——- or, in English, user read/write privileges).

There is no reason to alter either of these mode settings unless you need to be able to share these files with others. Should you want to change these permissions, simply navigate (in the GNOME Control Center) to the Expense conduit and change the desired mode.

Figure F shows the Expense Options screen. Within that screen, you will see the mode settings, which consist of two text areas. The default value of the directory mode is shown, but the file mode has been changed to 0660. The 0660 permission will allow other users to read and write to these files (once they are on the PC). This could be a helpful tool to allow/disallow others from altering your expenses or even viewing them.

Figure F
The Expense Options screen displays the mode settings.

File conduit
The File conduit can install files and recover entire directories to the Pilot. This conduit is, essentially, a system conduit and can only be enabled or disabled. There are a couple of methods you can use to install files onto the Pilot. The first, and by far the easiest, is to open up GMC (GNOME File Manager) and drag the file onto the Gnome Pilot Panel applet, as shown in Figure G.

Figure G
Within your Gnome Panel you’ll see the GNOME Pilot Panel applet.


When you drag the file onto the applet, it is put into a queue, which is then transferred during the next sync. Typically, these files will be applications that are installed onto the Pilot itself. This is one tiny fault of the applet. Many applications require multiple files to be installed, and to do this you simply think Windows for a moment and hold down the [Ctrl] key as you click the second file. Once both files are highlighted, drag those puppies to the applet and BLAM! They will be sitting in the queue ready to go.


As with all good Linux applications, there is more than one way to handle a task. With the GNOME Pilot applet, you can handle the transfer or installation of Pilot applications via the GUI or through the command line. Using the command line is a simple task, and the command goes something like this:
gpilot-install-file -n ~/DIRECTORY/TO/FILE

where /DIRECTORY/TO/FILE represents the actual file (and its exact path). For example, let’s say you’re going to install the Atool! application. The file necessary to install this tool is called ATool.prc. You’ve downloaded that file into /tmp and now you want to install it onto your Pilot via the command line. In order to do this, you will run this command:
gpilot-install-file -n /tmp/ATool.prc

When you press [Enter], the Pilot will begin its syncing and will run the normal course. This method highlights the only weakness of the GUI front end of the application. While the command will complete the syncing process when it is entered, the GUI will only spool the job and wait for the Pilot to be manually sync’d. A small price to pay for simplicity, I’d say!

GNOME Calendar conduit
The GNOME Calendar (GnomeCalendar, as labeled in the Control Center) configuration applet allows you to configure only one aspect—the conduit state. The conduit state defines which synchronization action you wish to take. With GNOME Calendar, you have the same sync actions as you do with the Pilot conduit (with the addition of enable/disable):

  • Enable/Disable
  • Synchronize
  • Copy From Pilot
  • Copy To Pilot
  • Merge From Pilot
  • Merge To Pilot

When you sync your Pilot to the GNOME Calendar application, your Pilot writes to the ~/.gnome/user-cal.vcf file (which is not clearly documented in either the Pilot software or the GNOME Calendar help). Such an event would look like this (when you view the user-cal.vcf file from a text editor):
SUMMARY:Grocery store

Here we can highlight Linux’s superior nature. With the GNOME Calendar, you can edit the above entry via the actual application (GNOME Calendar) or a text editor. Why would you want to edit the calendar file through a text editor? Say, for instance, your calendar, out of nowhere, becomes corrupted and cannot open. With this method, you can open your calendar with the text editor and visually debug the file. Another reason might be when you’re using a laptop with a low battery (or a laptop with only a console). By using the console only (to save power), you can still make entries into your calendar (which can be sync’d later on). Later I’ll talk about some console-syncing methods.

One of the GNOME Pilot application’s weaknesses comes out here. There is no way to configure the To Do lists to sync from the Pilot. Sure, you can enter your to-do items in the GNOME Calendar and they will sync with the Pilot just fine. Try to perform this action the other way (sync the To Do lists from the Pilot to the GNOME Calendar), and you will surely meet with failure.

GNOME Card conduit
GNOME Card (or as it is shown in the Pilot configuration applet, GnomeCard) is the GNOME address book; it has two configuration options for the Pilot:

  • Address Conduit State (sync actions)
  • Address Conduit Options (GnomeCard file)

Synchronize action

The GNOME Card offers the same configuration options that GNOME Calendar offers:

  • Enable/Disable
  • Synchronize
  • Copy From Pilot
  • Copy To Pilot
  • Merge From Pilot
  • Merge To Pilot

The Conduit Options configuration allows you to define the directory and the file to be written to and from.

GnomeCard file

Much like GNOME Calendar, GNOME Card writes to a specific file, ~/MyPilot/Address.gcrd, and can be edited via the GUI or a text editor. A typical entry, through the eyes of pico, looks like this:
FN:Haversham Happenstance
N:Happenstance; Haversham
ADR;HOME:;;1313 Chimp Way;Louisville, KY;40223;USA
Memo File conduit

The Memo File conduit allows you to sync your memos from and to your Pilot. Within this configuration screen are a few more options than we’ve seen so far. With the Memo File conduit, you can configure the following options:

  • Memo Conduit State
  • Memo Conduit Options
  • Memos Directory

The Memo Conduit State has, again, the same options as the aforementioned GNOME Calendar and GNOME Card. The Memo Conduit Options, however, have a few more choices. The first of these choices is to define the directory where the memos file will be stored. By default, this directory is ~/MyPilot/memos and the subdirectories will be whatever types of memos you have defined. For example, my /home/jwallen/MyPilot/memos directory contains the following subdirectories:

  • Archived
  • Business
  • Personal
  • Unfiled

As you create more categories, the number of subdirectories will increase.

Ignore Start/Ignore End

The next configuration option for the Memo File conduit is unique to Linux (so you Windows users need not even apply). Ignore Start and Ignore End will prevent your Pilot from creating duplicate entries of memos. One of the quirks of many of the Linux text editors is that they create duplicate copies of files (for backup purposes). For example, you create a file called memo within pico. At times you will notice an errant file called #memo# or even memo1. Using the Ignore Start and Ignore End configuration options will prevent this problem. The entries for this configuration will vary for the different editors used, but a good base would be the following:

  • Ignore Start #
  • Ignore End ~

This configuration will keep the Pilot from copying, from your PC, any duplicate file starting with # or ending with ~.


Like the Expense conduit, the Memo File conduit allows you to configure permissions for both files and directories. This has the same effect as it does on the Expense conduit.

Sendmail conduit
The Sendmail conduit has two sections (like many other conduits): Conduit State and SendMail Options. The Conduit State simply allows you to enable and disable the conduit. The SendMail Options, however, offer more functionality.

From E-mail Address

Here you enter the e-mail address you will be syncing to your Pilot.

MH Mail Directory

This particular configuration (MH stands for Mail Handler) option asks you to enter the path to the mail directory you use on your PC. Say, for example, that you have procmail configured to dump your mail in /home/USERNAME/mail/USERNAME. This directory would be the path you’d enter in this particular configuration.
Wherever you see USERNAME, you enter your Linux username.
Mail Sent From Pilot/Mail On Host

Although these are two different options, the Mail Sent From Pilot/Mail On Host options simply allow you to define whether or not you want to delete the mail sent from the Pilot or on the host.

The two configuration options you have to choose from are:

  • File
  • Delete

I recommend you not choose Delete For Mail On Host. Choosing this option will cause you to lose all e-mail (e-mail that syncs with your Pilot) on your PC. Should the sync fail, you could possibly lose this mail.

Syncing and using the software
There is a simple Pilot applet for GNOME called Gnome Pilot Applet that sits in the panel and allows you to do a number of things. By right-clicking the applet, you will see the following menu items (in addition to the standard panel items):

  • Restore
  • Pause Daemon
  • Restart Daemon
  • Last Sync Log
  • Properties
  • Pilot Link Settings

The majority of these items are simply shortcuts to the Pilot settings in the Control Panel. The items that are not shortcuts to the Control Panel include Pause/Restart Daemon, Last Sync Log, and Properties.

In order to actually get the Pilot to sync with the GNOME Linux PC, gpilotd must be running. There are two ways to do this: from the console or GUI.


The console variation of running gpilotd is not nearly as user friendly, but it works in a pinch. In order to get this running, you have to enter the gpilotd command at the console. You will receive the following message:
[jwallen@giles bin]$ gpilotd
gpilotd-Message: gnome-pilot 0.1.51 starting…
gpilotd-Message: compiled for pilot-link version 0.9.4
gpilotd-Message: Watching Cradle (/dev/pilot)

Once you see this message, you can press the Hot Sync button on the cradle, and your Pilot will sync. You might think you could run the gpilotd command in the background with gpilotd & (which would normally send the process into the background), but no! Hold on, it gets even stranger! Typically, when you run a command from the console and you press [Ctrl]C, it cancels the process. Pressing [Ctrl]C when running gpilotd actually sends the process to the background. So in order to sync your Pilot with the help of the console, type gpilotd. After you get the above message, press [Ctrl]C and then press the Hot Sync button.


Of course, the simplest way to sync your Pilot is with the GNOME Pilot Applet. You can start this applet by right-clicking the GNOME Panel and navigating through Panel | Add To Panel | Applet | Utility and selecting the PilotSync applet. Once you choose this, a new applet will appear and gpilotd will be running. It is now possible to sync with your Pilot (without having to run any commands).

The GNOME Pilot Applet can be running whether or not you have the Pilot in its cradle, and with the applet docked in the panel, your Pilot is ready to sync at any time. I’ve noticed a bit of an instability problem with the earlier GNOME Pilot Applets, so I advise you to upgrade to the latest, greatest release (as of this writing, it is 0.1.51).

Linking your Pilot to Linux is a simple, enjoyable process with GNOME. With the help of the GNOME Pilot Applet and a couple of simple commands, you’ll be rockin’ with your Pilot in gno time (sorry about the pun).

Jack Wallen, Jr., editor in chief of Linux content, was thrown out of the “Window” back in 1995, when he grew tired of the “blue screen of death” and realized that “computing does not equal rebooting.” Prior to Jack’s headfirst dive into the computer industry, he was a professional actor, with film, TV, and Broadway credits (anyone see “The Great Gilly Hopkins”?). Now, Jack is determined to use his skills as a communicator to spread the word—Linux. Ladies and gentlemen, the poster boy for the Linux Generation!

The authors and editors have taken care in preparation of the content contained herein, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for any damages. Always have a verified backup before making any changes.