lspci查看PCI设备详细信息

发布于:2025-07-04 ⋅ 阅读:(17) ⋅ 点赞:(0)

lspci 命令详解

lspci 是 Linux 系统中用于列出所有 PCI/PCIe 设备 的工具,能够显示设备类型、厂商、驱动、内存映射等关键信息,是硬件排查和系统管理的必备命令。


1. 基本用法

(1) 列出所有PCI设备

lspci

输出示例

00:00.0 Host bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 DMI2 (rev 02)
00:01.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 1 (rev 02)
02:00.0 Fibre Channel: QLogic Corp. QLE2692 FlexLOM 16G FC HBA (rev 02)
03:00.0 Ethernet controller: Intel Corporation Ethernet 10G 2P X520 Adapter (rev 01)
  • 格式
    [PCI总线号:设备号.功能号] [设备类别]: [厂商] [设备型号] (rev [版本号])
    • 02:00.0:PCI 设备地址(总线:设备.功能)。
    • Fibre Channel:设备类型(这里是光纤通道HBA卡)。
    • QLogic Corp. QLE2692:厂商和型号。

(2) 显示详细信息(-v / -vv / -vvv

lspci -v      # 基本详细信息
lspci -vv     # 更详细(包括PCI配置空间)
lspci -vvv    # 最详细(调试用)

关键字段

  • Kernel driver in use:当前使用的内核驱动(如 qla2xxxlpfc)。
  • Memory at:设备的内存映射地址(用于调试DMA问题)。
  • Capabilities:设备支持的PCI功能(如MSI-X中断、电源管理)。

示例输出

02:00.0 Fibre Channel: QLogic Corp. QLE2692 FlexLOM 16G FC HBA (rev 02)
    Subsystem: QLogic Corp. Device 0123
    Flags: bus master, fast devsel, latency 0, IRQ 100
    Memory at fbe80000 (64-bit, non-prefetchable) [size=256K]
    Capabilities: [80] Power Management version 3
    Kernel driver in use: qla2xxx
    Kernel modules: qla2xxx

(3) 按设备类/厂商过滤

lspci -d [厂商ID:设备ID]   # 按PCI ID过滤
lspci -s [总线:设备.功能]  # 按PCI地址过滤

示例

lspci -d 1077:   # 查看QLogic(厂商ID 1077)的所有设备
lspci -s 02:00.0 # 查看总线02、设备00、功能0的设备

(4) 以树形结构显示(-t

lspci -t

输出示例

-+-[0000:00]-+-00.0
 |           +-01.0-[02]----00.0  # PCIe设备层级关系
 |           \-02.0-[03]----00.0
  • 可以直观看出 PCIe拓扑结构(如哪个设备挂在哪个总线下)。

(5) 显示设备内核驱动(-k

lspci -k

输出示例

02:00.0 Fibre Channel: QLogic Corp. QLE2692 FlexLOM 16G FC HBA (rev 02)
    Subsystem: QLogic Corp. Device 0123
    Kernel driver in use: qla2xxx
    Kernel modules: qla2xxx
  • Kernel driver in use:当前加载的驱动。
  • Kernel modules:设备可用的驱动模块。

2. 高级用法

(1) 显示PCI设备的I/O和内存映射(-xxxx

lspci -xxxx -s 02:00.0  # 查看设备的完整配置空间(十六进制)
  • 适用于 驱动开发硬件调试(如检查PCI寄存器)。

(2) 导出为机器可读格式(-mm / -n

lspci -mm    # 输出为键值对(适合脚本解析)
lspci -n     # 显示PCI ID(数字形式,而非名称)

示例

lspci -n -d 1077:  # 查看QLogic设备的PCI ID

输出:

02:00.0 0c04: 1077:2261 (rev 02)
  • 0c04:设备类(Fibre Channel)。
  • 1077:2261:厂商ID:设备ID。

(3) 结合grep过滤特定设备

lspci | grep -i "fibre\|hba"  # 查找HBA卡
lspci | grep -i "nvidia"      # 查找NVIDIA显卡
lspci | grep -i "ethernet"    # 查找网卡

3. 常见问题排查

(1) 设备未识别?

  • 检查驱动是否加载:
    lsmod | grep qla2xxx  # 如果是QLogic FC HBA
    
  • 检查内核是否支持该设备:
    lspci -nn -d [厂商ID:设备ID]  # 确认PCI ID是否匹配驱动
    

(2) 设备显示但无驱动?

  • 手动加载驱动:
    modprobe qla2xxx  # 加载QLogic驱动
    

(3) PCI设备冲突?

  • 查看IRQ和内存分配:
    lspci -vv -s 02:00.0 | grep -i "irq\|memory"
    

4. 总结

选项 用途 示例
lspci 列出所有PCI设备 lspci | grep -i "hba"
lspci -v 显示详细信息(驱动、内存、IRQ) lspci -v -s 02:00.0
lspci -k 显示内核驱动信息 lspci -k | grep -i "driver"
lspci -t 树形显示PCI拓扑 lspci -t
lspci -d 按厂商ID过滤设备 lspci -d 1077:(QLogic设备)
lspci -xxxx 查看PCI配置空间(调试用) lspci -xxxx -s 02:00.0

典型应用场景

  • 排查HBA卡是否被识别lspci | grep -i "fibre\|hba"
  • 查看设备驱动lspci -k -s 02:00.0
  • 调试PCI设备冲突lspci -vv -s 02:00.0

网站公告

今日签到

点亮在社区的每一天
去签到