Das GPS Garmin etrex Venture HC unter Linux verwenden

Seit einigen Monaten besitze ich einen GPS Empfänger -den Garmin etrex Venture HC- den ich natürlich wieder nur unter Linux zu betreiben versuche. Meine Erkenntnisse und Erfahrungen fasse ich in diesem Artikel zusammen, in der Hoffnung andere mögen es als nützlich erachten und können sich dadurch eventuell viel Sucherei im Web ersparen. Die Informationen und verschiedenen Möglichkeiten sind zum Thema Garmin sehr weit gefächert und wenig übersichtlich im Web vorhanden.

Der Garmin etrex Venture HC besitzt eine USB-Schnittstelle, ein Farbdisplay, aber keine SD-Karte, die man einfach zu Datenübertragungszwecken aus dem Gerät entfernen könnte. Daher ist man auf die Programme angewiesen, die es ermöglichen mit dem Gerät direkt zu kommunizieren.

Das Gerät unter Linux einrichten (Systeme mit udev, bei mir unter gentoo)

Zunächst muss die Kernelunterstützung für Garmin aktiviert werden. Dies geschieht indem man den Kernelparameter CONFIG_USB_SERIAL_GARMIN aktiviert. Ich habe ihn auf m für Kernelmodul gesetzt, um steuern zu können wann das Modul verwendet werden soll und wann nicht. Dies stellt sich im weiteren Verlauf als nützlich heraus. Vertragen doch nicht alle Programme die Unterstützung dieses Kernelmoduls.
Der Parameter findet sich im xconfig unter USB support / USB Serial Converter support / USB Garmin GPS Driver.

Nach Kompilation des Kernels bleibt noch eine entsprechende udev Regel einzutragen. Dies geschieht in der Datei /etc/udev/rules.d/51-garmin.rules, die wie folgt aussieht

SUBSYSTEM!="usb|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"

Damit wird dafür gesorgt, dass die Rechte auf 0660 und die Gruppenzugehörigkeit auf plugdev gesetzt wird, sobald das Gerät erkannt und einem Devicenode (z.B. /dev/ttyUSB0) zugeordnet wird. Jeder User, der auf das Gerät zugreifen soll, muss in der plugdev Gruppe sein, sonst wird er keine Berechtigung haben auf das Gerät zu zugreifen.

Um zu verhindern, das Linux das Kernelmodul automatisch lädt, kann man in der Datei /etc/modprobe.d/blacklist noch eine Zeile „blacklist garmin_gps“ hinzufügen. Jetzt muss das Kernelmodul bei Bedarf manuell mit „modprobe garmin_gps“ geladen werden.

Zugriff auf Waypoints, Tracks und Routes

Für die Verarbeitung von Wapoints (neudeutsch für Wegpunkte), Tracks und Routes habe ich eine kleinere Auswahl an Programmen ausprobiert (gpsbabel, qlandkarte, MapSource). Voranstellen möchte ich ,dass die Trackaufzeichnung am GPS Empfänger auf jeden Fall ausgeschaltet sein sollte. Bei mir führte das eingeschaltete Tracking zu unregelmäßigen Fehlern bei der Übertragung von und zum GPS Empfänger und interessanten Nebeneffekten (auf einmal waren alle POIs weg, dann wieder da).

Für die Verwendung von gpsbabel und qlandkartegt darf das Kernelmodul garmin_gps nicht geladen sein.
Für die Verwendung von MapSource mittels wine muss es geladen sein.

gpsbabel (bei mir in der Version 1.3.6) ist ein Kommandozeilentool, das vielfältige Konvertierungsmöglichkeiten der verschiedenen Formate ineinander und die Unterstützung für die Übertragung der Daten von und an den GPS Empfänger anbietet. Die folgende Kommandozeile empfängt alle Waypoints vom GPS Empfänger und speichert sie als GPX Datei ab.

gpsbabel -w -i garmin -f usb: -o gpx -F waypoints.gpx

Eine GPX-Datei kann man dann wieder wie folgt auf den GPS Empfänger übertragen

gpsbabel -w -i gpx -f waypoints.gpx -o garmin -F usb:

Zur Übertagung der Tracks wird das -w durch -t ersetzt. Für die Routes verwendet man -r an Stelle von -w.
Die ganzen Formate und wie gpsbabel konvertiert sind sehr gut auf der Homepage beschrieben.

qlandkartegt bietet ein grafisches Frontend, unterstützt in der aktuell vorliegenden Version (0.14.1) jedoch nicht die Verarbeitung von Routes. Der Schwerpunkt dieser Anwendung liegt mehr im Kartenbereich.

