Linux HOWTOs

About | Home | Search


HOWTO: pilot-link
Description: Palm handheld utilities
Click here for ChangeLog
NOTE: I use GNU tar >= 1.13.25 so it's -j for .tar.bz2 files,
it's safe to assume that make, gcc, binutils, fileutils/coreutils, gawk, sed, and grep are prerequisites for almost everything


# pilot-link 0.12.1
# =================
# Version 0.11.8 was released on June 17, 2003.  Version 0.12.0 was released
# August 25, 2006  Development seems to have picked up again, hooray!
# (I have a Palm Tungsten C and an old Palm Vx)

# Slackware 8.1's 'pilot-link' package includes version 0.9.5, 9.0's
# includes 0.11.5, and 9.1, 10.0, 10.1, 10.2, and 11.0's include 0.11.8

# Prerequisites:
# bison
# If --enable-libusb:
#  libusb >= 0.1
#  udev >= 070
# If --enable-conduits:
#  libpng
#  popt
#  iconv
#  readline
# If --with-*:
#  Perl (if you pass --with-perl)
#  Java (if you pass --with-java)
#  Tcl (if you pass --with-tcl)
#  Python (if you pass --with-python)

# You can also download it (Bittorrent, Azureus, etc.) using Bittorrent:
# http://torrents.pilot-link.org/pilot-link-0.12.1.tar.bz2.torrent

cd
test -f installed/pilot-link-0.12.1.tar.bz2 &&
 mv installed/pilot-link-0.12.1.tar.bz2 .
test ! -f pilot-link-0.12.1.tar.bz2 &&
 wget http://downloads.pilot-link.org/pilot-link-0.12.1.tar.bz2

# Verify tarball w/ md5sum:
echo "80579c6f68eb583f54294d5651c4632b  pilot-link-0.12.1.tar.bz2" | \
 md5sum -c

# Verify tarball w/ sha1sum:
# (this came from my gpg-verified tarball)
echo "b776aa4467f254b1f0c9fe76bd54afc9860c3e88  pilot-link-0.12.1.tar.\
bz2" | sha1sum -c

# Verify tarball w/ gpg:
( gpg --list-keys 7075AE4A > /dev/null 2>&1 || gpg --recv-keys 7075AE4A ) &&
 wget -nc http://downloads.pilot-link.org/pilot-link-0.12.1.tar.bz2.asc &&
  gpg --verify pilot-link-0.12.1.tar.bz2.asc &&
   rm pilot-link-0.12.1.tar.bz2.asc

mkdir -p -m 0700 src
cd src
find -maxdepth 1 -type d -name "pilot-link-*" -exec rm -r {} \;
tar xjvf ~/pilot-link-0.12.1.tar.bz2
cd pilot-link-0.12.1
test $UID = 0 && chown -R root:root .
chmod -R u+w .

# If you have a USB cradle, you can either use the kernel's 'visor' module
# (CONFIG_USB_SERIAL_VISOR), or as of 0.12.x, you can use libusb.  I use
# libusb myself.  If you don't go with libusb, leave off --enable-libusb
# below.

# If you don't have Perl, Java, TCL, or Python installed, leave off the
# appropriate configure option(s) below.

# I left off --with-tcl=/usr/lib for pilot-link 0.12.1 because the Tcl
# bindings haven't been updated for pilot-link 0.12.x yet and don't build
# for me as-is.  And, AFAIK, I don't use them with anything anyway - unless
# gnome-pilot, j-pilot, etc. use them, but I use the pilot-link commandline
# utils most of the time anyway...

# FYI, I passed --with-python (I have 2.4.3 installed), configure saw it,
# but I got this for some reason:
#  Python support.......... : no
# I don't need Python support either, so I'll check on that next time...
# You can probably build them manually using disttools, see
# bindings/Python/README.

./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib \
 --enable-conduits --enable-libusb --with-perl --with-java \
 --with-python
make

# Become root to install it
su

# As of 0.12.0, several binaries have been renamed to pilot-* or have been
# removed altogether, so remove the old ones.  If this is your first time
# installing pilot-link, this is not necessary.
for oldfile in addresses ccexample debugsh dlpsh hinotes memos money2qif \
 pi-csd pi-getram pi-getrom pi-getromtoken pi-nredir pilot-archive \
 pilot-datebook pilot-prc pitclsh reminders; do
  rm -f /usr/bin/${oldfile} /usr/man/man1/${oldfile}.1
done

# Remove Slackware package and old library files
test -x /sbin/removepkg && /sbin/removepkg pilot-link
( cd /usr/lib ; rm -f libpisock++.* libpisock.* libpisync.* libpitcl.* )

# Install it
make install
ldconfig
chown -R $USER .

