GPS Support#
Table of Contents
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#
Some more info on http://www.gpsbabel.org/os/Linux_Hotplug.html
To allow the USB devices to be read and written by a non-privileged user, create a file called /etc/udev/rules.d/51-garmin.rules with the following contents:
SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", MODE="666"
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
To make sure it doesn't get loaded after the next reboot, add the following to /etc/modprobe.d/blacklist:
# this driver is in the way for GPSBabel blacklist 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
So I first rebooted, to make sure that the garmin_gps driver is not loaded, and that the permissions for the usb device files are correct. After that I can also transfer waypoints to/from my Garmin device without the need to use root privileges.
A few examples:#
- Send (just downloaded .loc file to usb device gpsbabel -i geo -o garmin gcjpq0.loc usb:
- Download (backup) all WP's from usb device to local file gpsbabel -i garmin -o geo usb: allwaypoints.loc
- Download (backup) all WP's, tracks and routes from usb device to local file (with some debugging) gpsbabel -r -t -D1 -i garmin -o geo usb: allstuff.loc
metskem@bismarck:~/gc$ gpsbabel -r -t -D1 -i garmin -o geo usb: allstuff.loc GPSBabel Version: 1.3.3 Unit: GPSMap60CSX Software Version 3.30 ID: 292 Version: 3.30 Capability A10: Capability A100: D110 Capability A201: D202 D110 D210 Capability A301: D312 D302 Capability A400: D110 Capability A500: D501 Capability A600: D600 Capability A601: D601 Capability A700: D700 Capability A800: D800 Capability A801: D801 Capability A900: Capability A902: Capability A903: Capability A904: Capability A907: D907 D908 D909 D910 Capability A908: D911 Capability A914: Capability A916: Capability A917: D917 Capability A918: D918 Capability A1010: Capability A1011: Link_type 1 Device_command 0 Waypoint: Transfer 100 Type 110 Route: Transfer 201 Header 202 Type 110 Track: Transfer 301 Type 302 Waypoint type: 110 Chosen waypoint length 14 cet_util: Converting from "CP1252" to "UTF-8", done.
