Linux 串口 dmesg lsusb
- `dmesg`
- 常用的搭配方式:
- `lsusb`
- 命令核心作用
- 常用搭配与扩展用法
- 在你的串口调试场景中的作用
dmesg
dmesg
是 Linux
系统中一个非常实用的命令,主要作用是查看内核环形缓冲区(kernel ring buffer
)中的信息,这些信息记录了内核启动过程以及系统运行中硬件设备的初始化、事件和错误信息。
具体来说,它能展示的内容包括:
- 系统启动时内核的初始化过程(如硬件检测、驱动加载、挂载文件系统等)
- 硬件设备的连接 / 断开事件(如
USB
设备插拔、硬盘识别、网卡启动等) - 设备驱动的加载状态和可能的错误(如驱动加载失败、设备初始化异常等)
- 内核运行中的警告或错误信息(如内存问题、
IO
错误等)
在你调试串口设备的场景中,dmesg
的核心价值是:当 USB
串口设备(如你的 Corecloud
设备)插入时,内核会自动记录设备识别过程、分配的设备节点(如 ttyACM0
)等信息,通过 dmesg
可以快速找到这些关键日志,从而确定设备对应的串口路径。
常用的搭配方式:
dmesg | grep 关键词
:筛选特定设备或事件的日志(如你用的grep -i 'serial\|tty\|uart
)dmesg -w
:实时监控内核日志(设备插拔时会即时显示新日志)dmesg | tail
:查看最近的内核日志
需要注意的是,内核环形缓冲区的大小有限,旧的日志会被新日志覆盖,因此对于较早发生的事件,可能需要结合 /var/log/kern.log
(持久化的内核日志文件)来查看。
lsusb
lsusb
是 Linux
系统中专门用于列出当前连接到计算机的所有 USB
设备的命令,其核心作用是帮助用户快速了解系统中 USB
设备的连接状态、硬件标识及基本信息,是排查 USB
设备连接问题的常用工具。
命令核心作用
识别 USB
设备是否被系统检测到无论设备是 USB
鼠标、键盘、U
盘、串口模块(如你的 Corecloud
设备)还是打印机,只要通过 USB
接口连接,lsusb
就能列出它,帮助你确认 “设备是否已被系统物理识别”(若未列出,可能是硬件故障、USB
接口问题或驱动未加载)。
获取 USB
设备的关键硬件信息每条输出对应一个 USB
设备,包含 4
个核心信息(以你的输出为例):
Bus 002 Device 004: ID ffff:1000 Corecloud Corecloud Device
字段 | 含义 |
---|---|
Bus 002 | USB 总线编号:系统将不同 USB 控制器 / 接口划分为 “总线”,编号从 001 开始 |
Device 004 | 总线上的设备编号:同一总线上的每个设备有唯一编号,插拔会重新分配 |
ID ffff:1000 | 设备标识(厂商 ID : 产品 ID ):硬件出厂时固化的唯一编码,用于匹配驱动 |
Corecloud Device | 设备名称:厂商预设的设备描述(部分设备可能显示为 “Unknown Device” ) |
常用搭配与扩展用法
-
查看更详细的设备信息默认
lsusb
输出简洁,若需查看设备的接口类型、驱动信息等细节,可加-v
参数(需sudo
权限以获取完整信息):sudo lsusb -v
-
适合排查 “设备被识别但无法使用” 的问题(如接口功能未启用、驱动不匹配)。
按总线 / 设备号筛选特定设备若已知设备的总线号(如 Bus 002),可精准筛选该总线上的所有设备:lsusb -s 002: # 筛选 Bus 002 上的所有设备
-
按 “总线号:设备号” 定位单个设备(如你的
Corecloud
设备Bus 002 Device 004
):lsusb -s 002:004
-
以树状结构显示
USB
设备层级加-t
参数可按 “USB
控制器→
总线→
设备” 的层级显示,清晰看到设备的连接关系(如USB
集线器下挂的设备):lsusb -t
在你的串口调试场景中的作用
结合你之前的需求,lsusb
的核心价值是:
确认 Corecloud
设备(ID ffff:1000
) 已被系统识别(排除 “设备未插好”“USB 口坏了” 等物理问题);
通过 Bus 002 Device 004
定位设备的物理连接,再配合 dmesg
日志,交叉验证该设备对应的串口节点(ttyACM0
),确保代码中 serial_port
路径配置正确。
简单来说:lsusb
负责 “确认设备存在”,dmesg
负责 “确认设备对应的系统路径”,二者结合是 Linux
下 USB
设备调试的经典组合。