dmesg -w 可实时监控硬件插拔与内核错误,配合 grep 过滤、-l 指定日志级别、-c 清空缓冲、-t 显示真实时间,能高效定位设备识别失败、驱动不兼容及关键硬件异常。

直接用 dmesg -w 就能实时监控硬件插拔和内核报错,它像一个后台探针,持续输出新产生的内核消息,无需刷新或重复执行。
实时监听设备插拔事件
插入或拔出 USB、串口设备(如 Arduino、4G 模块)、PCIe 卡等时,内核会立即记录识别/断开过程。用以下命令可专注捕捉这类动作:
-
dmesg -w | grep -i "usb\|ttyACM\|hid\|pci"—— 过滤常见外设关键词,避免干扰 -
dmesg -wH | grep -E "(new.*device|disconnect|enumerat)"—— 加-H人性化高亮,匹配典型连接行为 - 看到类似
[12345.678901] usb 1-2: new high-speed USB device number 3表示成功识别;device not accepting address或error -110则提示供电不足或兼容性问题
聚焦关键错误与警告
不是所有日志都重要,优先关注影响功能的内核级异常:
-
dmesg -w -l err,warn,crit—— 只显示错误(err)、警告(warn)、严重(crit)级别消息,跳过冗余 info - 遇到网卡失联、硬盘离线、GPU 初始化失败时,这类命令能第一时间捕获
ata timeout、hns3 probe failed、NVRM: Xid等关键线索 - 若输出中反复出现同一模块报错(如
my_driver: probe failed),基本可判定驱动未适配当前内核版本
配合清空与重置提升排查效率
测试前清掉旧日志,能让新事件更干净、更易定位:
-
dmesg -c—— 清空缓冲区并打印当前全部内容,适合在插拔前执行 - 清空后操作硬件(比如热插 USB 摄像头),再运行
dmesg -w,看到的全是本次动作触发的日志 - 如果终端被刷屏,可加
less或重定向:dmesg -w 2>/dev/null | head -n 50控制输出量
时间戳让问题可追溯
默认时间是启动后秒数,对跨时段分析不够直观:
-
dmesg -wT显示完整日期时间(如[Wed Jul 30 02:15:22 2026]),方便对照用户操作时间 - 当系统休眠唤醒后设备丢失,对比
suspend和resume时间点,能快速判断是电源管理还是驱动问题 - 注意:
-T在系统时间被校准后可能短暂不准,但对多数现场排查已足够可靠











