큰 성공없이 ttyUSB % n에 자동 (또는 수동으로) 연결하기 위해 사용자 정의 PID가있는 FTDI USB 직렬 장치를 얻으려고합니다. 장치의 일반 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에 첨부하지 않습니다. 내가 여기서 뭘 잘못하고 있는지에 대한 제안?