USB Gerät (I/O Board) wird nicht erkannt

@carbolineum
Danke für die ausführlichen Informationen. Zumindest weiß ich jetzt, daß ich mit einer 3070 mein Velleman-Board wohl ans Laufen bekommen sollte. Jetzt fehlt mir nur noch die passende Box...

carbolineum schrieb:
Ja, scheint definitiv damit zu tun zu haben. Es wird sowohl verschiedene Hardware verwendet, wie auch verschiedene Treiber, die 3070 benutzt usbohci.o, die 7170 usbahci.o. Da ja mit dem Kernel 2.6 die ahci-Treiber dabei sind, lässt sich da vielleicht eher was machen, wenns nicht doch ein HW-Problem ist ....
Hast Du schon einmal versucht, das 3070 ohci Module auf der 7170 ans Laufen zu bekommen?
Ich hatte schon einmal aus den 7170 Sourcen (Kernel 2.4.17) das ohci Module erstellt. Beim Laden mit "insmod" bekam ich aber immer eine Fehlermeldung "init_module: Invalid arguments"

Gibt's dazu vielleicht 'ne Idee?

GeenZ
 
Der usbohcicore.o braucht noch einen Parameter; siehe /etc/init.d/rc.USB:

Code:
insmod usbohcicore ohci_link=$CONFIG_USB_HOST_LINK

Es wurde dann geladen, aber gebracht hat das leider auch nichts.

Gruss carbolineum
 
carbolineum schrieb:
Der usbohcicore.o braucht noch einen Parameter; siehe /etc/init.d/rc.USB:

Code:
insmod usbohcicore ohci_link=$CONFIG_USB_HOST_LINK

Es wurde dann geladen, aber gebracht hat das leider auch nichts.
Was steht denn in der Variablen $CONFIG_USB_HOST_LINK drin?
Ich habe nur die 7170 und da gibt's die Variable nicht.

Hast Du es schon einmal mit dem usbohci Module auf der 7170 mit Kernel 2.6.13.1 probiert?
Ich hab's bisher noch nicht geschafft das passende Module aus den 7141 Sourcen zu generieren...

GeenZ
 
Die Variable wird mit "$(($CONFIG_VLYNQ1 - 1))" gefüllt, CONFIG_VLYNQ1 ist bei meiner 3070 2, aber auf der 7170 ging das glaube ich nur mit 0....

Ich bin gerade dabei, den usbahcicore mit debug zu kompilieren, villeicht sieht man dann mehr...


carbolineum
 
Das kam beim Debug heraus:

Wenn ich das HID-Gerät direkt an die 7170 stecke, kommt im Debug keine einzige Meldung. Dann habe ich mal eine USB-2.0-Hub drangesteckt und an diesen dann das HID-Gerät.

Dann kommt im Log das hier:

Code:
usb 1-1.3: new low speed USB device using ahci and address 10
new ahci_endpoint 94c1eda0 on dev#10

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 9513bbc0
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 9513bbc0:Free following Desc 1040 (index 1) after Error
complete urb 9513bbc0 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 9513bbc0
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 9513bbc0:Free following Desc 1040 (index 1) after Error
complete urb 9513bbc0 with st -145
usb 1-1.3: device not accepting address 10, error -145
ahci_endpoint_disable 94c1eda0 on dev#10
ahci_endpoint_disable 00000000 on dev#10

Jetzt müsste man nur noch wissen, warum da ein Error kommt ;)


carbolineum
 
carbolineum schrieb:
Jetzt müsste man nur noch wissen, warum da ein Error kommt ;)
In einfachsten Fall: Der AHCI unterscheidet nicht zwischen Low- und Full-Speed und nimmt nicht 1,5 Mbit, vertauschte Pegel,...

@carbolineum Kannst du nachschauen, ob "dev#10" für den Hub steht? Der könnte über seinen Interrupt Endpoint mit Full Speed ein Low Speed Device melden.
 
