我试图获得带有自定义PID的FTDI USB串行设备,以自动(甚至手动)连接到ttyUSB%n,但没有成功。设备的常规VID / PID为0403/6001。以这种方式进行编程后,它可以完美工作并在插入后自动将其自身附加到ttyUSB0。即使重新编译驱动程序以遵守我们的新PID,使用自定义编程时也不会出现一个ttyUSB0,但它确实将其识别为ftdi_sio设备,并且加载驱动程序。
我已经将我们的PID添加到标题和源中:
// 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) },
// ....
重新编译整个内核并刷新设备。当我插入设备时,我得到:
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显示正确的自定义VID / PID。驱动程序似乎认识到它应该与ftdi_sio一起使用,但是没有像未修改的PID那样将其附加到ttyUSB0上。关于我在这里做错的任何建议吗?