MapSource wird von Garmin mit ausgeliefert und ist nur unter Windows bzw. unter der Windows-Emulation wine lauffähig. Dafür arbeitet man mit MapSource am einfachsten und mit wenig Einarbeitungsaufwand. Darüber hinaus unterstützt MapSource auch Karten (s.u.). Damit hat man also alle benötigten Übertragungsfunktionen in einer Software, was mich davon überzeugt hat mit MapSource zu arbeiten.
gpsbabel verwende ich zur Konvertierung von durch MapSource nicht unterstützten Formaten.
Zur Einrichtung von MapSource habe ich wine Version 0.9.57 und MapSource Version 6.13.7 verwendet.
Wichtig ist es einen Link von der emulierten com1 Schnittstelle auf das GPS Device zu setzen.
Dies erreicht man am Einfachsten mit ln -sf /dev/ttyUSB0 com1 im Verzeichnis ~/.wine/dosdevices.
Welches Device zugeordnet wurde kann man im Systemlog zum Beispiel mit dmesg erkennen

Karten aus dem OpenStreeMap Projekt für MapSource konvertieren

Jetzt fehlt nur noch die Möglichkeit andere Karten auf das Gerät zu spielen. Das Projekt Openstreetmap bietet ein unglaublich großes und detailliertes Kartenwerk von Deutschland, Europa und der Welt. Das Projekt speichert die Karten im projekteigenen OSM Format. Der Download einer Karte für einen gezielt ausgesuchten Bereich erfolgt sehr intuitiv über die Registerkarte Export. Als Donwloadformat wählt man OpenStreetMap-XML-Daten. Im nächsten Schritt wird die Datei im OSM Format in das Garmin img Format konvertiert. Dazu verwendet man die Software mkgmap. mkgmap bietet eine Vielzahl an Optionen und Möglichkeiten. Für eine einfache Konvertierung ruft man einfach „mkgmap dateiname.osm“ auf und erhält eine neue img Datei.
Da MapSource nur Karten anzeigt und überträgt, die auch registriert sind, muss die neue Karte mit dem MapSetToolkit bei MapSource registriert werden.
Auch das MapSetToolkit ist eine Windows Anwendung, funktioniert aber einwandfrei mit wine und kann sehr einfach mit wine MapSetToolkit.exe gestartet werden. Im folgenden Dialog muss man nur die img Datei aussuchen und ein paar Felder mit Namen und Ids (bisher war es ziemlich egal was ich da eingetragen hab) füllen und dann auf Starten klicken.
Im Anschluss ist die Karte über MapSource direkt verfügbar und kann in der Auswahlliste oben rechts einfach ausgewählt werden. Die Übertragung erfolgt aus MapSource heraus über das Menü „Übertragen“ und den Menüpunkt „An Gerät senden…“. Nach meinen Erfahrungen sollte man den GPS Empfänger vor jeder Übertragung einmal aus und wider einschalten. Ich weiß nicht warum, aber bei mir bleibt dann die Übertagung nicht mehr hängen, wie es manchmal vorkommt, wenn ich das nicht tue.

Als nächsten Schritt werde ich versuchen gezielt POI’s in die OSM Dateien einzubauen und die dann zu konvertieren und aufzuspielen. Ich werde darüber berichten, wenn es gelungen ist.

Kommentare

  1. Thomas:

    Moin,
    dein Blog eintrag hat mir sehr geholfen, danke fürs verfassen :)

    grüße thomas

    Antworten

  2. mart:

    Zitat: „Um zu verhindern, das Linux das Kernelmodul automatisch lädt, kann man in der Datei /etc/modprobe.d/blacklist noch eine Zeile “blacklist garmin_gps” hinzufügen.
    Jetzt muss das Kernelmodul bei Bedarf manuell mit “modprobe garmin_gps” geladen werden. “
    :yahoo:

    nee mal im ernst, ein gelungener beitrag!
    allerdings widersprichst du dir im oben genannten zitat selbst…
    wie wäre es mit : sudo rmmod garmin_gps ?
    cya
    mart

    Antworten

    • webmaster:

      hallo Mart,
      gemeint ist es anders. wenn du zwei absätze nach unten liest, dann wird es deutlicher. je nachdem welche software du verwenden möchtest, muss das modul geladen sein oder eben nicht. ich wähle dazu den weg über die blacklist, sicherlich kann man das auch mit rmmod umgekehrt machen. dann würde man sagen: das modul wird automatisch geladen und kann bei bedarf mittels rmmod entfernt werden. hast du beide wege probiert? funktioniert es?

      gruß, hans

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

:bye: 
:good: 
:negative: 
:scratch: 
:wacko: 
:yahoo: 
B-) 
mehr...
 
ALL-INKL.COM - Webhosting Server Hosting Domain Provider Blogverzeichnis - Blog Verzeichnis bloggerei.de