Ich habe hier nochmal alles mitgeloggt:

USB 2.0-Hub einstecken:
Code:
Frame #F86E: PortStatusChanged
UpdatePort Index 0: Status 0x10
AHCI_PortChangeFlags = 2
info drivers/usb/ahci/ahciroothub.c(260): FAILED: AHCI_PortChangeFlags == 0
Hub Int PortChangeFlags = 2
TIMER: root hub Int urb 94cf8560 completion
ahci_root_hub Int
USB_REQ_GET_STATUS Port 1
PortStatus and change 00010101
USB_REQ_CLEAR_FEATURE Port 0x0001
USB_REQ_CLEAR_FEATURE USB_PORT_FEAT_C_CONNECTION
USB_REQ_GET_STATUS Port 1
PortStatus and change 00000101
USB_REQ_GET_STATUS Port 1
PortStatus and change 00000101
USB_REQ_GET_STATUS Port 1
PortStatus and change 00000101
USB_REQ_GET_STATUS Port 1
PortStatus and change 00000101
USB_REQ_GET_STATUS Port 1
PortStatus and change 00000101
USB_SET_FEATURE Port 1 with value 0x0004
Frame #F9DF: PortStatusChanged
UpdatePort Index 0: Status 0x12
Frame #FA12: PortStatusChanged
UpdatePort Index 0: Status 0x11
AHCI_PortChangeFlags = 2
USB_REQ_GET_STATUS Port 1
PortStatus and change 00100103
USB_REQ_CLEAR_FEATURE Port 0x0001
USB_REQ_CLEAR_FEATURE USB_PORT_FEAT_C_RESET
usb 1-1: new full speed USB device using ahci and address 2
new ahci_endpoint 9539fda0 on dev#2
USB_SET_FEATURE Port 1 with value 0x0004
Frame #FA31: PortStatusChanged
UpdatePort Index 0: Status 0x12
AHCI_PortChangeFlags = 2
info drivers/usb/ahci/ahciroothub.c(260): FAILED: AHCI_PortChangeFlags == 0
Hub Int PortChangeFlags = 2
TIMER: root hub Int urb 94cf8560 completion
ahci_root_hub Int
Frame #FA64: PortStatusChanged
UpdatePort Index 0: Status 0x11
AHCI_PortChangeFlags = 2
USB_REQ_GET_STATUS Port 1
PortStatus and change 00120103
USB_REQ_CLEAR_FEATURE Port 0x0001
USB_REQ_CLEAR_FEATURE USB_PORT_FEAT_C_RESET
ahci_endpoint_disable 9539fda0 on dev#2
ahci_endpoint_disable 00000000 on dev#2
new ahci_endpoint 9539f4a0 on dev#2
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
info drivers/usb/ahci/ahciroothub.c(260): FAILED: AHCI_PortChangeFlags == 0
Hub Int PortChangeFlags = 2
TIMER: root hub Int urb 94cf8560 completion
ahci_root_hub Int
USB_REQ_GET_STATUS Port 1
PortStatus and change 00020103
USB_REQ_CLEAR_FEATURE Port 0x0001
USB_REQ_CLEAR_FEATURE USB_PORT_FEAT_C_ENABLE
new ahci_endpoint 94cf7120 on dev#2


Nun wurde das HID-Device eingesteckt:

Code:
usb 1-1.1: new low speed USB device using ahci and address 3
new ahci_endpoint 9539f3a0 on dev#3

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device descriptor read/64, error -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device descriptor read/64, error -145
ahci_endpoint_disable 9539f3a0 on dev#3
ahci_endpoint_disable 00000000 on dev#3
usb 1-1.1: new low speed USB device using ahci and address 4
new ahci_endpoint 94cf7fe0 on dev#4

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device descriptor read/64, error -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
urb 94cf8440:Free following Desc 1050 (index 2) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device descriptor read/64, error -145
ahci_endpoint_disable 94cf7fe0 on dev#4
ahci_endpoint_disable 00000000 on dev#4
usb 1-1.1: new low speed USB device using ahci and address 5
new ahci_endpoint 9539f3a0 on dev#5

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device not accepting address 5, error -145
ahci_endpoint_disable 9539f3a0 on dev#5
ahci_endpoint_disable 00000000 on dev#5
usb 1-1.1: new low speed USB device using ahci and address 6
new ahci_endpoint 94cf7fe0 on dev#6

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
complete urb 94cf8440 with st -145

