Synchronize your Palm TX with J-Pilot
Blabla - the boring part
This tutorial can probably apply to different Palm handhelds, but the only one I've tried it with is the TX.
Feel free to use the information here, but I refuse to be held responsible for anything that goes wrong. What I write down here is what worked for me. It's mostly a compilation of bits of information scraped together from various places on the internet, with some experimentation of myself thrown in to get it all working.
Have backups.
I use Gentoo, if you use another distribution this should also work, although some files might be in different locations. Consult your distro's documentation. This guide was written quite a while ago (August 18, 2007 to be precise). As such, version numbers can and probably will be out of date. I consider that to be trivial details :-)
Prerequisites - you need this
- Kernel 2.6 (with specific options, see further)
- udev
- NPTL
- pilot-link (optional? Not sure, but I doubt it)
- [optional] gnome-pilot
- [optional] evolution
- [optional] jpilot
Setting it up - finally doing something
-
Make sure your kernel is compiled with the correct options. I use the visor module, although it is reportedly outdated and slow. That doesn't bother me enough to get something better working though.
Feel free to compile it into your kernel or as a module. If you compile it as a module, though, make sure it gets loaded whenever you want to sync your Palm!
Device Drivers --> USB Support --> USB Serial Converter support
<M> USB Serial Converter support
[ * ] USB Generic Serial Driver
...
<M> USB Handspring Visor / Palm m50x / Sony Clie Driver-
Install the prerequisite software. I assume you know how to do this :-)
If you want to check for NPTL, you can use the following command :
venefyxatu@necronomicon ~ $ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.5
- Connect your Palm to your computer via the USB cable. You can use lsusb to make sure that your Palm is correctly connected. The underlined line is the one you want to see ...
venefyxatu@necronomicon ~ $ /usr/sbin/lsusb Bus 001 Device 001: ID 0000:0000 Bus 002 Device 015: ID 0830:0061 Palm, Inc. <snip>
- As root, edit the file /etc/udev/rules.d/10-udev.rules If it doesn't exist, create it. Putting the rule in this file makes sure that it gets executed before the default rules in 50-udev.rules.
IMPORTANT: this needs to be on one single line!
BUS=="usb", SYSFS{product}=="Palm Handheld", KERNEL=="ttyUSB[13579]", NAME="pilot", GROUP="usb", MODE="0770"- Disconnect your Palm, wait for a moment and then reconnect it. If all went well, you should have a /dev/pilot node. Make sure your user is a member of the group shown for this node (in my case the "usb" group).
venefyxatu@necronomicon ~ $ ls -lh /dev/pi* crwxrwx--- 1 root usb 188, 1 Aug 18 14:47 /dev/pilot
- Open the HotSync application on your Palm and make sure it is set to synchronize via Cradle/Cable
- Press the Synchronize button on your Palm.
- For testing purposes you can use the following command. When it asks you to press the HotSync button on your Palm, DO NOT do so (you already did, remember?). Just wait for a moment and the connection will get set up (shouldn't take more than a few seconds).
venefyxatu@necronomicon ~ $ pilot-xfer --port /dev/pilot -l Listening to port: /dev/pilot Please press the HotSync button now... Connected
- You should see a whole list of information scrolling by ( 252 files in my case ). This means that your connection works.
Reading list of databases in RAM... <snip> List complete. 252 files found. Time elapsed: 0:00:02
- From here, synchronizing with an application like J-Pilot should be dead simple :
- Connect the Palm via the cable
- On your computer, start the application to synchronize with
- Press the HotSync button on the cable or in the HotSync application on your Palm
- On your computer, give the application you're using the synchronize command.
- Tah-dahh!
About the udev rule
First of all, a great reference if you want to know more about it is this website :
http://reactivated.net/writing_udev_rules.html
.
What's important is that all the match keys (the ones with two equals signs : "==") combined can uniquely identify your Palm.
The different keys in my example line and what they mean are :
- BUS=="usb"
IF a device is connected on the USB bus - SYSFS{product}="Palm Handheld"
AND this device has a product name "Palm Handheld". Some people prefer to add a wildcard here (like so: "Palm Handheld*"), but it doesn't seem to be necessary. - KERNEL="ttyUSB[13579]"
AND this device is named ttyUSB1 or ttyUSB3 or ... by the kernel. For some reason, only the odd numbers seem to work properly. - NAME="pilot"
THEN create a new device node named pilot (this is the /dev/pilot that most syncing applications look for) - GROUP="usb"
The group to assign to the pilot node. If your user is a member of this group, you will have read / write / execute permissions (set in the next key) - MODE="0770"
This gives 0770 access (-rwx-rwx---) permissions to the created node. 0660 (-rw--rw----) should suffice as well, but apparently gnome-pilot is greedy and demands 0770.
Comments and corrections
They're always welcome ... feel free to e-mail me on venefyxatu /at/ gmail {dot} com
