Garmin Etrex H mit QLandkarteGT unter Kubuntu 10.10

Nachricht
Autor
Heinz

Garmin Etrex H mit QLandkarteGT unter Kubuntu 10.10

#1 Beitrag von Heinz » 19. Apr 2011 16:49

Hallo allerseits,

ich möchte o.g. GPS-Empfänger an meinem PC benutzen, dazu hab ich mir ein USB-Kabel besorgt. Unter Windows 7 funktioniert es wunderbar; allerdings möchte ich es auch unter Linux zum Laufen bekommen.

Stecke ich das Kabel ein, erscheint in /var/log/syslog

Code: Alles auswählen

2011-04-19 17:36:36	Lynx	kernel	[ 1002.705023] usb 3-1: new full speed USB device using uhci_hcd and address 2
2011-04-19 17:36:36	Lynx	kernel	[ 1002.912087] usbcore: registered new interface driver usbserial
2011-04-19 17:36:36	Lynx	kernel	[ 1002.912109] USB Serial support registered for generic
2011-04-19 17:36:36	Lynx	kernel	[ 1002.912140] usbcore: registered new interface driver usbserial_generic
2011-04-19 17:36:36	Lynx	kernel	[ 1002.912142] usbserial: USB Serial Driver core
2011-04-19 17:36:36	Lynx	kernel	[ 1002.926508] USB Serial support registered for pl2303
2011-04-19 17:36:36	Lynx	kernel	[ 1002.926535] pl2303 3-1:1.0: pl2303 converter detected
2011-04-19 17:36:36	Lynx	kernel	[ 1002.938210] usb 3-1: pl2303 converter now attached to ttyUSB0
2011-04-19 17:36:36	Lynx	kernel	[ 1002.938244] usbcore: registered new interface driver pl2303
2011-04-19 17:36:36	Lynx	kernel	[ 1002.938248] pl2303: Prolific PL2303 USB to serial adaptor driver 
In den QLandkarteGT-Einstellungen unter "Gerät/Datentransfer" hab ich es mit "Garmin", Serieller Anschluss "/dev/ttyUSB0" oder frei lassen und Typ "etrex h" probiert. Die Pakete garminplugin und qlandkartegt-garmin nebst Abhängigkeiten sind installiert.
So, möchte ich nun die Daten vom Gerät herunterladen, erscheint nur "Failed to download waypoints/tracks/routes. Failed to open serial device."

Was muss ich am Gerät noch einstellen (unter "Interface") und was im Programm?

Vielen Dank schon mal,

Heinz

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#2 Beitrag von Janka » 21. Apr 2011 20:30

Darf dieser Nutzer denn überhaupt auf /dev/ttyUSB0 zugreifen? Normalerweise muss er dazu in der Gruppe uucp oder dialout sein, je nach Distribution. Wie sind die Rechte auf das Device gesetzt?

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Heinz

#3 Beitrag von Heinz » 22. Apr 2011 8:17

