Running JPilot as a normal user

I use the JPilot personal information management tool to access my Handspring Visor.

If you run JPilot as a normal (non-root) user and attempt to sync your handheld, you may see the following error message:

pi_bind Invalid argument
Check your serial port and settings
exiting with status -10


This is a permissions problem with your serial port device file in Linux. By default, the standard permissions on your serial ports in Red Hat Linux 8.0 are:

ls -ld /dev/ttyS0
crw-rw----    1 root     uucp       4,  64 Aug 30 18:31 /dev/ttyS0

In order to access the serial port as a normal user, you may (1) make yourself the owner of the /dev/ttyS0 device file or (2) make the /dev/ttyS0 device file world-writable. I chose the former, as making files (especially devices) world-writable should be avoided.

chown your_user_ID /dev/ttyS0

You should now be able to sync your handheld.

If you are using the USB cradle, you are likely using the /dev/ttyUSB0 or /dev/ttyUSB1 device files. If you are using the second serial port, the appropriate device file is /dev/ttyS1. Follow the steps above substituting these device files.

Note: you may choose to make a symbolic link named /dev/pilot that points to the appropriate serial or USB port.

ln -s /dev/ttyS0 /dev/pilot

Back to brandonhutchinson.com.

Last modified: 01/16/2003