USB 직렬 케이블(다량)이 rpi-buildroot 이미지의 ftdi_sio 드라이버와 작동하지 않습니다.

USB 직렬 케이블(다량)이 rpi-buildroot 이미지의 ftdi_sio 드라이버와 작동하지 않습니다.

저는 Raspberry Pi를 사용하여 Prolific USB-직렬 케이블(067b 2303)을 통해 LED 매트릭스 디스플레이를 제어하고 있습니다. 기본 raspian 이미지를 사용하면 완벽하게 작동하지만 사용자 정의 빌드 루트 이미지(rpi-buildroot 사용)를 사용하면 구성하거나 사용할 수 없습니다.

지금까지 내 단계는 다음과 같습니다.

Linux는 장치를 인식하지만 자동으로 드라이버를 로드하거나 /dev/ttyUSBx에 연결하지 않으므로 다음을 사용합니다.

modprobe ftdi_sio

출력:

usbcore: registered new interface driver usbserial
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device

/dev/ttyUSB*에 아무것도 표시되지 않으므로 제품 및 공급업체 ID를 사용하여 new_id를 에코합니다.

echo 067b 2303 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id

출력:

ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected 
usb 1-1.2: Detected FIBU232AM 
ftdi_sio ttyUSBO: Unable to read latency timer: -32 
ftdi_sio ttyUSBO: Unable to write latency timer: -32 
usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0

다음을 사용하여 전송 속도를 변경하려고 할 때:

stty -F /dev/ttyUSB0 115200

실패 이유는 다음과 같습니다.

ftdi_sio ttyUSBO: ftdi_set_termios FAILED to set databits/stopbits/parity 
ftdi_sio ttyUSBO: ftdi_set_termios urb failed to set baudrate 
ftdi_sio ttyUSBO: urb failed to clear flow control 
ftdi_sio ttyUSBO: failed to get modem status: -32
ftdi_sio ttyUSBO: ftdi_set_termios urb failed to set baudrate
ftdi_sio ttyUSBO: urb failed to clear flow control
ftdi_sio ttyUSBO: failed to get modem status: -32
ftdi_sio ttyUSBO: error from flowcontrol urb  

USB 직렬을 구성하는 항목을 찾지 못했습니다.

답변1

알고 보니 ftdi_sio가 잘못된 드라이버이므로 pl2303을 사용해야 합니다. 다음은 모든 것을 해결했습니다.

modprobe pl2303

장치가 올바르게 설치 및 설정되었습니다.

답변2

드라이버가 올바르지 않습니다. ftdi 드라이버는 Future Technology Devices용이고, 많은 칩용 드라이버는 pl2303이므로 커널에 올바른 모듈을 추가하려면 insmod pl2303 또는 modprobe pl2303을 사용해야 합니다. 또한 이를 기반으로 공급업체 및 제품을 확인해야 합니다. ID .c 드라이버 파일의 테이블이 정확합니까? 일부 장치의 경우 IC의 "가짜 복사본"이 지원되지 않습니다. 패치가 필요하거나 공급업체 및 제품 ID 번호를 추가하고 컴파일하면 이전 드라이버가 제거됩니다. rmmod 또는 modprobe -r pl2303을 사용하는 pl2303. 공급업체 및 제품에서 lsusb를 사용하려면 ttyUSBn 장치가 생성되지 않는 경우가 있으므로 mknode를 생성한 다음 chmod 666을 생성해야 합니다.

관련 정보