Tech Journal Back to Tech Journal

How can I HotSync my (USB-only) Palm to a Windows computer from a Linux machine?

First off, try and see if you can even HotSync to the Linux machine. I'm not suggesting you see if all the conduits work, just that the USB driver works. See the following links for some info:

http://howto.pilot-link.org/ppp/cb.html
http://howto.pilot-link.org/netsync/cb.html

Now that you've verified the Palm-to-Linux connection, you can use pi-nredir to redirect the connection from the Linux to the Windows computer. Right click on the HotSync tray icon, and make sure "Network" has a check-mark next to it. Make sure the IP-address and hostname listed in HotSync for you Primary PC, match those listed on the Palm for you LAN Sync. Switch the Palm to LAN Sync. Run pi-nredir using the correct command, like:

pi-nredir -p /dev/ttyUSB0

And click on the Hotsync button. That it. Should work. You could also fiddle with the speed settings of the USB-connection, but I've been warned that anything above 9600 might be unreliable. Try if for yourself, but I wouldn't recommend going above 115200...

OK, That's all you need for the basic setup. The following is how I got my Palm to run the pi-nredir automatically. Sources of info:

http://blog.moertel.com/articles/2007/10/31/how-to-hotsync-the-palm-centro-with-a-fedora-7-linux-desktop-via-usb
http://reactivated.net/writing_udev_rules.html

Create a bash-script to run the Network Hotsync:

#!/bin/bash
export PILOTRATE=115200
if [ $ACTION == 'add' ]; then
        logger "Running Network Hotsync."
        /usr/bin/pi-nredir -p /dev/ttyUSB1
fi

Save it into somewhere, for example /root/bin/run-network-sync.sh. Now we edit the USB device rules for the Palm. You need to look for ttyUSB or Palm Handheld in the file /etc/udev/rules.d/50-udev.rules. You'll see two line, something like:

KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", SYMLINK+="pilot"
KERNEL=="ttyUSB*", SYSFS{product}=="palmOne Handheld*", SYMLINK+="pilot"

And you should change it to be:

KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", SYMLINK+="pilot", OPTIONS="last_rule", MODE="0666", GROUP="pilot", RUN+="/root/bin/run-network-sync.sh"
KERNEL=="ttyUSB*", SYSFS{product}=="palmOne Handheld*", SYMLINK+="pilot", OPTIONS="last_rule", MODE="0666", GROUP="pilot", RUN+="/root/bin/run-network-sync.sh"

The added attributes will cause the devices created to have 0666 permissions, the group to pilot, and execute the command /root/bin/run-network-sync.sh. That's it. You may have to reload the rules using:

$ /sbin/udevcontrol reload_rules

And that's it. Just connect your Palm and press Hotsync, and it should run the Network Hotsync automatically!

Last updated on 2008-02-03 23:55:56 -0700, by Shalom Craimer

Back to Tech Journal