Bluetooth HotSync your Palm with Linux
Here is a script, pilot-xfer-bt, that will HotSync your Palm over Bluetooth on Linux. I use a Treo 700p here, but this will probably work with other Palms with Bluetooth.
First, make sure your host computer and Palm are paired. Then make sure your copy of rfcomm is at least version 3.23 or later by running ‘rfcomm –help’. As of the writing of this post, very few machines are using this rev, since it is recent. If yours is older, either try updating your bluez-utils package, or download, compile, and install the latest bluez-utils source. All you need is the ‘rfcomm’ binary.
Then edit that pilot-xfer-bt script and make sure that its internal path to rfcomm points to the install directory. /usr/local/bin/rfcomm is probably what you want if you installed from source.
Anyway, to use: pilot-xfer-bt passes its args to pilot-xfer. So in other words, to sync your Palm to a repository located in /home/username/palm, run ’sudo ./pilot-xfer-bt -s /home/username/palm’.
Getting this thing working a few months ago was a bear. There was this nasty timing-dependent bug in rfcomm vs. udev. That took days to puzzle through. At least it’s been fixed upstream. Anyway, I now know why they call these tools “bluez”
Filed under: code code |
Tagged: bluetooth , hotsync , linux , palm , treo

Thank you! This is very nice (much simpler than setting up PPP and doing a network sync).
One small fix: it doesn’t work with filenames/database names containing spaces; you need to change $* to “$@” .
Here’s a patch to do this, which will almost certainly be horribly mangled by the blog posting software and unusable:
— pilot-xfer-bt~ 2008-06-10 10:58:00.000000000 -0700
+++ pilot-xfer-bt 2008-06-10 11:58:43.000000000 -0700
@@ -64,7 +64,7 @@
fi
#
# Start pilot-xfer when the Palm device connects.
-$RFCOMM_PATH listen $RFCOMM_DEV $CURR_HOTSYNC_RFCOMM_CHANNEL $PILOT_XFER_PATH -p $RFCOMM_DEVPATH/$RFCOMM_DEV $*
+$RFCOMM_PATH listen $RFCOMM_DEV $CURR_HOTSYNC_RFCOMM_CHANNEL $PILOT_XFER_PATH -p $RFCOMM_DEVPATH/$RFCOMM_DEV “$@”
#
# Remove the HotSync service record from sdpd now that we are done with it
#
thanks very much Carl, I’ve updated the script and credited you. happy to hear that it came in useful for at least one other person :-)