Tôi đang cố gắng để thiết bị FTDI USB-serial có bộ điều chỉnh PID tự động (hoặc thậm chí thủ công) gắn vào ttyUSB% n, nhưng không thành công. VID / PID bình thường của thiết bị là 0403/6001. Khi được lập trình theo cách này, nó hoạt động hoàn hảo và tự động gắn vào ttyUSB0 khi được cắm. Ngay cả khi trình điều khiển được biên dịch lại để tôn trọng PID mới của chúng tôi, khi được lập trình với một ttyUSB0 tùy chỉnh không xuất hiện, nhưng nó nhận ra đó là thiết bị ftdi_sio và tải tài xế.
Tôi đã thêm PID của chúng tôi vào tiêu đề và nguồn:
// 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) },
// ....
Biên dịch lại toàn bộ kernel và khởi động lại thiết bị. Khi tôi cắm thiết bị vào, tôi nhận được:
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 hiển thị VID / PID tùy chỉnh chính xác. Trình điều khiển dường như nhận ra rằng nó được cho là sử dụng ftdi_sio với nó, nhưng không gắn nó với ttyUSB0 giống như với bộ điều khiển PID chưa được sửa đổi. Có gợi ý nào về những gì tôi đang làm sai ở đây không?