USB 串行电缆(多产)无法与 rpi-buildroot 映像上的 ftdi_sio 驱动程序配合使用

USB 串行电缆(多产)无法与 rpi-buildroot 映像上的 ftdi_sio 驱动程序配合使用

我正在使用树莓派通过 Prolific USB 转串行电缆 (067b 2303) 来控制 LED 矩阵显示器。使用默认的 raspian 图像它可以完美工作,但是使用自定义 buildroot 图像(使用 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 驱动程序文件上的表,对于某些多产的设备,不支持集成电路的“假副本”,您将需要一个补丁,或者只需添加您的供应商和产品 ID 号,然后编译它并使用 rmmod 删除以前的驱动程序pl2303 或 modprobe -r pl2303。为了让您的供应商和产品使用 lsusb,有时未创建 ttyUSBn 设备,因此您需要创建 mknode,然后 chmod 666

相关内容