• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] GPS Recorder Transystems iBlue 747A+

A

Anonymous

Gast
Hallo zusammen,

ich habe mir vor ein paar Tagen für OSM einen GPS Recorder gekauft (den neuen iBlue 747A+ von Transystems).
Er hat im Gegensatz zu seinem Vorgänger iBlue 747 einen neuen Chipsatz von MTK:
Code:
#lsusb -v
Bus 001 Device 003: ID 0e8d:3329 MediaTek Inc.
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x0e8d MediaTek Inc.
  idProduct          0x3329
  bcdDevice            1.00
  iManufacturer           3 MTK
  iProduct                4 GPS Receiver
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           67
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0
      iInterface              1 GPS COM(data_if)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                28
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)
      iInterface              2 GPS COM(comm_if)
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

Eigentlich sollte das Gerät mit dem Modul cdc_acm bei mir unter Debian testing geladen werden, da er jedoch beim Laden des Moduls ein
Code:
cdc_acm: probe of 2-2:1.1 failed with error -22
zurückgibt, habe ich diese Seite gefunden: http://bt747.free.fr/content/?q=de/node/74 .
Es muss also
In the file, after the line:

{ USB_DEVICE(0x0e8d,0x0003), /* MediaTek Inc MT6227 */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},

You need to insert the following:

{ USB_DEVICE(0x0e8d, 0x3329), /* Qstarz BT-Q1300 */
.driver_info = NO_UNION_NORMAL, /* has no union descriptor */
},
in die Kernelsourcen bei drivers/usb/class/cdc-acm.c eingefügt werden.
Das Weitere (alle Module neu zu kompilieren und zu installieren) hat bei mir aber irgendwie nicht so richtig geklappt.
Also habe ich probeweise versucht komplett einen neuen Kernel zu kompilieren - mit der Anleitung auf http://wiki.ubuntuusers.de/Kernel hat das auch problemlos funktioniert - leider haben dann ein paar andere Sachen nicht richtig funktioniert, also habe ich mit den Anleitungen auf http://yoonkit.blogspot.com/2008/09/getting-aztech-um-3100-usb-modem-to.html und https://lists.ubuntu.com/archives/kernel-team/2008-December/003706.html versucht, nur das spezifische Modul zu kompilieren.
Scheint auch alles funktioniert zu haben, beim Einstecken der Hardware kommt aber
Code:
[  893.616201] usb 1-6: new full speed USB device using ohci_hcd and address 3
[  893.863121] usb 1-6: configuration #1 chosen from 1 choice
[  893.872038] usb 1-6: New USB device found, idVendor=0e8d, idProduct=3329
[  893.872043] usb 1-6: New USB device strings: Mfr=3, Product=4, SerialNumber=0
[  893.872046] usb 1-6: Product: GPS Receiver
[  893.872047] usb 1-6: Manufacturer: MTK
[  894.013531] cdc_acm: no symbol version for struct_module
beim manuellen Laden des Moduls
Code:
modprobe cdc_acm
FATAL: Error inserting cdc_acm (/lib/modules/2.6.26-1-amd64/build.save/drivers/usb/class/cdc-acm.ko): Invalid module format
bzw. (weiß nicht, warum er unter build.save nachsieht ...)
Code:
insmod /lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko
insmod: error inserting '/lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko': -1 Invalid module format

Das alte (wenigstens ladende) Modul hat folgende modinfo:
Code:
modinfo /lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko.old
filename:       /lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko.old
license:        GPL
description:    USB Abstract Control Model driver for USB modems and ISDN adapters
author:         Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik, David Kubicek
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip06*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip05*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip04*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip03*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip02*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip01*
alias:          usb:v0803p3095d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v22B8p7000d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0ACEp1611d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0ACEp1608d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v079Bp000Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0482p0203d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E8Dp0003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0870p0001d*dc*dsc*dp*ic*isc*ip*
depends:
vermagic:       2.6.26-1-amd64 SMP mod_unload modversions

Das neu kompilierte:
Code:
modinfo /lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko
filename:       /lib/modules/2.6.26-1-amd64/kernel/drivers/usb/class/cdc-acm.ko
license:        GPL
description:    USB Abstract Control Model driver for USB modems and ISDN adapters
author:         Armin Fuerst, Pavel Machek, Johannes Erdfelt, Vojtech Pavlik, David Kubicek
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip06*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip05*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip04*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip03*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip02*
alias:          usb:v*p*d*dc*dsc*dp*ic02isc02ip01*
alias:          usb:v0803p3095d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v22B8p7000d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0ACEp1611d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0ACEp1608d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v079Bp000Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0482p0203d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E8Dp3329d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0E8Dp0003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0870p0001d*dc*dsc*dp*ic*isc*ip*
depends:
vermagic:       2.6.26-1-amd64 SMP mod_unload modversions

So ich hoffe es war ausführlich genug ;).
Ich versteh jetzt einfach nicht, warum es nicht will ... und hab keine Ahnung wie ich weiterkomme :(.

Hat einer von euch eine Idee?

MfG. Mercedesdriver :)
 
OP
A

Anonymous

Gast
Kann es sein, dass hier jemand eine Antwort vom 28.04.2009 19:59 gelöscht hat!?!

Also trotzdem (nun unbekannter Weise) danke für eine Wiederauffrischung des Themas.
Beim Rumprobieren und Updaten konnte ich feststellen, dass seit Kernel 2.6.29 der Treiber cdc-acm entsprechend angepasst ist und nun der Transystems iBlue 747A+ "von Haus aus" funktioniert.
Mit mtkbabel können nun die GPS-Daten ausgelesen werden.

Vielen Dank für die Mühen.

MfG. Mercedesdriver :)
 

oelfi

Newbie
ja..ich wars.
Kollege hat es auf meinem Desktop rechner hinbekommen.
ich dachte ich hätte es...aber auf meinem Notebook und vorher auf meinem Desktop-rechner hatte ich genau die gleichen Probleme.

..bis jetzt fehlen mir die Fähigkeiten dieses Modul zu kompilieren (EXTRAVERSION im Makefile ist richtig, -11-generic)
..ich weiss noch nicht, wass ich falsch mache (kubuntu, 2.6.28-11-generic)
 

oelfi

Newbie
hah...ich habs.

Ich hatte Probleme,
mit meinen kernel-headers-2.6.28-11 und kernel-headers-2.6.28-11-generic bei Kubuntu 9.04 jaunty . Letzteres waren nur symbolische Links auf /usr/src/kernel-headers-2.6.28-11.

Dann habe ich die kernel-sourcen 2.6.28 installiert
alles auf /usr/src/linux-source-2.6.28 auf /usr/src/linux gelinkt

im Makefile in /usr/src/linux/ die EXTRAVERSION auf -11-generic gesetzt.

dann ging es super mit (in /usr/src/linux/)

make clean
make mrproper
cp /boot/config-2.6.28-11-generic .config
make oldconfig
make prepare
make modules
make modules_install
depmod -ae

modprobe -r cdc-acm
modprobe cdc-acm
 
Oben