为什么ch341-uart会与ttyUSB断开连接?

Lun*_*pse 36 embedded stm32

事情是这样的,我想用我的 USB 串口刷新我的 stm32 板。我的stm32板带有一块带有CH340的扩展板。

当我将开发板连接到计算机时,我可以使用命令看到该设备lsusb,输出为Bus 001 Device 039: ID 1a86:7523 QinHeng Electronics CH340 serial converter

ttyUSB但我在路径下找不到该文件/dev

然后我运行dmesg | grep tty,这是输出:

[1182096.667353] usb 1-9: ch341-uart converter now attached to ttyUSB0
[1182096.729868] audit: type=1130 audit(1637925474.011:3648): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=brltty-device@sys-devices-pci0000:00-0000:00:14.0-usb1-1\x2d9 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[1182096.800144] audit: type=1130 audit(1637925474.081:3649): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=brltty@-sys-devices-pci0000:00-0000:00:14.0-usb1-1\x2d9 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[1182096.803145] usb 1-9: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[1182096.803731] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
Run Code Online (Sandbox Code Playgroud)

有谁知道这里有什么问题吗?谢谢。

小智 91

对于 Ubuntu 22.04,最简单的解决方案是通过 删除 brltty 包sudo apt remove brltty,因为除非您使用盲文电子阅读器,否则它是不必要的,但不确定它是否会在以后导致错误。

另外,有关 brltty 的信息请访问该网站:https://brltty.app/

  • 发行带有内置软件的发行版是多么糟糕,该软件专门通过硬编码来声明 ttyUSB0 并在软件无法识别硬件时断开连接 (8认同)
  • 完美的 Ubuntu 22.04 确实对我有用。多谢 (5认同)
  • 问题是:为什么要在 22.04 中安装这个? (4认同)

Lun*_*pse 9

好吧,我刚刚在forum.manjaro.org上找到了一篇帖子,链接如下:https://forum.manjaro.org/t/cant-connect-serial-port-error-ch341-uart-disconnected-from-ttyusb0/ 87208

似乎对于 arch/manjaro 系统(不确定是否适合其他发行版),您需要删除一些 udev 规则。

sudo mv /usr/lib/udev/rules.d/90-brltty-device.rules /usr/lib/udev/rules.d/90-brltty-device.rules.disabled
sudo mv /usr/lib/udev/rules.d/90-brltty-uinput.rules /usr/lib/udev/rules.d/90-brltty-uinput.rules.disabled
sudo udevadm control --reload-rules
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,但我做到了。它奏效了。现在我可以找到我的ttyUSB0设备文件了。


小智 8

因此,有一个盲文电子阅读器使用相同的串行转换器,并且 udev 规则为该设备配置芯片。您实际上不需要完全删除 udev 规则文件,您只需禁用/注释掉单个设备的规则即可。就是这个:

# Device: 1A86:7523
# Baum [NLS eReader Zoomax (20 cells)]
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
Run Code Online (Sandbox Code Playgroud)

注释以 ENV 开头的行。