Ubuntu虚拟机下CH340串口不识别?揪出brltty元凶,一招解决!

发布时间:2026/7/14 4:30:59

Ubuntu虚拟机下CH340串口不识别?揪出brltty元凶,一招解决! 在 Ubuntu 虚拟机环境下进行 ESP32 等嵌入式开发时很多新手都会遇到一个令人抓狂的问题明明在 VMware 或 VirtualBox 中已经成功连接了 USB 串口设备如 CH340lsusb也能看到硬件但系统就是无法生成/dev/ttyUSB0设备节点导致 VS Code 的串口监视器找不到端口。本文将带你一步步排查这个问题并通过真实的内核日志揪出导致设备反复断开的“幕后黑手”提供一键解决的终极方案。一、 问题排查设备去哪了1. 确认硬件已被虚拟机捕获首先我们需要确认虚拟机是否真的接收到了 USB 设备。执行以下命令lsusb如果输出中包含类似QinHeng Electronics CH340 serial converter的字样说明硬件连接正常问题出在系统底层的驱动或权限上。2. 尝试手动加载驱动CH340 芯片在 Linux 下通常由ch341模块管理。尝试手动加载sudo modprobe ch341如果加载后再次执行ls /dev/ttyUSB*依然提示找不到文件说明问题并非缺少驱动。3. 查看内核日志关键一步此时我们需要查看内核日志看看系统底层到底发生了什么sudo dmesg | grep -iE ch341|brltty如果你看到了类似以下的日志输出[ 74.255395] usb 2-2.2: ch341-uart converter now attached to ttyUSB0[ 74.798005] usb 2-2.2: usbfs: interface 0 claimed by ch341 while brltty sets config #1[ 74.802079] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0恭喜你你已经抓到了真正的“凶手”二、 揪出元凶brltty 是什么从内核日志中可以清晰地看到整个过程系统成功识别了 CH340 并挂载到了ttyUSB0但仅仅零点几秒后一个名为brltty的程序强行抢占了 USB 接口导致串口设备瞬间被强制断开。brltty是一个为视障用户提供盲文显示支持的后台服务。在 Ubuntu 22.04 等较新版本中它默认预装。由于它的 udev 规则过于激进经常会错误地将 CH340、CP2102 等 USB 转串口芯片识别为盲文设备并抢占控制权导致正常的串口驱动无法工作。三、 终极解决方案如果你不需要盲文显示器支持绝大多数开发者都不需要直接卸载brltty是最有效、最彻底的解决方式。1. 卸载 brltty在终端执行以下命令sudo apt remove brltty -y2. 重新插拔 USB 设备在虚拟机菜单栏中将 CH340 设备断开然后再重新连接到虚拟机。3. 验证设备节点ls /dev/ttyUSB*此时你应该能顺利看到/dev/ttyUSB0了四、 防患于未然配置串口访问权限设备节点生成后普通用户可能依然没有权限访问它这会导致 VS Code 的串口监视器报错Permission denied。建议顺手把权限也配好将当前用户加入dialout组sudo usermod -aG dialout $USER️关键提示执行完这条命令后必须完全注销当前用户并重新登录或者直接重启虚拟机权限才会真正生效。

相关新闻