使用lspci命令可识别linux中pci设备及对应驱动:一、lspci列出设备;二、lspci -vv结合grep查驱动;三、通过/sys/bus/pci/devices/查看驱动链接;四、modinfo验证驱动详情;五、lspci -d与-k组合筛选特定类型设备并显示驱动。

如果您需要在Linux系统中识别已安装的PCI设备及其对应的驱动程序,则可以使用lspci命令获取详细硬件信息。以下是执行该任务的具体步骤:
一、使用lspci列出所有PCI设备
lspci命令是Linux下查看PCI总线设备的标准工具,它从内核的PCI子系统读取设备信息,无需额外安装驱动即可显示基础硬件列表。
1、打开终端窗口,输入命令:lspci。
2、按下回车键执行,屏幕将输出所有已识别的PCI设备,每行包含设备类型、厂商ID和设备ID等基本信息。
3、如需更简洁的设备名称显示,可追加参数:lspci -v 获取详细信息,或使用 lspci -t 查看树状拓扑结构。
二、查看PCI设备对应驱动模块
每个PCI设备在内核中通常由一个加载的驱动模块管理,通过lspci的-vv选项可查询其绑定的驱动名称及模块状态。
1、运行命令:lspci -vv | grep -A 10 -B 5 "Kernel driver in use"。
2、该命令将筛选出包含“Kernel driver in use”字段的上下文,其中“Kernel driver in use”后紧跟的字符串即为当前启用的驱动名称。
3、若需定位某特定设备的驱动,先用 lspci | grep "DeviceName" 找到设备行,记下其PCI地址(如00:1f.2),再执行 lspci -vv -s 00:1f.2 查看该设备完整详情。
三、结合sysfs查看驱动绑定路径
Linux内核通过/sys/bus/pci/devices目录暴露每个PCI设备的运行时属性,包括其关联的驱动链接,该方式不依赖lspci,直接反映内核实际状态。
1、进入PCI设备目录:ls /sys/bus/pci/devices/,列出全部PCI设备的slot地址。
2、选择任一设备地址(例如0000:01:00.0),执行:ls -l /sys/bus/pci/devices/0000:01:00.0/driver。
3、输出中“driver → …”右侧指向的路径即为该设备所使用的驱动模块所在位置,可通过 basename $(readlink /sys/bus/pci/devices/0000:01:00.0/driver) 提取驱动模块名。
四、使用lspci与modinfo联合验证驱动细节
当已知驱动名称后,可用modinfo进一步确认其版本、作者、支持的PCI ID列表等元数据,用于判断驱动兼容性或调试匹配问题。
1、从上一步获取驱动名(如r8169),执行:modinfo r8169。
2、检查输出中的“alias”字段,确认是否包含目标设备的PCI ID(格式为pci:v000010ECd00008168sv*sd*bc*sc*i*)。
3、观察“version”和“description”字段,确认驱动版本与硬件功能支持范围是否一致。
五、过滤特定类型PCI设备并显示驱动信息
针对常见外设类别(如显卡、网卡、声卡),可利用lspci内置分类参数快速聚焦目标设备,并附加驱动信息显示。
1、查看所有网络控制器及其驱动:lspci -d ::0200 -k,其中-k参数强制显示Kernel driver及Kernel modules。
2、查看显示设备:lspci -d ::0300 -k,-d参数按PCI类码筛选,0300代表VGA兼容控制器。
3、查看音频设备:lspci -d ::0403 -k,0403表示Audio device,-k确保同时输出驱动绑定情况。











