Siduction Forum

Siduction Forum => Hardware - Support => Topic started by: der_bud on 2014/09/28, 13:40:08

Title: Garmin Etrex and gpsbabel: connection fails
Post by: der_bud on 2014/09/28, 13:40:08
Hi, does anybody know how to make gpsbabel (or others like viking or qlandkartegt) work together with a Garmin Etrex Vista HCx device? I tried nearly every advice I found for example
here Fixing USB permissions for Garmins in GPSBabel#Debian (http://www.gpsbabel.org/os/Linux_Hotplug.html#debian)
or here Debianforum - garmin etrex vista hcx mit qlandkarte verbinden (https://debianforum.de/forum/viewtopic.php?f=29&t=105997)
or here Ubuntuwiki - Garmin eTrex Serie (http://wiki.ubuntuusers.de/Garmin_eTrex_Serie)

The module garmin_gps is blacklisted and not loaded, in /etc/udev/rules.d/51-garmin.conf I tried (one after another with rebooting in between) each of the following three lines I found in web
Code: [Select]
#SUBSYSTEMS=="usb", ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="0666", GROUP="plugdev"                                                                       

#SUBSYSTEM!="usb_device", GOTO="garmin_rules_end" ACTION!="add", GOTO="garmin_rules_end" ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="0660", GROUP="plugdev" LABEL="garmin_rules_end"                                                                                                                                             

#SYSFS{idVendor}="091e", SYSFS{idProduct}="0003", MODE="0666", GROUP="plugdev"
My user is (beside others) member of the groups lp, dialout plugdev.

Symptoms:
I plug the device into the usb slot of my Thinkpad T60, and switch it on. Journalctl -f shows then:
Code: [Select]
Sep 28 13:03:43 sidtp kernel: usb 1-2: new full-speed USB device number 2 using uhci_hcd
Sep 28 13:03:43 sidtp systemd-udevd[184]: Network interface NamePolicy= disabled on kernel commandline, ignoring.
Sep 28 13:03:43 sidtp kernel: usb 1-2: New USB device found, idVendor=091e, idProduct=0003
Sep 28 13:03:43 sidtp kernel: usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Sep 28 13:03:43 sidtp mtp-probe[2478]: checking bus 1, device 2: "/sys/devices/pci0000:00/0000:00:1d.0/usb1/1-2"
Sep 28 13:03:44 sidtp mtp-probe[2478]: bus: 1, device: 2 was not an MTP device
and
Code: [Select]
lsusb
Bus 001 Device 002: ID 091e:0003 Garmin International GPS (various models)

But when I (no matter if root or user) issue via gui
Code: [Select]
gpsbabel -t -i garmin -f usb: -o gpx -F /home/martin/test.gpx
Claim interfaced failed: could not claim interface 0: Operation not permitted
Error running gpsbabel: Process exited unsucessfully with code 1

More verbose in terminal
Code: [Select]
gpsbabel -D9 -t -i garmin -f usb: -o gpx -F TP.gpx
GPSBabel Version: 1.5.0
TX [12]:00 00 00 00 05 00 00 00 00 00 00 00 ............(SESREQ  )
TX [12]:00 00 00 00 05 00 00 00 00 00 00 00 ............(SESREQ  )
TX [12]:00 00 00 00 05 00 00 00 00 00 00 00 ............(SESREQ  )
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)
RX (intr) [-110]:(CMDDAT  Abort)                                                                                                                                       
RX (intr) [-110]:(CMDDAT  Abort)                                                                                                                                       
Could not start session in a reasonable number of tries.

So the gpsbabel gui as well as viking and qlandkartegt do not upload or download gpx data to/from that Etrex. (If I leave out udev rules and do the same as above with /dev/ttyUSB0 instead of 'usb:' it's the same).

Any ideas?

Code: [Select]
System:    Host: sidtp Kernel: 3.16-3.towo-siduction-amd64 x86_64 (64 bit) Desktop: KDE 4.14.1
           Distro: siduction 13.2.0 December - kde - (201312310241)
Machine:   System: LENOVO product: 2008UGU v: ThinkPad T60
           Mobo: LENOVO model: 2008UGU Bios: LENOVO v: 79ETE7WW (2.27 ) date: 03/21/2011
CPU:       Dual core Intel Core2 T5600 (-MCP-) speed/max: 1000/1833 MHz
Graphics:  Card: Advanced Micro Devices [AMD/ATI] RV515/M52 [Mobility Radeon X1300]
           Display Server: X.Org 1.16.1 drivers: ati,radeon (unloaded: fbdev,vesa) Resolution: 1400x1050@60.02hz
           GLX Renderer: Gallium 0.4 on ATI RV515 GLX Version: 2.1 Mesa 10.2.6
Network:   Card: Qualcomm Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express)
           driver: ath9k
Drives:    HDD Total Size: 570.1GB (19.0% used) ID-1: model: Samsung_SSD_840
           ID-2: model: SAMSUNG_HM321HI
Info:      Processes: 144 Uptime: 8 min Memory: 443.5/3014.8MB Client: Shell (bash) inxi: 2.2.12
Title: Re: Garmin Etrex and gpsbabel: connection fails
Post by: michaa7 on 2014/09/28, 15:07:04
Apart from what you found googeling I found tree other solutions (?):

1)
Quote
I have a different Garmin model that works with this software, and I'm
just guessing: mine has an option in the GPS's own menus to switch the
USB mode between mass storage and something else; I've been using the
first one and it works fine (I can also copy/move the *.gpx files as
with any USB drive)
http://sourceforge.net/p/qlandkartegt/mailman/message/30114930/

