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.
The serial connection is currently the easiest way to connect your PDA to your PC. Simply connect the cradle to a serial port, then refer to that port when using coldsync or the pilot-link suite. The serial connection is slow, but has the advantage of being tried and tested. It should work with any Palm OS device for which a serial cable is available. Serial cradles and cables are available as accessories for the Palm PDAs, including those which come with USB cradles as standard.
For convenience, you may wish to create a device called /dev/pilot as a link to the serial port. The pilot-link suite uses this device by default, so if the link exists it will save you having to specify it each time you call one of the programs.
To create the link, log on as root and enter the following command:
ln -s /dev/ttyS0 /dev/pilot
Replace /dev/ttyS0 with the serial port to which you have connected the your PDA. The device name /dev/ttyS0 corresponds to COM1 in DOS/Windows terminology, /dev/ttyS1 is COM2, and so on.
You also need to ensure that you have permission to write to the serial port. On a standalone workstation you can change the permissions to allow global access to the port. As root, enter the following command:
chmod a+rw /dev/ttyS0
Greater security can be achieved using the group permissions. Set the permissions to read/write for the group and add the required users to the user list for the group (see man group). (TODO: More detail).
Recent Linux distributions may use devfs for device naming. In this case /dev/ttyS0 may not exist, or may be a symbolic link to /dev/tts/0. This is a new naming scheme brought in with the 2.4 kernel. Simply replace all references to /dev/ttyS0 with /dev/tts/0.
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.
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:
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:
This is used by some distributions, such as Redhat 7.0. (TODO: Mandrake seems to use both, so what's the difference?)
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.
The latest Palm devices have infrared (IrDA) ports. If you have one of these, and a PC with an infrared port, you can synchronise over IrDA and do away with the cables altogether.
David A. Desrosiers has written a comprehensive HOWTO on the subject. (TODO: Include this inline?)
It is possible to physically connect your PDA to one PC, and synchronise it with another PC elsewhere on the network. This might be a useful feature if you need to synchronise with a PC to which you cannot physically connect your PDA.
Once again David A. Desrosiers has written a (less comprehensive) HOWTO on the subject. (TODO: Include this inline? Not convinced of the value of this method - anyone care to comment?)