在Ubuntu 22.04中,/dev/ttyUSB0不存在。

我刚刚安装了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`手动创建节点,并将其权限设置为777,但还是无法工作。
欢迎提供任何帮助 :)

1插入USB设备后,运行sudo dmesg命令,最后几行将显示USB设备的识别情况以及分配的设备名称。 - Soren A
非常感谢你提出这个问题 - 这些解决方案对我很有效。 - xx1xx
Soren A这只适用于驱动程序附加了设备名称并分配了的情况,而不是这种情况。 - Florian Heigl
4个回答

除非您使用盲文显示器,否则这应该能解决问题。
sudo apt remove brltty 

别忘了插上和拔下你的移动设备。

10非常有帮助,我没想到会找到如此冷门的原因导致我的ESP32无法工作! - Besi
3这真是荒谬。我花了3个小时试图弄清楚为什么刚安装的Ubuntu与看似正确的驱动程序不兼容,无法识别我用于树莓派的同一根线连接的ESP32。谢谢! - Arturs Vancans
如果重新插拔物理上很麻烦的话,可以参考这里:https://askubuntu.com/a/61165/367444 :-) - Harald
1谢谢,我插拔了大约100次才弄明白。在移除 brlttly 之前,sudo dmesg 显示了以下信息并尝试加载屏幕驱动键盘:ch34x 1-1.4:1.0: 检测到 ch34x 转换器; usb 1-1.4: ch34x 转换器现已连接到 ttyUSB0; 输入:BRLTTY 6.4 Linux 屏幕驱动键盘作为 /devices/virtual/input/input71; usb 1-1.4: usbfs:接口0被 ch34x 占用,而 'brltty' 设置配置 #1 - Isuru
对我来说不起作用,删除brltty并重新启动后,我仍然看不到设备。 - user171780
我还要补充一点,检查一下你的用户是否属于dialout组。 - undefined
非常感谢,对我很有帮助!我完全怀疑为什么我不能连接我的USB转换器。 - undefined


2编辑/usr/lib/udev/rules.d/85-brltty.rules对我在PopOS 22.04上与esp8266一起工作有帮助,但为了确保问题彻底解决,我还运行了sudo apt remove brltty。谢谢 :) - Tarcisio Xavier Gruppi
我发现它只影响了我电脑前面的两个USB插槽中的一个。在每个插槽中插入我的ESP32-WROVER后,我运行了sudo dmesg | grep tty命令。对于受到brltty影响的插槽,输出的最后一行是ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0;而对于未受影响的插槽,这条信息也存在,但后面跟着usb 4-4: ch341-uart converter now attached to ttyUSB0。我还决定使用sudo apt remove brltty(Ubuntu 22.10)。 - user643722

我之前遇到了一个内核问题导致这个情况发生。 5.4.0-99-generic 模块包中没有 USB 串行驱动程序,而 4.15.0-96-generic 中有。 它们也在 linux-modules-5.4.0-99-lowlatency 中。但由于不同的模块格式,无法使用这些驱动程序。 几乎所有的驱动程序都可以,但似乎有一个被错误打包,并且当然在发布之前没有进行检查。
简而言之,在这种情况下的步骤如下:
  1. 检查驱动程序是否可用

$ find /lib/modules/$( uname -r ) | grep usb/serial

尝试重新安装-generic。 仍然无法正常工作。 后悔一切。 删除似乎是从18.04版本进行的某种前向端口的5.4行内核,并切换到4.15.0 / linux-generic。 发现它仍然不起作用,手动加载ftdi_sio驱动程序。 发现它仍然不起作用,因为驱动程序没有完全连接到内核中的设备。 记得在Windows 95 Rel2.0上有一个非常有帮助的解决方法,该版本引入了USB支持,因此仍然存在许多小问题。 尝试这个解决方法:重新插拔USB设备。 看到它现在加载并且完全可用。 想知道在IT行业工作的意义何在,从PC销售员和组装员,到技术支持,再到二级、三级支持,再到咨询,如果我仍然可以超频MMX Pentiums,玩Quake或Falcon 4.0,并处理与1997年相同的问题!

Ubuntu 23.04 with PlatformIO... 我曾遇到过同样的问题,并在不同时间成功地应用了上面的所有修复方法。但现在又出问题了。尽管d1-mini连接和断开连接,但仍出现相同的端口不存在错误消息...权限/组已设置好!

我的解决方案是... 问题似乎出在端口的指定方式上... ttyUSB0 不再起作用。请使用 /dev/ttyUSB0。

在 platformio 之外进行测试时,可以使用以下命令安装 esptool:

sudo apt install esptool

然后尝试使用不同的端口字符串:

esptool --port /dev/ttyUSB0 read_mac

对于 platformio,请将以下行添加到 platformio.ini 文件的 [env] 部分:

upload_port = /dev/ttyUSB0