RxBuffer[pos=0] = 50008102 StatusWord for Descr@0x1020: completed=1, status=5 Bytes = 0 urb 94cf8440
Descriptor @0x1020: 00000008 08260000 00201030 0000C104
urb 94cf8440:Free following Desc 1040 (index 1) after Error
complete urb 94cf8440 with st -145
usb 1-1.1: device not accepting address 6, error -145
ahci_endpoint_disable 94cf7fe0 on dev#6
ahci_endpoint_disable 00000000 on dev#6

Gruss carbolineum
 
Hi there!

Nach zwei Wochen FBF-Abstinenz (Urlaub) möchte ich das Thema 'mal wiederbeleben...

Ich habe meine FBF 7170 inzwischen wieder zurück auf die Firmware 29.04.15 (Kernel 2.4.17) geflasht und wollte noch einmal versuchen das usbohci Module zu laden.
Dabei traten folgende Probleme auf:

Mit
Code:
"insmod usbohcicore.o ohci_link=0"
gab's die Fehlermeldung:
Code:
Using usbohcicore.o
insmod: init_module: usbohcicore: No such device

und dmesg ergab:

Code:
USB 1.1 HOST: base a4010000, reset a4000200, clock a4000208, endian a400021c, IRQ 84, VLYNQ0
usb-ohci.c: USB OHCI at membase 0xa4010000, IRQ 84
OHCI Revision d2f7428b
usb-ohci.c: USB HC reset timed out!

Mit
Code:
"insmod usbohcicore.o ohci_link=1"
gab's die Fehlermeldung:
Code:
Using usbohcicore.o
insmod: init_module: usbohcicore: Device or resource busy

und dmesg ergab:

Code:
USB 1.1 HOST: base ac010000, reset ac000200, clock ac000208, endian ac00021c, IRQ 116, VLYNQ1
usb-ohci.c: USB OHCI at membase 0xac010000, IRQ 116
OHCI Revision 0
usb.c: new USB bus registered, assigned bus number 2
Error: Trying to register out of range IRQ 116.
usb-ohci.c: Could not claim interrupt 116
usb.c: USB bus 2 deregistered

Bei allen weiteren Zahlen ohci_link>1 gab's die Fehlermeldung:

Code:
Using usbohcicore.o
insmod: init_module: usbohcicore: Invalid argument

mit der dmesg Meldung:
Code:
Invalid VLYNQ index: 2.

Sagt dies vielleicht jemanden etwas mehr als mir?

Danke, GeenZ
 
Hallo carbolineum,

gibt es was Neues mit der Cleware IO und der AVM 7170

ich habe nämlich ein PC für die Aufzeichnung laufen den ich gerne abschalten möchte.

( wegen Stromverbrauch 100W ) läuft auf Parallelport

Oder gibt es was anderes Eingänge und Ausgänge was die AVM 7170 verarbeiten kann ???

Leider habe ich in Linux noch nicht den großen durchblick um die Hartware einzuflechten.

Dachte auch schon über die Lösung USB->Parallel Printer Adapter zur Steuerung nach.

Aber wie ansteuern die Eingänge und Ausgänge ??



Mit freundlichen Grüßen

Thomas
 
Dann nimm doch einfach eine der Status-LEDs. Optokoppler statt LED dran und schon kannst Du Deinen PC herunterfahren lassen...

Natürlich musst Du sicherstellen, daß die Original-Firmware die LED on Ruhe lässt - sonst schaltet sich Dein PC öfter ein- und aus als Dir lieb ist.. ;-)
 
