麒麟os中确认硬件驱动是否已正确加载并绑定,需依次使用lsmod查已加载模块、lspci -k查pci设备驱动绑定、lsusb -t查usb设备驱动、dmesg分析初始化日志、sudo lshw获取结构化报告。

在麒麟OS中确认硬件驱动是否已正确加载并绑定到对应设备,是为了排查设备无法识别、功能异常或性能受限等问题,必须直接读取内核实时维护的模块与设备映射状态,不能依赖图形界面或第三方工具缓存。
用lsmod列出所有已加载的内核驱动模块
这是最基础也最权威的方法,lsmod 直接读取 /proc/modules 虚拟文件,输出当前内存中所有活跃的驱动模块名称、大小、引用计数及依赖关系,无需 root 权限即可执行。
按下Ctrl+Alt+T打开终端,输入命令并回车:lsmod
输出列表中每行首列为模块名,例如 i915(Intel 核显)、amdgpu(AMD 独显)、r8169(Realtek 网卡)、kysec(麒麟安全模块)、iwlwifi(Intel 无线网卡)等,这些就是已加载的驱动。
若列表过长不便浏览,可加管道过滤:例如只看网络相关驱动,执行 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,或显示 driver=(none),说明系统未为其加载匹配驱动。
用dmesg分析驱动初始化日志
内核启动和热插拔过程中,所有驱动加载动作都会写入环形日志缓冲区。当设备突然失联、驱动报错或固件缺失时,这是唯一能追溯原始错误原因的途径。
执行:dmesg | grep -i "firmware\|failed\|error\|loaded\|probe"
重点筛查含 firmware request failed 的行——这表示驱动已加载,但缺少对应固件文件,常见于 Realtek RTL8852BE、Intel AX211 等新型无线网卡。
若需限定时间范围,可追加 -T 参数查看带时间戳的日志:dmesg -T | tail -n 50,聚焦最近50条记录。
用sudo lshw获取结构化驱动报告
该命令将硬件枚举、总线拓扑、驱动绑定、固件版本全部整合为层级化输出,适合一次性掌握整机驱动状态,但需 root 权限。
执行:sudo lshw -short
快速定位关键设备类型:
– 查显卡:sudo lshw -C display -short
– 查网卡:sudo lshw -C network -short
– 查声卡:sudo lshw -C multimedia -short
在输出中,UNCLAIMED 表示内核未找到匹配驱动;空白或 - 表示驱动未加载;driver=i915 这类字段才是有效绑定证据。











