Seiten

Posts mit dem Label GPS werden angezeigt. Alle Posts anzeigen
Posts mit dem Label GPS werden angezeigt. Alle Posts anzeigen

Samstag, 14. November 2015

Garmin Oregon manuell updaten (ohne WebUpdater)

Garmin stellt regelmäßig Firmware-Updates für die verschiedenen Geräte bereit. Dies ist durchaus praktisch, um Bugfixes oder Nachbesserungen zu erhalten.
Leider wird seitens Garmin der Weg über den hauseigenen WebUpdater bevorzugt, damit steh ich als Linux-Nutzer auf der Straße, denn der WebUpdater steht nur für Windows und Mac zur Verfügung.

Es gibt aber auch einen, wenn auch umständlichen, Weg die Firmware-Updates manuell durchführen zu können.

Welche Firmware-Version ist aktuell installiert?
Als erstes sollte man herausfinden, welche Firmware aktuell auf dem Gerät installiert ist.
Dies kann man durch einen Blick in ./Garmin/system.xml bzw. ./Garmin/GarminDevice.xml schnell beantworten.

system.xml:
<SoftwareVersion>
         Software Version 4.40
</SoftwareVersion>

GarminDevice.xml:
<SoftwareVersion>
         440
</SoftwareVersion>

Welche Firmware-Version ist die aktuellste von Garmin?
Dies lässt sich über das ChangeLog von Garmin herausfinden:
Oregon 6x0: http://www8.garmin.com/support/download_details.jsp?id=6157
In diesen Bsp. die Versionsnummer 4.60

Oregon 7xx: https://www8.garmin.com/support/download_details.jsp?id=10379
In diesen Bsp. die Versionsnummer 4.00

Wie lädt man die aktuelle Firmware herunter?
Der Link zum Download ist:
http://download.garmin.com/software/Oregon6x0_WebUpdater__XYZ.gcd
http://download.garmin.com/software/Oregon7xx_WebUpdater__XYZ.gcd

Wobei XYZ durch die jeweilige Versionsnummer zu ersetzen ist.
In dem o.g. Bsp. wäre der Link also:
http://download.garmin.com/software/Oregon6x0_WebUpdater__460.gcd
http://download.garmin.com/software/Oregon7xx_WebUpdater__400.gcd

Wie spielt man die heruntergeladene Datei aufs Gerät?
Die heruntergeladene Datei "Oregon6x0_WebUpdater__XYZ.gcd" muss in "GUPDATE.GCD" umbenannt werden.
Anschließend muss sie ins Verzeichnis ./Garmin auf das Gerät kopiert werden.

Update-Installation durchführen
Das Gerät muss ordentlich aus dem System ausgebunden und das USB-Kabel entfernt werden.
Danach startet man das Gerät über den Einschalt-Knopf. Ab jetzt wird das Update installiert und das Gerät darf bis zur Fertigstellung der Installation keines Falls ausgeschalten werden.

Fertig.

Montag, 1. Juni 2015

Skript mit grafischer Oberfläche automatisch starten, wenn USB-Gerät angeschlossen wird - Automatischer PQ-Download

Da mir es langsam auf den Keks geht, dass ich die erstellen Pocket Queries (PQ) von der Geocaching-Seite alle einzeln herunterladen und entpacken muss, wollte ich das ganze skripten.
Da der Download aber mit der neuen GC-API nicht mehr per wget möglich ist, brauch ich dazu Software, die mit der API kommunizieren kann, die fand ich schnell: http://geo.rkkda.com/ - hier das Untertool geo-pqdownload. 
Das passende Skript, das die PQ herunter lädt, entpackt und aufs Garmin kopiert, war auch schnell geschrieben; um das ganze hab ich noch ne grafische Oberfläche gepackt, damit ich weiß, dass der Vorgang noch läuft.

Nun soll das Skript immer dann starten, wenn ich mein Garmin an den Laptop anschließe und zwar ohne ein Passwort eingegeben zu müssen. Das stellte mich vor das Problem, dass das Skript so als root und nicht mit dem angemeldeten Benutzer gestartet wird, so dass ich weder Dateiberechtigungen, noch eine grafische Oberfläche bekomme.

Lösungsweg:

1. Als erstes muss man Details zum eingebundenen Gerät einholen. Dabei hilft dieser Befehl:
sudo blkid -o list -w /dev/null 
Beispiel-Ausgabe:
device                 fs_type        label             mount point                           UUID
--------------------------------------------------------------------------------------------------------------------------
/dev/sda1            vfat                                  /boot/efi                             43F4-DFAE
/dev/sda2            ext2                                 /boot                                   56acf68d-2c5b-4b69
/dev/sdd              vfat             GARMIN        /media/<user>/GARMIN         abcd-1234

