我刚刚全新安装了 Ubuntu 22.04,它破坏了对基于 CH340 USB 转串行适配器的设备的支持。(支持在 20.04 中是原生的)
当我这样做时,/$ ls /dev
列表中没有 ttyUSB0 条目。
如果我这样做,/$ lsusb
我会得到:Bus 003 Device 002: ID 1a86:7523 QinHeng Electronics CH340 serial converter
如果我这样做,/$ lsmod
我可以看到正确的模块已被加载:ch34x 24576 0
我尝试手动创建节点并将mknod /dev/ttyUSB0 c 188 0
其 chmod 设置为 777,但它也不起作用。
欢迎任何帮助:)
答案1
除非你使用盲文显示器,否则这应该可以解决问题:
sudo apt remove brltty
不要忘记拔下和打开你的加密狗。
答案2
发生这种情况是因为产品 ID(盲文屏幕阅读器和我的基于 CH340 的芯片)之间发生冲突。解决方案如下:
- 编辑
/usr/lib/udev/rules.d/85-brltty.rules
- 搜索此行并将其注释掉:
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
reboot
答案3
我遇到这个问题是因为内核问题。
这5.4.0-99-通用模块包中没有 USB 串行驱动程序,而4.15.0-96-通用他们也Linux 模块-5.4.0-99-低延迟。由于模块格式不同,这些模块无法使用。几乎所有模块都可以使用,但似乎有一个模块打包错误,当然未经检查就发布了。
简而言之,在这种情况下采取的步骤
- 检查驱动程序是否可用
$ find /lib/modules/$( uname -r ) | grep usb/serial
- 尝试重新安装 -generic
- 仍然无法运作
- 后悔一切
- 删除 5.4 版内核,它似乎是从 18.04 向前移植的?!然后切换到 4.15.0 / linux-generic
- 发现它仍然不起作用并手动加载 ftdi_sio 驱动程序。
- 发现它仍然无法工作,因为驱动程序没有完全连接到内核中的设备
- 记得在 Windows 95 Rel2.0 上有一个非常有用的解决方法,它引入了 USB 支持,但仍然有很多小问题
- 尝试解决方法:重新插入 USB 设备
- 看到它现在可以加载并且完全正常运行
- 我想知道,如果我仍然可以超频 MMX 奔腾处理器、玩 Quake 或 Falcon 4.0 并处理与 1997 年相同的问题,那么从事 IT 工作的意义何在,从 PC 销售员和组装工,到服务台,到二级,到三级,到咨询!
答案4
Ubuntu 23.04 带有 PlatformIO... 我遇到过同样的问题,并在不同时间成功应用了上述所有修复。它又坏了。即使 d1-mini 连接和断开连接,相同的端口不存在错误消息...并且设置了权限/组!
我的解决方案...问题似乎在于端口的指定方式... ttyUSB0 不再起作用。请改用 /dev/ttyUSB0。
在 platformio 之外进行测试是使用以下命令安装 esptool:
sudo apt 安装 esptool
然后尝试使用各种端口字符串:
esptool --port /dev/ttyUSB0 read_mac
对于 platformio,将以下行添加到 platformio.ini 文件的 [env] 部分:
上传端口 = /dev/ttyUSB0