Próbuję uzyskać urządzenie szeregowe USB FTDI z niestandardowym PID, aby automatycznie (lub nawet ręcznie) podłączyć się do ttyUSB% n, bez większego powodzenia. Normalny VID / PID urządzenia to 0403/6001. Po zaprogramowaniu w ten sposób działa idealnie i automatycznie podłącza się do ttyUSB0 po podłączeniu. Nawet po ponownym skompilowaniu sterownika w celu przestrzegania naszego nowego PID, po zaprogramowaniu z niestandardowym ttyUSB0 nie pojawia się, ale rozpoznaje to jako urządzenie ftdi_sio i ładuje sterownik.
Dodałem nasz PID do nagłówka i źródła:
// 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) },
// ....
Zrekompilowano całe jądro i przebudowano urządzenie. Po podłączeniu urządzenia otrzymuję:
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 pokazuje poprawny niestandardowy VID / PID. Wydaje się, że sterownik rozpoznaje, że powinien używać ftdi_sio, ale nie dołącza go do ttyUSB0, tak jak w przypadku niezmodyfikowanego PID. Wszelkie sugestie co do tego, co robię źle tutaj?