[英]Generic usb-serial device continuously gives 1`
我正在嘗試通過Linux( pdf )中的Di245通過其虛擬COM驅動程序(VCD)與Di245通信,但遇到了一個奇怪的問題。 在內部,此設備(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
然后我按承諾得到了/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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.