This is a collection of notes I've made about using Palm devices on unix. Currently the only box I have to connect my palm to is a annoying Linux box at work... So I don't have details for NetBSD yet. I've been told that USB devices work much better under NetBSD than Linux, so I'm looking forward to moving my stuff as soon as I get a NetBSD box that has a USB port!
Pilot-link is the basis for most unix palm connectivity. It is a suite of tools, common libraries, and ??? Most of the other Palm tools for unix are built on top of it.
J-Pilot is an X Windows System application which uses the Pilot-Link libraries to communicate with Palm devices. J-Pilot provides a GUI interface to editing the data stored in the Palm. It also provides syncing, backup, program loading, and other facilities.
One big downfall of J-Pilot is that it does not MERGE the info that it holds with the info on the Palm. If you need to add "info" to your database and your palm is not present you are hosed. Or if it is deleted by accident from your palm, you lose it from the J-Pilot database. Oops.
You will need to identify which port the Palm Hot-Sync cradle
is connected to.
You can specify the -p port
option to each Pilot-Link
command, and to each application.
OR, you can specify the device in the environment variable
PILOTPORT
, and that port will be used unless over-ridden
by a command-line option, or by some GUI port specification.
To use your Palm Pilot with the Pilot-Link tools you need
to setup your palm.
You must set a username
and id
on the Palm.
This is done so that each unit may be identified uniquely.
This can be done with the Pilot-Link tool install-user
.
I use my unix username and UID to keep things simple:
install-user -u USERNAME -i UID
Before using the various Palm software you need to initialize the linux drivers. Before starting any palm user-land applications ..
This will cause the unix kernel auto-module loader to configure the USB and "Visor" (aka palm USB) devices. After that is complete it will will leave the /dev/ttyUSB devices setup to work with a palm. Whenever I run it I see the kernel configuring all USB tty devices:
If you examine the dmesg
output you will see the USB
infrastructure being initialized.
Unfortunately all this code does not indicate
which USB port the cradle is connected to.
You have to know or discover which hardware port one the cradle
is connected to.
I don't know how that works if you have a USB hub -- my guess is that the Linux Driver doesn't have multiple USB device support. I'll update this section if I get a USB hub to experiment with.
After doing that, you can set the PILOTPORT
environment variable to the pathname of the appropriate USB tty device.
That works for pilot-link tools.
$PILOTPORT
will also work with
jpilot if you leave the serial port entry in the GUI config empty.
As of Redhat 9 the USB drivers immediately unload once a device is unplugged. This means you can no longer just hit the "sync" button in Palm applications, dock the palm, and tell it to sync. The palm must be connected before any program->palm communication takes place. This is somewhat of a pain compared to the prior USB infrastructure where ... "it just works" (after the first time after boot).