journalctl 查看内核驱动日志需用 -k 选项,结合 -p err..warning 过滤错误警告,再用 grep 按设备名或驱动名筛选,并关联 systemd-udevd 日志分析设备识别与绑定全过程。

在 Linux 中,journalctl 是查看 systemd 日志的核心工具,硬件驱动相关日志通常由内核(kernel)和 udev(设备管理服务)生成。要精准定位驱动加载、识别或报错信息,需结合时间范围、服务单元、优先级和关键词过滤。
查看内核驱动日志(最常用)
硬件驱动初始化、probe 失败、模块加载/卸载等关键信息都记录在内核日志中,对应 _TRANSPORT=kernel。
- 查看最近一次启动的全部内核日志:
journalctl -k(等价于journalctl -t kernel) - 实时跟踪新产生的内核日志:
journalctl -k -f - 只看 ERROR 或 WARNING 级别的驱动相关消息:
journalctl -k -p err..warning
按设备或驱动名筛选日志
如果你知道设备型号(如 rtl8821ae)、总线地址(如 0000:02:00.0)或驱动名(如 nvme),可直接搜索:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 查找所有含
nvme的日志行(含内核和 udev):
journalctl | grep -i nvme - 精确匹配内核中与
usb 1-1相关的初始化过程:
journalctl -k | grep "1-1:" - 用正则匹配多个驱动关键词(如常见网卡驱动):
journalctl -k | grep -E "(r8169|e1000e|igb|ath9k)"
关联 udev 设备事件日志
udev 负责设备节点创建、规则触发和驱动绑定,它的日志对排查“设备识别但无节点”或“驱动未自动加载”很有帮助:
- 查看 udev 服务的完整日志:
journalctl -u systemd-udevd - 配合内核日志,看某次热插拔全过程(例如插入 USB 摄像头):
journalctl -S "2 minutes ago" | grep -E "(kernel|udevd).*video|usb" - 检查设备是否被正确标记为“initialized”:
journalctl -u systemd-udevd | grep "initialized.*video0"
结合硬件信息缩小排查范围
先用基础命令确认设备存在和驱动状态,再针对性查日志:
- 列出已识别 PCI 设备及驱动:
lspci -k(关注 “Kernel driver in use” 和 “Kernel modules” 行) - 查看 USB 设备树和驱动绑定:
lsusb -t - 确认内核模块是否加载:
lsmod | grep r8169(替换为你关心的模块名) - 如果模块未加载,查它为何失败:
journalctl -k | grep -A2 -B2 "r8169.*error\|insertion.*fail"


