7170 usb nur full speed, KEIN lowspeed

debugger schrieb:
In einfachsten Fall: Der AHCI unterscheidet nicht zwischen Low- und Full-Speed und nimmt nicht 1,5 Mbit, vertauschte Pegel,...
Habe mal testweise ein usb-Maus an die 7170 gesteckt (Laborfirmware, kernel 2.6.13) und lsusb laufen lassen: es wird nichts über die Maus angezeigt (im Gegensatz zu fullspeed-Modus Geräten); auch ohne Maustreiber Modul müsste die Maus als Device ohne Treiber erscheinen.

Fazit: der ahci von avm, d.h. die Hardware und/oder der zugehörige Kerneltreiber unterstützen low speed usb derzeit nicht.

Weiss jemand, ob usb <-> parallel Wandler normalerweise mit fullspeed laufen? Dann wäre dies eine Möglichkeit Wandlerkarten etc. anzusteuern.
(Der pl2303 usb <-> seriell Wandler lässt sich ansprechen)

spblinux
 
Neue Erkenntnisse - Neue Probleme!

Ich bin auch der Meinung, daß mit dem aktuellen AVM ahci-Treiber mit der 7170 keine lowspeed Devices funktionieren. Habe mir daher eine 3070 angeschafft, die ja einen 'richtigen' ohci-Treiber hat. Für mein Velleman Board bin ich nun auch einen Schritt weiter: Das Board wird nun korrekt erkannt:

dmesg ergibt:

Code:
hub.c: USB new device connect on bus1/1, assigned device number 4
hiddev0: USB HID v1.00 Pointer [Velleman  USB K8055] on usb1:4.0

Soweit, so gut!

Leider funktioniert mein Steuerprogramm noch nicht. Dieses basiert auf LIBUSB und scheitert beim Aufrufen der entsprechenden init() Routine mit folgendem (Debug-)Output:

Code:
/var/tmp/bin # ./k8055
Device->idVendor: 4303
Device->idProduct: 21760
Velleman Device Found @ Address 004 Vendor 0x010cf Product ID 0x05500
Got driver name: hid
Disconnect OS driver: could not detach kernel driver from interface 0: Function not implemented
Claim interface error: could not claim interface 0: Device or resource busy
Can not take over the device from the OS driver
Could not open the k8055 (port:0)
Please ensure that the device is correctly connected.

Fällt jemandem dazu evtl. mehr ein?

Frage an carbolineum: Verwenden die Programme, die Du portiert hast auch LIBUSB?

Danke, GeenZ
 
Hallo,


Tron schrieb:
gibt es was Neues mit der Cleware IO und der AVM 7170