# Useful reading:
# ./README
# ./NEWS
# doc/README.usb     # (if you have a USB cradle...)
# doc/README.libusb  # (if you have a USB cradle and set it up with libusb...)
# ./doc/man/* (which will end up in /usr/man/man?/*)
# http://www.pilot-link.org/
# http://howto.pilot-link.org/
# http://lists.pilot-link.org/

# If you're going to set it up with libusb, make sure usbfs is mounted
# (run 'mount | grep usbfs').
#
# Also if you're using libusb, and you're using udev, add "blacklist visor"
# to /etc/modprobe.conf (or to a file in /etc/modprobe.d/) and then run
# 'depmod -a'.  If you use hotplug, add "visor" to
# /etc/hotplug/blacklist and restart it.  This will prevent them from
# loading the 'visor' module, potentially causing trouble with libusb.
# Also, make sure it is not already loaded (run 'lsmod | grep visor').

# If you're using libusb and you have a /etc/profile.d/pilot-link.sh from an
# older version of pilot-link, you can remove it.  If you're not, make sure
# the info in it is still going to be accurate.
test -f /etc/profile.d/pilot-link.sh &&
 rm -f /etc/profile.d/pilot-link.sh

# Now create a group for people that can use the Palm device.  Name it
# whatever you like.  I use <drumroll>... "palm".
getent group | grep "^palm:" > /dev/null 2>&1 || groupadd palm
gpasswd -a jason palm

# If you use udev, open up doc/60-libpisock.rules in a text editor and
# change all occurances of 'dialout' with whatever you named your new
# group.  Then copy that file into /etc/udev/rules.d/  This will do it
# for you if you named the group 'palm':
cat doc/60-libpisock.rules | sed 's/dialout/palm/' > \
 /etc/udev/rules.d/60-libpisock.rules
#
# And if you're ready for it, restart udev.

## If you're using libusb:
## Now to list files on the Palm:
# pilot-xfer -p usb: -l
## To back up your Palm:
# pilot-xfer -p usb: -b $HOME/backup/palm

# If you will be using pilot-link as a non-root user, as you should be, make
# sure that the device that your Palm cradle is connected to is writeable by
# the users that should have access to it.  If you use static devices,
# change the permissions of the device file(s) in /dev, if you use udev,
# update your rules files in /etc/udev/rules.d to do it (or the change
# will go away when you re-place the Palm in the cradle or reboot).
#
# Make the static device file read/writeable by everyone:
#   Serial Palm cradle on /dev/ttyS0 (COM1):
#     chmod 666 /dev/ttyS0
#   USB Palm cradle:
#     chmod 666 /dev/ttyUSB0 /dev/ttyUSB1
#
# or another example - create a 'palm group', add users 'jason' and 'ann' to
# that group, and make the device read/write-able by root and the 'palm'
# group.  This is already taken care of in the libusb/udev example above.
#   getent group | grep "^palm:" > /dev/null 2>&1 || groupadd palm
#   gpasswd -a jason palm
#   gpasswd -a ann palm
#   chown root:palm /dev/ttyUSB0 /dev/ttyUSB1
#   chmod 660 /dev/ttyUSB0 /dev/ttyUSB1
#
# However you do it, keep in mind that if you run it as a non-root user in
# an X-Term, you may find that it doesn't work because it isn't obeying the
# secondary group.  Making it a login shell will fix that.  If you're logged
# in as 'jason', run "su - jason", then try it again.  Or run it as root. 
# Or change the permissions of the device (the static /dev/whatever or udev
# rules) to 666.

# With static device files, you can symlink the device so certain apps that
# use /dev/pilot as a default won't need configuration changes.  If you use
# libusb with udev, you don't need a symlink.  Instead, tell apps that are
# a front-end for pilot-link to run "pilot-xfer -p usb:" instead of using a
# device file.  If you do need a symlink to be created by udev, you can put
# a SYMLINK definition in the rules file.
#
# Create a symlink for a serial cradle static device file:
#   ln -sf /dev/ttyS0 /dev/pilot
# Create a symlink for a USB cradle static device file:
#   ln -sf /dev/ttyUSB1 /dev/pilot

# Set a few environment variables so pilot-link doesn't have to guess, and
# so you can use less commandline options.  This is not necessary if you
# use libusb.
cat << EOF > /etc/profile.d/pilot-link.sh
#!/bin/sh
PILOTPORT=/dev/pilot
PILOTRATE=115200
export PILOTPORT PILOTRATE
EOF
chmod 755 /etc/profile.d/pilot-link.sh

# Become yourself again
exit

# Update your non-root account's shell
test -f /etc/profile.d/pilot-link.sh && . /etc/profile.d/pilot-link.sh

cd
mkdir -p -m 0700 installed
rm -f installed/pilot-link-*.tar.*
mv pilot-link-0.12.1.tar.bz2 installed/

Back to the list


Last updated: Tue, 07 Aug 2018 12:06:17 -0400
Jason Englander <jason at englanders dot us>