Garmin etrex LEGEND HCx und OpenSuse 11.1 bzw. (k)ubuntu 10.04

warning: fread(): Length parameter must be greater than 0 in /var/www/elchs-kramkiste.de/lapurd/includes/common.inc(1695) : eval()'d code on line 19.

Das Garmin etrex LEGEND HCx wollte ich an einem OpenSuse 11.1 System benutzen (Tracks auslesen usw.). Als Software habe ich QLandkarte GT per 1-Klick für OpenSuse installiert. Nach dem Anstöpseln des Garmin beschwerte sich das Programm jedoch über Probleme beim Zugriff auf die USB- bzw. serielle Schnittstelle.

Die System-Meldungen sahen aber schon mal gut aus:

kernel: usb 4-2: new full speed USB device using ohci_hcd and address 7
kernel: usb 4-2: configuration #1 chosen from 1 choice
kernel: usb 4-2: New USB device found, idVendor=091e, idProduct=0003
kernel: usb 4-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
kernel: usbserial: USB Serial support registered for Garmin GPS usb/tty
kernel: garmin_gps 4-2:1.0: Garmin GPS usb/tty converter detected
kernel: usb 4-2: Garmin GPS usb/tty converter now attached to ttyUSB0
kernel: usbcore: registered new interface driver garmin_gps
kernel: garmin_gps: garmin gps driver v0.31

Kurze Recherche im Internet:

Die Rechte auf des Device werden nicht richtig gesetzt. Abhilfe schafft das Erstellen einer Datei /etc/udev/rules.d/51-garmin.rules mit folgendem Inhalt:

SYSFS{idVendor}=="091e", SYSFS{idProduct}=="0003", MODE="666"

Jetzt kam es in QLandkarte GT beim Abrufen der Tracks auf dem Garmin zur Meldung, dass die Zugriffe auf das Device geblockt werden. Abhilfe schafft hier temporär in einer Konsole (als root) der Befehl:

rmmod garmin_gps

Dadurch wird der Gerätetreiber bzw. das Kernel-Modul wieder entladen, so dass QLandkarte GT freien Zugriff darauf hat.

Um sein System dauerhaft am Laden des Treibers garmin_gps zu hindern, muss folgender Eintrag in die Datei /etc/modprobe.d/blacklist gemacht werden:

blacklist garmin_gps

Nun klappt es sofort nach jedem Anstöpseln des Garmin etrex.

Hinweise:

  • Um auf die Tracks im Garmin etrex zugreifen zu können, genügt das einfache Anschließen per USB-Kabel. Erst wenn man auf die Daten der Micro-SD-Karte des Garmins zugreifen möchte, muss man im Menü die Verbindung zum PC einschalten.
  • Der Datentransfer per USB ist sehr langsam (USB 1 im Garmin). Bei umfangreichen Aktionen, z.B. um die Deutschlandkarte von OSM (oder direkt von hier, gesamt ca. 900 MByte) auf die SD-Karte zu kopieren, ist es viel schneller, die SD-Karte direkt in einem Cardreader zu beschreiben.
  • Die OSM-Karte(n) für das Garmin etrex Legend HCx muss / müssen in einem Verzeichnis /Garmin auf der SD-Karte abgelegt werden.
  • Einige der o.a. Hinweise gelten auch für (k)ubuntu (10.04) - nicht aber der "blacklist"-Eintrag, der ist dort schon vorhanden,
  • Skript zum auslesen der Track- und Waypoints per gpsbabel und speichern als GPX-Dateien

    Kopieren Sie sich den Inhalt des u.a. Skripts per Cut & Paste in eine Textdatei, z.B. "garmin2pc.sh", speichern diese an einem beliebigen Ort (vorzugsweise ~) und machen die Datei ausführbar. Verbinden Sie Ihr Garmin-Gerät mit dem PC und starten das Skript in einer Konsole .

    Es erzeugt (einmalig) ein Verzeichnis gpxfiles in Ihrem Home-Verzeichnis, darin ein Verzeichnis mit dem aktuellen Datum als Namen (Format JJJJ.MM.TT) und speichert dort hinein alle auf Ihrem Garmin vorhandenen Track- und Waypoint-Daten in entsprechend benannte GPX-Dateien, welche Sie dann z.B. in JOSM weiter verwenden können. Nicht (mehr) einzulesende Daten müssen also vorher auf Ihrem Garmin-Gerät gelöscht werden.

    Da dieses Skript keine schöpferische (Eigen-)Leistung darstellt, steht es Ihnen frei, es für Ihre Belange zu ändern oder zu verwenden.

    #!/bin/bash
    datum=$(date +"%Y.%m.%d") 
    cd ~
    if test -d gpxfiles
      then
        # change to working directory
        cd gpxfiles
      else
        # create directory gpxfiles
        mkdir gpxfiles
        # change to working directory
        cd gpxfiles
      fi
    # create directory with name in $datum
    mkdir $datum
    # change to this directory
    cd $datum
    # reading waypoints 
    gpsbabel -D9 -w -i garmin -f usb: -o gpx -F WP$datum.gpx
    # reading trackponts
    gpsbabel -D9 -t -i garmin -f usb: -o gpx -F TP$datum.gpx