GPS Support#

I have a Garmin GPSMap 60 CSX that I use for both Geocaching and as a Car navigation system.
Unfortunately, Garmin is reluctant to supply proper software for the linux platform, and now Garmin MapSource is the only reason for me to keep a Windows environment at hand.

I also needed a more convenient way to transfer waypoints to my Garmin device with Linux. Here a log of actions done in order to achieve that :

Install software#

GPSBabel#

This comes standard in the Ubuntu distribution and can be installed the usual way.

Garmin USB driver#

This driver (garmin_gps) is also included in the kernel, but in order for GPSBabel to work properly, it must be uninstalled: sudo rmmod garmin_gps
After plugging in my USB-connector, the following is displayed by lsusb:

root@bismarck:~/gc# lsusb
Bus 005 Device 003: ID 05e1:0501 Syntek Semiconductor Co., Ltd 
Bus 005 Device 001: ID 0000:0000  
Bus 003 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000  
Bus 002 Device 004: ID 091e:0003 Garmin International GPSmap (various models)
Bus 002 Device 003: ID 046d:c03e Logitech, Inc. Premium Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000  
Bus 004 Device 001: ID 0000:0000  

Now I can transfer waypoints, for example : gpsbabel -i garmin -f usb: -o geo -F test.loc copies all the waypoints from the Garmin device to the file test.loc. Nice ! \However, only when you're root, if you're not root, you get :

metskem@bismarck:~/gc$ gpsbabel -i garmin -f usb: -o geo -F waypoints.loc
usb_set_configuration failed, probably because kernel driver ''
 is blocking our access to the USB device.
For more information see http://www.gpsbabel.org/os/Linux_Hotplug.html