Ich versuche, ein FTDI USB-Serial-Gerät mit einer benutzerdefinierten PID zum automatischen (oder sogar manuellen) Anschließen an ttyUSB% n zu erhalten, ohne großen Erfolg. Die normale VID / PID des Geräts ist 0403/6001. Wenn es auf diese Weise programmiert wird, funktioniert es einwandfrei und verbindet sich beim Einstecken automatisch mit ttyUSB0. Auch wenn der Treiber neu kompiliert wurde, um unsere neue PID zu respektieren, erscheint ttyUSB0 bei der Programmierung nicht, erkennt es jedoch als ftdi_sio-Gerät und lädt den Treiber.
Ich habe unsere PID zum Header und zur Quelle hinzugefügt:
// in ftdi_sio_ids.h
#define FTDI_CUSTOM_PID 0xABCD // not the actual pid
// then in ftdi_sio.c
static struct usb_device_id id_table_combined [] = {
// devices....
{ USB_DEVICE(FTDI_VID, FTDI_CUSTOM_PID) },
// ....
Kompilierte den gesamten Kernel neu und brachte das Gerät auf den neusten Stand. Wenn ich das Gerät anschließe, erhalte ich:
usb 1-1: new full-speed USB device number 2 using at91_ohci
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
lsusb zeigt die richtige benutzerdefinierte VID / PID an. Der Treiber scheint zu erkennen, dass ftdi_sio verwendet werden soll, hängt es jedoch nicht an ttyUSB0 an, wie dies bei der unveränderten PID der Fall wäre. Irgendwelche Vorschläge, was ich hier falsch mache?