麒麟OS中识别PCI设备及驱动状态需用lspci命令:基础列表用lspci;查驱动绑定用lspci -k并确认“Kernel driver in use”字段;验证驱动路径通过ls -l /sys/bus/pci/devices/*/driver;拓扑结构用lspci -t。

如果您在麒麟OS系统中需要识别已连接的PCI设备、确认硬件是否被内核正确识别,或排查驱动绑定异常问题,则需通过标准Linux PCI子系统接口获取设备列表、厂商ID、设备ID及关联驱动模块。
列出所有PCI设备基础信息
打开终端,输入lspci并回车。该命令直接读取内核PCI子系统注册的硬件信息,无需安装额外软件包,输出每台设备的总线地址(如00:1f.2)、厂商名(如Intel Corporation)和设备描述(如HD Audio Controller)。
若只想快速定位显卡、网卡、声卡等关键设备,执行:lspci | grep -i "vga\|network\|audio\|storage"。这一步操作起来很简单,直接过滤出常用类别,避免滚动大量无关条目。
确认每个PCI设备当前启用的驱动模块
在终端中执行:lspci -k。重点查找含“Kernel driver in use:”的段落,其后内容即为实际激活的驱动名,例如i915或igb。
若某设备条目下完全缺失该字段,或仅显示“Kernel modules:”而无“in use”,说明驱动未绑定或加载失败——此时硬件虽被识别,但功能不可用。
针对网卡快速筛查:运行lspci -knn | grep -A 3 -B 1 "Network\|Ethernet",可同时看到设备PCI ID与驱动名称,省去人工匹配步骤。
深入分析PCI配置空间与驱动能力细节
第一步:先用lspci获取目标设备地址,例如02:00.0。
第二步:执行lspci -vv -s 02:00.0。该命令输出完整寄存器状态,包括MSI/X中断支持、DMA掩码、链路速率(Speed)与宽度(Width)等关键能力。
第三步:若需批量扫描所有设备的驱动状态,可用lspci -vv | grep -A 10 -B 5 "Kernel driver in use",但注意此命令输出量极大,建议搭配less分页查看,否则容易漏掉关键行。
通过sysfs验证驱动绑定的真实路径
Linux内核在/sys/bus/pci/devices/下为每个PCI设备建立运行时属性目录,其中driver符号链接直接指向所用驱动模块——该方式不依赖命令解析,反映内核最底层状态。
执行ls /sys/bus/pci/devices/列出全部已枚举设备的PCI地址(格式如0000:01:00.0)。
选取目标设备,例如0000:01:00.0,运行:ls -l /sys/bus/pci/devices/0000:01:00.0/driver。若输出类似driver -> ../../../bus/pci/drivers/nvidia,则表明驱动已成功绑定;【若报错No such file or directory,说明该设备尚未被任何驱动接管】。
展示PCI物理拓扑结构
执行lspci -t。该命令以树状形式呈现PCIe插槽、桥接器与终端设备之间的物理连接关系,直观反映设备挂载层级。
例如输出中出现-[0000:00]-+-00.0表示根复合体,后续缩进分支代表下游设备;【若某设备未出现在树中,说明其PCIe链路未完成训练或设备未上电】。

















