gpt4 book ai didi

linux - 通用 USB 串行设备连续提供 1`

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:38 24 4
gpt4 key购买 nike

我正在尝试与 Di245 进行通信通过 Linux 中的虚拟 COM 驱动程序 (VCD) (pdf),我遇到了一个奇怪的问题。该设备 (FT232BL) 在内部使用了 FTDI 芯片组。

附加设备本身未注册为 VCD,因此我执行以下操作:

sudo modprobe usbserial vendor=0x0683 product=0x2450

这会导致以下 dmesg 消息:

usbserial: USB Serial support registered for generic
usbserial_generic 3-3:1.0: The "generic" usb-serial driver is only for testing and one-off prototypes.
usbserial_generic 3-3:1.0: Tell linux-usb@vger.kernel.org to add your device to a proper driver.
usbserial_generic 3-3:1.0: generic converter detected
usb 3-3: generic converter now attached to ttyUSB0

我得到了 promise 的/dev/ttyUSB0 设备。到目前为止,一切似乎都很好。

但是,如果我在我的代码中打开端口,我会从中得到一堆 1`(交替 1`) .尝试使用 screen:

screen /dev/ttyUSB0 115200

我连续收到 1`。这绝对不是设备发送的东西,奇怪的是,如果我输入随机波特率,我会一直收到同样的东西。

这是报告错误的方式吗?什么可能会触发此行为,我该如何解决?

最佳答案

解决方案如下:

# modprobe usbserial vendor=0x0683 product=0x2450
# modprobe ftdi_sio
# echo "0683 2450" >> /sys/bus/usb-serial/drivers/ftdi_sio/new_id

这样,ftdi_sio 驱动程序就知道要为哪个供应商/产品提供 VCD。以下 udev 规则(例如,99-di245.rules)可以自动执行此操作:

ACTION=="add", ATTRS{idVendor}=="0683", ATTRS{idProduct}=="2450", RUN+="/sbin/modprobe ftdi_sio" RUN+="/sbin/modprobe usbserial vendor=0x0683 product=0x2450" RUN+="/bin/sh -c 'echo 0683 2450 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

它安装了:

$ sudo cp 99-di245.rules /etc/udev/rules.d
$ sudo udevadm control --reload

关于linux - 通用 USB 串行设备连续提供 1`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com