麒麟系统确认已加载硬件驱动列表需综合五种方法:一、用lsmod列出全部运行中模块;二、用lspci -k查pci设备绑定驱动;三、用lsusb -t看usb设备驱动树;四、用dmesg分析驱动初始化日志;五、用modinfo验证模块元信息与硬件匹配性。

在麒麟系统中确认所有已加载的硬件驱动列表,是为了排查设备无法识别、功能异常或安全模块未启用等问题,必须直接读取内核实时维护的模块状态,不能依赖图形界面或第三方工具缓存。
用 lsmod 查看全部已加载内核模块
这是最基础也最权威的方法,lsmod 直接读取 /proc/modules 虚拟文件,输出当前内存中所有活跃的驱动模块名称、大小、引用计数及依赖关系,无需 root 权限即可执行。
按下 Ctrl+Alt+T 打开终端,输入命令并回车:lsmod
输出列表中每行首列为模块名,例如 i915(Intel 核显)、amdgpu(AMD 独显)、r8169(Realtek 网卡)、kysec(麒麟安全模块)等,这些就是已加载的驱动。
若列表过长不便浏览,可加管道过滤:例如只看网络相关驱动,执行 lsmod | grep -E "(net|eth|wifi|wlan|bt|usbnet)";想查安全模块,执行 lsmod | grep kysec。
【注意】lsmod 不显示未加载的驱动文件,也不反映 USB 设备是否绑定成功——它只告诉你“哪些模块正在运行”。
用 lspci -k 查 PCI/PCIe 设备绑定的驱动
该方法聚焦于主板插槽类硬件,如显卡、网卡、声卡、NVMe 固态硬盘控制器等,能明确看到“哪个设备用了哪个驱动”,解决“硬件被识别但无功能”的典型问题。
第一步:执行 lspci -k,完整列出所有 PCI 设备及其驱动信息。
第二步:逐段查找含 Kernel driver in use: 的行,其后紧随的即为当前绑定的驱动模块名,例如:
Kernel driver in use: i915
Kernel driver in use: nvme
第三步:若某设备条目下没有 Kernel driver in use: 字样,或只有 Kernel modules: 且后面为空,说明该硬件虽被识别,但尚未绑定驱动——此时 lsmod 中也不会出现对应模块。
快速定位网卡:执行 lspci -knn | grep -A 3 -B 1 "Network\|Ethernet",直接提取型号与驱动对应关系。
用 lsusb -t 查 USB 设备驱动绑定树
USB 摄像头、无线网卡、打印机、U 盘等外设的驱动加载状态,必须通过树状结构查看,因为一个 USB 主机控制器下可能挂载多个设备,每个节点都可能使用不同驱动。
执行命令:lsusb -t
观察输出中每个设备节点末尾的 driver=xxx 字段,例如:
│ └─ 1:4.0: driver=r8152 → 表示该 USB 网卡使用 r8152 驱动
└─ 1:5.0: driver=uvcvideo → 表示该 USB 摄像头使用 uvcvideo 驱动
如果某设备节点后写的是 driver=(none) 或干脆没写 driver 字段,说明系统未为其加载匹配驱动,即使 lsmod 中有 uvcvideo 模块,也不代表它绑定了这个摄像头。
结合 lsusb -v -d VID:PID(需先用 lsusb 获取厂商/产品 ID)可进一步验证设备描述符与驱动 alias 是否匹配。
用 dmesg 检查驱动初始化日志
内核启动和热插拔过程中,所有驱动 probe、firmware 加载、绑定失败等事件都会记录在 dmesg 缓冲区里,这是判断驱动是否“真正生效”的最终依据。
执行:dmesg | grep -i "probe\|firmware\|loaded\|driver"
重点找含以下关键词的行:
– “loading driver” 表示模块开始加载
– “probed OK” 或 “registered” 表示设备成功初始化
– “firmware request failed” 或 “probe failed” 表示驱动加载中断
若发现 signature verification failed,说明该驱动模块未签名或签名密钥未导入——这在麒麟 V10 默认开启模块签名验证(CONFIG_MODULE_SIG=y)时极为常见,lsmod 将完全不显示该模块。
用 modinfo 查指定模块详细属性
当确认某个模块已加载(如从 lsmod 中看到 jm7201),但不确定它是否适配当前硬件或版本是否正确,就需调用 modinfo 提取元数据。
执行:modinfo jm7201
重点关注三处:
– description: 确认功能(如 “JingJiaWei GPU driver”)
– alias: 查看支持的 PCI ID 列表,比对 lspci -nn 输出的设备 ID 是否匹配
– vermagic: 必须与当前内核版本一致(如 4.19.90-2205.3.ky10.aarch64 SMP mod_unload),否则无法加载
【警告】modinfo 对未安装的模块也会返回信息(只要 .ko 文件存在),但若提示 “Module jm7201 not found”,说明该模块文件根本不在 /lib/modules/$(uname -r)/kernel/ 目录下。











