How to get your Handspring Visor to work in linux

We first have to check the current kernel configuration. Verify that the following options are installed, either directly in the kernel or as modules. If not, change the configuration and build a new kernel:

The USB Device Filesystem can be enabled by adding the following line to /etc/fstab:

none    /proc/bus/usb    usbdevfs    defaults    0    0

When using devfs the devices will be created automatically in /dev/usb/tts/[0,1,...]. Otherwise, the devices have to be created in /dev by executing:

mknod /dev/ttyUSB0 c 188 0
mknod /dev/ttyUSB1 c 188 1
mknod /dev/ttyUSB2 c 188 2
mknod /dev/ttyUSB3 c 188 3
(etc...)
chmod 666 /dev/ttyUSB*

For convenience, you can create a symlink from /dev/ttyUSB1 to /dev/pilot.

If you compiled the USB code as modules, you have to load the appropriate modules:

/sbin/modprobe usb-uhci
/sbin/modprobe visor

Load usb-ohci instead of usb-uhci if you have an OHCI controller, of course. The modules usbcore and usbserial will be loaded automatically.

To load the required modules at startup, add them to /etc/modules.


To communicate with your Visor, the package pilot-link is needed.

We can now test if the connection works, by performing a backup:

mkdir visor
pilot-xfer -p /dev/pilot -b visor

Press the Hotsync button before running the software!

You can set the following environment variables:

setenv PILOTPORT /dev/ttyUSB1
setenv PILOTRATE 115200


As a Palm Desktop equivalent, you can use for example the jpilot or kpilot packages.

If you want to synchronise your Visor with Evolution, you will need the gnome-pilot package. For this it is necessary to have the USB Device Filesystem installed; pilot-link alone will also work without that.

Other possible packages: gnome-pilot-conduits, libgnome-pilot1 and evolution-pilot, I'm not sure which ones are necessary.

Add the following line to for example your .xsession to have the pilot daemon loaded automatically:

exec gpilotd --activate-goad-server gpilotd --goad-fd 16 &

In Evolution you have to install your visor and the required conduits.

After a hard reset, you might have to restore your pilot. For this, use the following command:

pilot-xfer -p /dev/pilot --restore ~/Pilot/

assuming your backup-directory is in ~/Pilot. You will have to move all subdirectories from this directory, and kill the gpilotd before running the restore. And again, first press the Hotsync button.

Palm synchronisation

If gpilotd crashes on sync'ing, check if the usb file system has been mounted.

Duplicate items

If, after a complete restore and subsequent synchronisation, you end up with all duplicate items in your DateBook, you're in trouble. There is a program in the pilot-xfer package, called pilot-dedupe, but that doesn't seem to work very well. The problem is that by synchronising, you now have duplicate items both in your Palm as well as in Evolution! The solution is therefore to fix Evolution's calender file (with the newest version in ~/.evolution/calendar/local/system/calendar.ics). The easiest way to do this is by restoring the version from the day before, using /cg/bin/restore. Kill all (!!) evolution processes, copy the new calender file, and restart Evolution to see if it has worked. Then change the synchronisation settings to: "One time action: Copy to pilot" and sync...


For more information check out this mini Howto.

LinuxHowto/HandspringVisor (last edited 2008-02-10 16:44:44 by localhost)