Leider noch nicht :(


GeenZ schrieb:
Frage an carbolineum: Verwenden die Programme, die Du portiert hast auch LIBUSB?

Nein, das kommt ohne externe Libs/Tools aus, nur die entspr. Kernelmodule müssen geladen sein.


Gruss carbolineum
 
GeenZ schrieb:
Code:
/var/tmp/bin # ./k8055
Device->idVendor: 4303
Device->idProduct: 21760
Velleman Device Found @ Address 004 Vendor 0x010cf Product ID 0x05500
Got driver name: hid
Disconnect OS driver: could not detach kernel driver from interface 0: Function not implemented
Claim interface error: could not claim interface 0: Device or resource busy
Can not take over the device from the OS driver
Could not open the k8055 (port:0)
Please ensure that the device is correctly connected.

Könnte der Fehler evtl. etwas damit zu tun haben, daß das /dev/hiddev device auf der FB in einem Read-Only Filesystem abgelegt ist, die Treiber aber eigentlich auch schreibenden Zugriff benötigen? Wie könnte man das umgehen oder bin ich hier auf dem Holzweg??!?

GeenZ
 
Hallo,

GeenZ schrieb:
Könnte der Fehler evtl. etwas damit zu tun haben, daß das /dev/hiddev device auf der FB in einem Read-Only Filesystem abgelegt ist, die Treiber aber eigentlich auch schreibenden Zugriff benötigen? Wie könnte man das umgehen oder bin ich hier auf dem Holzweg??!?

Das wird nicht das Problem sein. Aber Du kannst ja mal mit "strace" schauen, was auf System-Call-Ebene passiert. Einfach das angehängte "strace" entpacken, auf die Box ins /tmp kopieren, chmod 755 drauf machen und mit

Code:
/tmp/strace -f -o /tmp/ausgabedatei ./k8055

aufrufen. Wenns Zugriffsrechts-Probleme wären, würde man das in der Ausgabedatei sehen... Vielleicht gibt es ja weiteren Aufschluß, wo es haengt.


Und was die 7170 betrifft, ohne AVM wird das bestimmt nix werden mit dem hiddev ... :|


Nachtrag; GeenZ, hast Du den hid-Treiber mit "HIDDEV" ( /dev/hiddev raw HID device support) kompiliert ?, wenn nicht, könnte das vielleicht das "function not implemented" erklären...

Gruss carbolineum
 

Anhänge

  • strace.gz
    94.5 KB · Aufrufe: 8
Zuletzt bearbeitet:
carbolineum schrieb:
Aber Du kannst ja mal mit "strace" schauen, was auf System-Call-Ebene passiert.
Super Tip! Danke.
Habe mein Programm einmal mit strace laufenlassen und folgenden Output erhalten:
Code:
1074  execve("/var/tmp/bin/k8055_2", ["/var/tmp/bin/k8055_2"], [/* 88 vars */]) = 0
1074  uname({sys="Linux", node="fritz.box", ...}) = 0
1074  fcntl64(0, F_GETFD)               = 0
1074  fcntl64(1, F_GETFD)               = 0
1074  fcntl64(2, F_GETFD)               = 0
1074  geteuid()                         = 0
1074  getuid()                          = 0
1074  getegid()                         = 0
1074  getgid()                          = 0
1074  brk(0)                            = 0x10006c4c
1074  brk(0x10007c4c)                   = 0x10007c4c
1074  brk(0x10008000)                   = 0x10008000
1074  gettimeofday({1160976546, 497000}, {0, 0}) = 0
1074  open("/dev/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x2000) = -1 ENOENT (No such file or directory)
1074  open("/proc/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x2000) = 3
1074  fstat64(3, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
1074  fcntl64(3, F_SETFD, FD_CLOEXEC)   = 0
1074  getdents64(0x3, 0x10006fa0, 0x400, 0x100073a4) = 136
1074  close(3)                          = 0
1074  open("/proc/bus/usb", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x2000) = 3
1074  fstat64(3, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
1074  fcntl64(3, F_SETFD, FD_CLOEXEC)   = 0
1074  getdents64(0x3, 0x10006fa0, 0x400, 0x100073a4) = 136
1074  brk(0x10009000)                   = 0x10009000
1074  getdents64(0x3, 0x10006fa0, 0x400, 0x100073b0) = 0
1074  close(3)                          = 0
1074  open("/proc/bus/usb/001", O_RDONLY|O_NONBLOCK|O_DIRECTORY|0x2000) = 3
1074  fstat64(3, {st_mode=S_IFDIR|0555, st_size=0, ...}) = 0
1074  fcntl64(3, F_SETFD, FD_CLOEXEC)   = 0
1074  getdents64(0x3, 0x10006fa0, 0x400, 0x100073a4) = 96
1074  brk(0x1000a000)                   = 0x1000a000
1074  open("/proc/bus/usb/001/001", O_RDWR) = 4
1074  ioctl(4, USBDEVFS_CONNECTINFO, 0x7fff72f0) = 0
1074  read(4, "\22\1\20\1\t\0\0\10\0\0\0\0\0\0\0\2\1\1", 18) = 18
1074  read(4, "\t\2\31\0\1\1\0@", 8)    = 8
1074  read(4, "\0\t\4\0\0\1\t\0\0\0\7\5\201\3\2\0\377", 17) = 17
1074  close(4)                          = 0
1074  brk(0x1000b000)                   = 0x1000b000
1074  open("/proc/bus/usb/001/003", O_RDWR) = 4
1074  ioctl(4, USBDEVFS_CONNECTINFO, 0x7fff72f0) = 0
1074  read(4, "\22\1\20\1\0\0\0\10\317\20\0U\0\0\1\2\0\1", 18) = 18
1074  read(4, "\t\2)\0\1\1\4\200", 8)   = 8
1074  read(4, "2\t\4\0\0\2\3\0\0\0\t!\0\1\0\1\"\35\0\7\5\201\3\10\0\n"..., 33) = 33
1074  close(4)                          = 0
1074  getdents64(0x3, 0x10006fa0, 0x400, 0) = 0
1074  close(3)                          = 0
1074  open("/proc/bus/usb/001/001", O_RDWR) = 3
1074  ioctl(3, USBDEVFS_IOCTL, 0x7fff72a0) = 3
1074  close(3)                          = 0
1074  open("/proc/bus/usb/001/003", O_RDWR) = 3
1074  ioctl(3, USBDEVFS_IOCTL, 0x7fff72a0) = -1 ENOSYS (Function not implemented)
1074  close(3)                          = 0
1074  write(2, "Device->idVendor: 0\n", 20) = 20
1074  write(2, "Device->idProduct: 0\n", 21) = 21
1074  write(2, "Device->idVendor: 4303\n", 23) = 23
1074  write(2, "Device->idProduct: 21760\n", 25) = 25
1074  open("/proc/bus/usb/001/003", O_RDWR) = 3
1074  write(2, "Velleman Device Found @ Address "..., 70) = 70
1074  ioctl(3, USBDEVFS_GETDRIVER, 0x7fff7150) = 0
1074  write(2, "Got driver name: hid\n", 21) = 21
1074  ioctl(3, USBDEVFS_IOCTL, 0x7fff7248) = -1 ENOSYS (Function not implemented)
1074  write(2, "Disconnect OS driver: could not "..., 96) = 96
1074  ioctl(3, USBDEVFS_CLAIMINTERFACE, 0x7fff726c) = -1 EBUSY (Device or resource busy)
1074  write(2, "Claim interface error: could not"..., 76) = 76
1074  write(2, "Can not take over the device fro"..., 48) = 48
1074  close(3)                          = 0
1074  fstat64(1, {st_mode=S_IFCHR|0622, st_rdev=makedev(136, 0), ...}) = 0
1074  old_mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2aaa8000
1074  write(1, "Could not open the k8055 (port:0"..., 88) = 88
1074  munmap(0x2aaa8000, 65536)         = 0
1074  exit(-1)                          = ?

Das Problem ist wohl: ioctl(3, USBDEVFS_IOCTL, 0x7fff72a0) = -1 ENOSYS (Function not implemented)
Nur, was kann man da machen?

carbolineum schrieb:
Nachtrag; GeenZ, hast Du den hid-Treiber mit "HIDDEV" ( /dev/hiddev raw HID device support) kompiliert ?, wenn nicht, könnte das vielleicht das "function not implemented" erklären...
Das Velleman-Board wird von der 3070 richtig erkannt. Beim Einstecken wird sowohl ein passendes Device "/dev/usb/hid/hiddev0" erzeugt als auch "/proc/bus/usb/001/003" (003 oder die jeweils aktuelle Device-Zuordnung).
Lediglich der Zugriff über die Programme, die die LIBUSB verwenden funktioniert nicht.

BTW: Ich habe mir übrigens einmal den Source Code der Cleware Programme angesehen. Die verwenden keine LIBUSB, sondern lesen und schreiben direkt über das "/dev/hiddev0" Device. Evtl. werde ich einmal probieren, ein Programm zu schreiben, daß das Velleman Board so anspricht...

carbolineum schrieb:
Und was die 7170 betrifft, ohne AVM wird das bestimmt nix werden mit dem hiddev ... :|
Tja, das habe ich auch schon versucht. Allerdings gab's vom Support immer nur die Standard Antwort "wird nicht von uns supported" oder ähnlich formuliert... Schade!

GeenZ
 
Hallo

Was mich mall interessiert hat die 3070 gegen die 7170 anderen USB Hartware verbaut,
Oder ist das nur die Software

Mit freundlichen Grüßen

Thomas
 
Nach einigen 100 Stunden "Dauerfrust" hab' ich's nun aufgegeben, mein Velleman USB-Board (k8055) mit einer Fritz!Box ans Laufen zu bekommen :-(
Es klappt einfach nicht. Ich vermute, daß die USB-Unterstützung des 2.4.17 Kernels auf der 3070 einfach zu buggy ist. Für die 7170 gibt's leider auch keinen passenden core-Treiber, so daß dort das Board erst gar nicht erkannt wird (auch mit dem 2.6er Kernel nicht).

Ich habe noch einige Erkenntnisse erlangt, bevor ich aufgegeben habe, die ich gerne mitteilen möchten.

1) Der HID Treiber wird für das Board nicht benötigt. Ich hatte sogar das HID Module aus dem 2.4.17er Kernel auf die Version 1.8.1 der 2.4.20er Version gepatch, bis ich gelernt habe, daß die Software des Velleman Boards das Device nicht über /dev/hiddev anspricht, sondern direkt über die Funktionen aus der LIBUSB. Ergo, dafür wird kein HID Module benötigt. Die einige Posts weiter oben stehende Fehlermeldung, daß das "Device busy" sei, war korrekt, da der HID-Treiber drauf saß. Wenn man das Board ohne geladenes hid.o Module angesprochen hat, kam die Fehlermeldung nicht mehr.

2) Die USB-Funktion "Claim Device" scheint auf der Fritz!Box nicht implementiert zu sein. Zumindest hat dies das strace Logging ausgegeben.

3) Die USB Implementierung ist zusammen mit der LIBUSB ziemlich buggy. Zwar haben die Testprogramme des LIBUSB Packages soweit korrekt funktioniert (Board wurde erkannt, Vendor und Produkt-ID waren korrekt, etc.) , wenn ich dann aber mit Funktionen das Board angesprochen habe, gab's jedesmal einen Systemabsturz und die 3070 hat sich neugebootet. Manchmal krachte es direkt, manchmal konnte ich noch ein oder zwei Daten auslesen und es dauerte einige Sekunden bevor dann wieder der Reboot kam. Insgesamt also völlig unbrauchbar.

Tja, ich hab' das Forschen nun abgebrochen. Zum einen wollte ich mein Board eigentlich nutzen und nicht zum Experimentierweltmeister aufsteigen und zum anderen habe ich gestern einfach 'mal kurz mein Board an einen ASUS WL-500gP angeschlossen. Hat sofort funktioniert!!!
Insgesamt habe ich nur ca. 30 min gebraucht, um den ASUS anzuschließen, OLEGs Firmware aufzuspielen und zu konfigurieren. Dann meine Software drauf und das Ding lief. Traumhaft. Nun habe ich einen schnellen Linux Server für die Heim-Automatisierung mit zwei USB 2.0 Anschlüssen und jede Menge toller Software (inkl. PHP-Webserver), die sich super einfach aufspielen läßt (ipkg).
Ist wirklich 'ne tolle Sache.

Keine Angst, der Fritz!Box bleibe ich trotzdem treu! Als DSL-Modem mit Voice-Funktion ist sie immer noch super!

In diesem Sinne, GeenZ
 
Zuletzt bearbeitet:
Danke „GeenZ“ das ist zwar eine schlechte Nachricht aber gut für mein Projekt


Mit freundlichen Grüßen

Thomas
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.