USB-Treiberifos auslesen

C

cfauck

Grünschnabel
Hallo.

Nachdem suchen nach USB keinen Treffer erziehlt hat hier mein Hilfegesuch:

:oldman Aufgabenstellung:
Ein Testprogramm steuert einen Klimaschrank, fragt eine Anzahl Probanden regelmäßig nach Funktion ab und protokolliert das Ganze. Die Probanden haben einen FTDI-Chip eingebaut, in welchen Product, Manufacturer und Seriennummer von uns gesetzt sind. Die Geräte werden also über /dev/ttyUSB* angesprochen.

Nach Einstecken/Einschalten eines Gerätes erhalte ich in der /var/log/messages u.a. den folgenden Eintrag:
... kernel: usb 2-4.1: new full speed USB device using ehci_hcd and address 17
... kernel: usb 2-4.1: new device found, idVendor=0403, idProduct=6001
... kernel: usb 2-4.1: new device strings: Mfr=1, Product=2, SerialNumber=3
... kernel: usb 2-4.1: Product: Defectometer M 1.837
... kernel: usb 2-4.1: Manufacturer: MP
... kernel: usb 2-4.1: SerialNumber: FTOWACQ1
... kernel: usb 2-4.1: configuration #1 chosen from 1 choice
... kernel: ftdi_sio 2-4.1:1.0: FTDI USB Serial Device converter detected
... kernel: drivers/usb/serial/ftdi_sio.c: Detected FT232BM

:hilfe2: Problem:
Ich möchte das USB-Subsystem nach allen eingesteckten Geräten durchsuchen. Das Problem ist - wie komme ich an die Infos Product, Manufacturer und SerialNumber ran, welche im USB-Subsystem verfügbar sein müßten?

In libusb habe ich nichts gefunden. Der FTDI-Treiber scheint die Infos auch nicht zu haben - habe jedenfalls nichts diesbezüglich gefunden.

System: SuSE 10.1
Kernel: Linux 2.6.16.14-4

Freue mich über jeden Tip.
Gruß, Christoph
 
Zuletzt bearbeitet:
USB-Treiberifos auslesen - Die Zweite

Ok, gefunden.

Aber nun ein Folgeproblem:

#include <usb.h>

void fkt (void) {

struct usb_bus *busses;

usb_init();
usb_find_busses();
usb_find_devices();

busses = usb_get_busses();
}

Compiliert mit g++ bringt folgendes:

testmanager.o: In function `TestManager::Init(int, char**)':
testmanager.cpp: (.text+0x38fb): undefined reference to `usb_init'
testmanager.cpp: (.text+0x3900): undefined reference to `usb_find_busses'
testmanager.cpp: (.text+0x3905): undefined reference to `usb_find_devices'
testmanager.cpp: (.text+0x390a): undefined reference to `usb_get_busses'

Was muss sein, damit der Linker die Referenz auflösen kann? Bislang konnte ich die Linux-Funktionalität hinsichtlich termios.h und serial.h auch benutzen, ohne noch was machen zu müssen.

Gruß,
Christoph
 
Hi.

Tun nun tun. Weiß jemand, wie man die Rechte hinsichtlich udev so einstellt, daß die Benutzergruppe users den String von pUSBDevice->descriptor.iManufacturer mittels usb_get_string_simple() auslesen darf?

Freue mich über jeden Tip.

Gruß,
Christoph
 

Ähnliche Themen

USB Stick wird als cdc_ether erkannt

Treiber geht nicht [cp210x]

UDEV rules - How ?

xrandr: cant open display

LIDL-Surf-Stick Huawei E 1550 an CentOs 6.2

Zurück
Oben