2.  Als nächstes muss das entsprechende Gerät in /etc/fstab definiert werden:
UUID=abcd-1234       /media/<user>/GARMIN     vfat noauto,users,noatime,rw,sync    0       0

3. Um nun das ganze Skript automatisch auszuführen muss man eine udev-Regel erstellen.
3a) Dazu muss man vorbereitend die Geräteinformationen ermitteln:
lsusb
Beispiel-Ausgabe:
Bus 003 Device 006: ID abcd:1234 Garmin International

3b) Detailinformationen zum Gerät ermitteln:
sudo lsusb -vs  003:006 
So erhält man u.a. den Eintrag zur Seriennummer:
iSerial                  xxxxxyyyy1234
3c) Nun kann man im Verzeichnis: /etc/udev/rules.d eine neue Regel erstellen, z.B.: Garmin.rules
KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{serial}=="xxxxxyyyy1234", SYMLINK+="GARMIN", ACTION=="add", RUN+="/home/<user>/Skripte/UpdatePQ_Helper.sh"
Wobei hier ein Gerät mit
  • Kernel-Einhängepunkt: /dev/sd?1
  • vom Typ: USB
  • mit der Seriennummer: xxxxxyyyy1234
  • Dateisystem-Einhängepunkt: GARMIN
  • Aktion: Hinzufühen (ADD)
gesucht wird. Sind alle Bedingungen erfüllt wird mit RUN das angegebene Skript gestartet - bei mir ein Hilfsskript.

4. Skriptaufruf
Ein Direktaufruf des Skripts ist nicht möglich, da so die grafische Oberfläche nicht sichtbar ist und wie o.e. nur mit root-Rechten ausgeführt wird.

Im Hilfsskript ist der Inhalt hier nur:
#!/bin/bash
#UpdatePQ_Helper.sh
DISPLAY=:0 LANG=de_DE.UTF-8 su -c /home/<user>/Skripte/UpdatePQ.sh <user>
DISPLAY=:0 LANG=de_DE.UTF-8 braucht man zwingend für die grafische Oberfläche.
Der zweite Teil lässt das eigentliche Skript mit einem bestimmten Benutzer ausführen.

Das Hilfsskript und das eigentliche Skript müssen noch ausführbar gemacht werden:
chmod a+x ~/Skripte/UpdatePQ.sh ~/Skripte/UpdatePQ_Helper.sh

5. Gerät anschließen
Schließt man nun das Gerät an, wird dieses automatisch eingehängt, das Skript gestartet und am Ende wieder ausgehängt.

Färtsch.

P.S. Um das alles herauszufinden, war doch ein wenig Google-Hilfe nötig, daher auch der Blogeintrag, sonst muss ich das wieder alles einzeln ermitteln, wenn ich mein System das nächste Mal neu aufsetze.

Donnerstag, 28. Mai 2015

Hardreset für Garmin GPS Oregon 600

Mein Garmin Oregon 600 entwickelte mit der Zeit ein Eigenleben, die Kartenansicht sprang rum, es wurden zufällig Geocaches als Ziel gewählt oder Menüeinträge wurden während der Navigtion zufällig ausgewählt. Das war teilweise so schlimm, dass ich nicht mal mehr Ziele in 1km-Umkreis ansteuern konnte. Zunächst versuchte ich durch Firmware-Updates und Zurücksetzen auf Werkseinstellungen das Problem zu lösen, leider brachte dies keinen Erfolg. Auch eine Google-Suche half mir nicht weiter. Also musste ich notgedrungen den Garmin-Support anschreiben und bekam folgende Hilfsanleitung:
Führen Sie bitte einen sogenannten Hardreset durch um das Gerät auf die Werkseinstellungen zurückzusetzen. Beachten Sie, dass persönliche Einstellungen und Daten hierdurch verloren gehen.
1. Schalten Sie das Gerät aus.
2. Drücken Sie die Benutzertaste (unter der Einschalttaste) und halten diese gedrückt.
3. Schalten Sie das Gerät ein.
4. Sobald die Frage "Wirklich alle Benutzerdaten löschen?" erscheint, können Sie die Benutzertaste loslassen.
5. Beantworten Sie die Frage mit "Löschen/Erase".
Stellen Sie bitte sicher, dass auf Ihrem Gerät die aktuellste Gerätesoftware installiert ist.

Diese Lösung funktioniert. Ich habe dies nun vier Wochen lang getestet und habe nicht noch einmal den Effekt gehabt, dass das Oregon 600 eigenmächtig handelt.