Also, mein Nutzer ist in den Gruppen uucp und dialout, und die Rechte für /dev/ttyUSB0 sind Lesen und Schreiben für root und dialout.
Tja... :(

komsomolze
Beiträge: 430
Registriert: 03. Mär 2006 23:16

#4 Beitrag von komsomolze » 23. Apr 2011 14:53

Die USB-seriell-Adapter sind wohl häufig problematisch.

Ich kann über einen 08/15 (auch ein prolific) einen Abgastester nicht ansprechen.
Zwar auch nicht mit einem alternativ gekauften originalen FTDI UC232R.
(aber mit dem gibt es noch mehr Einstellungsoptionen (unter windows))
Funktioniert hat es letztendlich nur mit gewöhnlichen 16550, Onboard-Anschluß (bisher).

Mit anderen Modelle versuchen?


Funktioniert zumindest ein gewöhnliches 56k-Modem am seriellen Adapter?
(AT-Befehle per wvdial oder modem-cmd)
mfg komsomolze

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#5 Beitrag von Janka » 24. Apr 2011 9:20

komsomolze hat geschrieben:Ich kann über einen 08/15 (auch ein prolific) einen Abgastester nicht ansprechen.
Direkt mit dem RS232 auf K-Line? Das kann nicht funktionieren, weil K-Line zur Adressierung des Motorsteuergerätes ein Byte in 5 (in Worten : fünf) Baud sendet, damit auch das älteste lahmste Steuergerät mitbekommt, dass es in den Kommunikationsmodus gehen soll. Erst danach geht es mit 1200 Baud oder mehr weiter. Das klappt mit einem PL2303 oder FTDI natürlich nicht, weil die solche 5-Baud-Signale nicht erzeugen können.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

komsomolze
Beiträge: 430
Registriert: 03. Mär 2006 23:16

#6 Beitrag von komsomolze » 24. Apr 2011 10:07

Danke, Janka.
mfg komsomolze

Heinz

#7 Beitrag von Heinz » 26. Apr 2011 19:23

Hm... hat keiner einen Lösungsansatz? :( :?:

Heinz

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#8 Beitrag von Janka » 26. Apr 2011 21:40

Diese Anleitung verwendet gpsbabel: http://syslog.warten.de/2008/05/geocach ... rex-h.html
Da das ein Kommandozeilenprogramm ist, sollten sinnvolle Fehlermeldungen rauskommen.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Heinz

#9 Beitrag von Heinz » 28. Apr 2011 17:13

So, habs mal probiert und exemplarisch versucht, die Daten auf meinem Garmin in Google-Earth-Daten umzuwandeln:

gpsbabel -w -r -t -i garmin -f /dev/ttyUSB0 -o kml -F garmin.kml

Nix passiert! :? Keine Rückmeldung. Ich muss das Programm mit Strg+C abbrechen.

Am Gerät hab ich unter "Interface" alle I/O-Formate durchprobiert mit immer dem selben Ergebnis. Die Kernelmodule pl2303 und usbserial sind geladen.

Trozudem Danke für Deine Hilfe!

Heinz

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#10 Beitrag von Janka » 28. Apr 2011 18:23

Dann kannst du jetzt nochmal "strace" vor den Befehl schreiben und gucken, wo er genau hängenbleibt.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Heinz

#11 Beitrag von Heinz » 28. Apr 2011 20:17

Ausgabe von "strace gpsbabel -w -r -t -i garmin -f /dev/ttyUSB0 -o kml -F garmin.kml"; nur die letzte Zeile:

open("/dev/ttyUSB0", O_RDWR

Hier hängt es dann. Muss hier ebenfalls mit Strg+C abbrechen.
Falsche Baudrate? Falsches I/O-Format am Etrex eingestellt?

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#12 Beitrag von Janka » 28. Apr 2011 22:13

Wenn schon das open() auf /dev/ttyUSB0 hängt, funktioniert bereits USB-seitig irgendetwas nicht. Bitrate und sonstiges der RS232-Seite werden erst direkt danach mit dem nächsten Systemaufruf eingestellt.

Was sagt dmesg direkt nach dem Strg+C?

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Heinz

#13 Beitrag von Heinz » 30. Apr 2011 10:47

Nix!

Aber das Systemprotokoll sagt bei angestecktem Kabel

Code: Alles auswählen

30.04.2011 11:33:12	Lynx	modem-manager	(ttyUSB0) opening serial device...
30.04.2011 11:33:12	Lynx	modem-manager	(ttyUSB0): probe requested by plugin 'Generic'
...
30.04.2011 11:33:24	Lynx	modem-manager	(ttyUSB0) closing serial device...
30.04.2011 11:33:24	Lynx	modem-manager	(ttyUSB0) opening serial device...
...
30.04.2011 11:33:30	Lynx	modem-manager	(ttyUSB0) closing serial device...
Vielleicht kannst Du Dir da einen Reim drauf machen.

Benutzeravatar
Janka
Beiträge: 3581
Registriert: 11. Feb 2006 19:10

#14 Beitrag von Janka » 30. Apr 2011 11:50

Ja, kann ich. Da ist ein anderer Prozess "modem-manager", der sich beim Einstecken eines USB-RS232-Wandlers diesen schnappt und versucht den als Modem (UMTS/3G vermutlich) zu nutzen. Dadurch ist der Port natürlich besetzt.

Schalte mal den Network-Manager komplett ab und gucke ob es dann funzt.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Heinz

#15 Beitrag von Heinz » 30. Apr 2011 13:30

Also, es tut sich was.
Ich hab das Paket "modemmanager" gelöscht.

Wenn ich jetzt "strace gpsbabel -w -r -t -i garmin -f /dev/ttyUSB0 -o kml -F garmin.kml" mache, kommt als Ausgabe

Code: Alles auswählen

execve("/usr/bin/gpsbabel", ["gpsbabel", "-w", "-r", "-t", "-i", "garmin", "-f", "/dev/ttyUSB0", "-o", "kml", "-F", "garmin.kml"], [/* 42 vars */]) = 0
brk(0)                                  = 0x9954000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77ee000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=89715, ...}) = 0
mmap2(NULL, 89715, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb77d8000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libusb-0.1.so.4", O_RDONLY)  = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\22\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=31132, ...}) = 0
mmap2(NULL, 33980, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb77cf000
mmap2(0xb77d5000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5) = 0xb77d5000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libz.so.1", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\27\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=79476, ...}) = 0
mmap2(NULL, 82192, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb77ba000
mmap2(0xb77cd000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0xb77cd000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2604\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=149392, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77b9000
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7793000
mmap2(0xb77b7000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23) = 0xb77b7000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libexpat.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340!\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=157064, ...}) = 0
mmap2(NULL, 155692, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb776c000
mmap2(0xb7790000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x24) = 0xb7790000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@n\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1421892, ...}) = 0
mmap2(NULL, 1427880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb760f000
mmap2(0xb7766000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x157) = 0xb7766000
mmap2(0xb7769000, 10664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7769000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb760e000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb760e6c0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0xb7766000, 8192, PROT_READ)   = 0
mprotect(0xb7790000, 8192, PROT_READ)   = 0
mprotect(0xb77b7000, 4096, PROT_READ)   = 0
mprotect(0xb77cd000, 4096, PROT_READ)   = 0
mprotect(0xb77d5000, 4096, PROT_READ)   = 0
mprotect(0x8141000, 4096, PROT_READ)    = 0
mprotect(0xb780d000, 4096, PROT_READ)   = 0
munmap(0xb77d8000, 89715)               = 0
time(NULL)                              = 1304166115
time(NULL)                              = 1304166115
brk(0)                                  = 0x9954000
brk(0x9975000)                          = 0x9975000
open("gpsbabel.ini", O_RDONLY)          = -1 ENOENT (No such file or directory)
open("/home/hildebrandt/.gpsbabel/gpsbabel.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/local/etc/gpsbabel.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/gpsbabel.ini", O_RDONLY)     = -1 ENOENT (No such file or directory)
open("/proc/meminfo", O_RDONLY)         = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77ed000
read(3, "MemTotal:        3095616 kB\nMemF"..., 1024) = 1024
close(3)                                = 0
munmap(0xb77ed000, 4096)                = 0
open("/dev/ttyUSB0", O_RDWR)            = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_CONTINUE or TCSETSF, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 -opost -isig -icanon -echo ...}) = 0
ioctl(3, TCFLSH, 0x2)                   = 0
write(3, "\20\376\0", 3)                = 3
write(3, "", 0)                         = 0
write(3, "\2\20\3", 3)                  = 3
time(NULL)                              = 1304166115
time(NULL)                              = 1304166115
select(4, [3], NULL, NULL, {0, 1000})   = 1 (in [3], left {0, 983})
read(3, "\0", 1)                        = 1
write(2, "GPS_Packet_Read: No DLE.  Data r"..., 75GPS_Packet_Read: No DLE.  Data received, but probably not a garmin packet.
) = 75
write(2, "GARMIN:Can't init /dev/ttyUSB0\n", 31GARMIN:Can't init /dev/ttyUSB0
) = 31
exit_group(1)                           = ?
Über das Systemprotokoll kommt nur noch

Code: Alles auswählen

30.04.2011 13&#58;35&#58;49	Lynx	NetworkManager&#91;943&#93;	<info> trying to start the modem manager...

Antworten