将开发板串口连接到Ubuntu后未找到对应的设备文件?

目录

  • 一、问题现象
  • 二、问题排查
  • 三、解决方法
    • [方案 1:直接卸载 brltty(最彻底,推荐)](#方案 1:直接卸载 brltty(最彻底,推荐))
    • [方案 2:临时停止服务(测试用,重启后恢复)](#方案 2:临时停止服务(测试用,重启后恢复))
    • [方案 3:保留 brltty,修改 udev 规则屏蔽 CH341](#方案 3:保留 brltty,修改 udev 规则屏蔽 CH341)
  • 四、问题验证

一、问题现象

复现环境:

  1. 开发板的串口芯片为CH341/CH340
  2. VMware虚拟机下的Ubuntu22.04.5

将开发板的串口连接到电脑,并在VMware中将对应设备连接到Ubuntu

查看/dev/下已挂载设备,发现挂载设备并没有新增,多次尝试断开和连接设备,亦无效果

二、问题排查

怀疑被当前运行的其他服务给挤掉了。

通过dmsg实时查看内核日志,命令如下:

bash 复制代码
dmesg -w

先打开内核日志实时监控,然后连接开发板串口到Ubuntu,对应的日志内容如下:

日志分析:

  1. idVendor=1a86, idProduct=7523 → 识别到南京沁恒 CH341 USB 转串口芯片(ESP32 开发板最常用的下载芯片)
  2. ch341-uart converter now attached to ttyUSB0 → 正常挂载为 /dev/ttyUSB0
  3. interface 0 claimed by ch341 while 'brltty' sets config → 核心冲突:brltty 服务强行接管这个 USB 接口
  4. ch341-uart converter now disconnected from ttyUSB0 → 串口驱动被挤掉,设备断开
    因此问题原因就是**brltty 服务(Linux 盲文屏幕辅助工具)错误抢占了CH341 串口芯片**,导致 ESP32 的串口刚挂载上就被强制断开,属于串口冲突问题。

三、解决方法

方案 1:直接卸载 brltty(最彻底,推荐)

普通开发用户完全用不到盲文功能,卸载一劳永逸:

bash 复制代码
sudo apt remove brltty

执行完,拔掉 ESP32 再重新插上,串口就会正常挂载。

方案 2:临时停止服务(测试用,重启后恢复)

bash 复制代码
sudo systemctl stop brltty

适合临时验证问题,重启系统后 brltty 会重新启动,冲突会复现。

方案 3:保留 brltty,修改 udev 规则屏蔽 CH341

不想卸载 brltty 的话,注释掉对应规则:

bash 复制代码
sudo vim /usr/lib/udev/rules.d/90-brltty-device.rules

搜索 1a86(CH341 厂商 ID),把对应行注释掉(行首加 #),保存后重载规则:

bash 复制代码
sudo udevadm control --reload-rules

再重插设备即可。

因brltty功能在开发过程中使用不到,这里采用 方案一 ,直接将 brltty给卸载掉

bash 复制代码
sudo apt remove brltty

四、问题验证

重新连接开发板到Ubuntu,dmesg -w查看实时内核日志:

通过上面日志可以看到ch341 USB串口正常挂载到了ttyUSB0

再查看下/dev/ 中已有内核导出的设备文件ttyUSB0设备

相关推荐
不像程序员的程序媛1 小时前
linux常见文本操作命令
linux·运维·服务器
wangbing11251 小时前
开发指南149-IotDB-常用命令
linux·运维·iotdb
Dovis(誓平步青云)1 小时前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
看着博客敲代码1 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
志栋智能2 小时前
运维超自动化的知识管理与传承
运维·自动化
jack186892 小时前
OpenClaw 数据采集与自动化应用场景指南
运维·自动化
小HANN3 小时前
华为云企业网站上云实战|从零搭建高可用WordPress全站架构(ECS+RDS+ELB+弹性伸缩+云监控闭环)
linux·运维·服务器·经验分享
奈落243 小时前
规则引擎还是大模型?AI 工作流与传统自动化的分工边界:确定性流程照旧,‘每次都不太一样‘的知识型工作才交给 AI
运维·人工智能·自动化·大模型·工作流·ai 办公
星恒随风3 小时前
Linux库的底层原理:ELF文件格式、静态链接、程序加载、虚拟地址空间与GOT/PLT详解
linux·运维·笔记·学习·状态模式
GeW4 小时前
2026新质生产力路线图:Linux、数据库与智能算力融合报告
linux