2)
Quote
echo "SYSFS{idVendor}==\"091e\", SYSFS{idProduct}==\"0003\", MODE=\"0666\"" | sudo tee /etc/udev/rules.d/51-garmin.rules
http://forum.ubuntuusers.de/topic/garmin-etrex-venture-hc-an-usb-port/

3)
Quote
What I usually do, as I seldom transfer data to/from the GPS, is setting
the USB device permissions manually every time I plug the device. For example:

# lsusb
Bus 005 Device 003: ID 091e:0003 Garmin International GPS (various models)

# dmesg
[ 1621.781686] usb 5-1: USB disconnect, device number 2
[ 1652.160316] usb 5-1: new full-speed USB device number 3 using ohci_hcd

# ls -lrt /dev/bus/usb/005/003
crw-rw-r-- 1 root root 189, 514 Nov 17 22:20 /dev/bus/usb/005/003

As your can see , the USB device doesn't have write permissions for anyone
but the root user and group. Just give your user or anybody write
permissions, and you should be OK:

(I use ACL) # setfacl -m u:username:rw /dev/bus/usb/005/003
# chmod 666 /dev/bus/usb/005/003

Next, if everythign else is right, you should be able to access the Garmin
GPS from QLGT for both download and upload data to it.

http://sourceforge.net/p/qlandkartegt/mailman/message/30114930/

I hope one of these findings *is* a solution.
Title: Re: Garmin Etrex and gpsbabel: connection fails
Post by: der_bud on 2014/09/28, 19:12:07
Thx for your suggestions.
Re 1): The Etrex has an additional SD-Card that I can access with the method described (used for copying maps). But that does not help in accessing tracks, routes or waypoints in the internal memory.

Re 3): ls -lrt /dev/bus/usb/001/003
     crw-rw-rw- 1 root plugdev 189, 2 Sep 28 18:53 /dev/bus/usb/001/003
My user is member of plugdev, I alway tried to access as user and root, and my example gpsbabel-command is just for reading which should work.

Re 2): That udev rule already was amongst the ones I tries. But now i followed some of the links you gave in 1) and 2), and one lead me to a newer post at qlandkartegt, stating that rule was for pre-3.x kernels while newer need another syntax:
Quote from: http://sourceforge.net/p/qlandkartegt/qlandkartegt/Device_and_Transfer/
Newer kernels need a similar udev rules file, however with slightly different content.
You should enter:
ATTRS{idVendor}=="091e", ATTRS{idProduct}=="0003", MODE="0660", GROUP="plugdev"

I did that, to no avail. Meanwhile I know that I have no clue about syntax and writing of udev-rules. Searching the web I found the above one as well as one with ATTR (without S). And both versions I've seen with a 'SUBSYSTEM="usb"' or SUBSYTEMS=="usb" at the beginnig of the line. Tried all versions, no success :(
Title: Re: Garmin Etrex and gpsbabel: connection fails
Post by: michaa7 on 2014/09/28, 19:42:47
Sorry I coudn't help.

BTW, did you take notice of my last PM, (not re Garmin, but re MB+bücher)?
Title: [SOLVED] Garmin Etrex and gpsbabel: connection fails
Post by: der_bud on 2014/10/17, 10:11:26
Got it solved during LUG (https://www.lug-celle.de/) meeting with help of some mates who had that same problem earlier. The culprit was powermanagement settings that are effective when using tools like tlp (http://linrunner.de/en/tlp/tlp.html) or laptop-mode-tools (https://packages.debian.org/sid/laptop-mode-tools). When usb-autosuspend is set, the garmin understands that powermanagement is available and switches of usb power after ~2s.
To solve that, the usb device has to be blacklisted in powermanagement settings, for example

  - with laptop-mode-tools in /etc/laptop-mode/conf.d/usb-autosuspend.conf  (1 ) (http://www.hecticgeek.com/2012/06/fix-usb-mouse-not-working-laptop-mode-tools-ubuntu/):
Code: [Select]
AUTOSUSPEND_USBID_BLACKLIST="091e:0003"

  - with TLP in /etc/default/tlp.conf (2 ) (http://linrunner.de/en/tlp/docs/tlp-configuration.html#usb):
Code: [Select]
USB_BLACKLIST="091e:0003"

Worked for me :).