当前位置: 首页 > news >正文

lspci查看PCI设备详细信息

目录

      • **`lspci` 命令详解**
    • **1. 基本用法**
      • **(1) 列出所有PCI设备**
      • **(2) 显示详细信息(`-v` / `-vv` / `-vvv`)**
      • **(3) 按设备类/厂商过滤**
      • **(4) 以树形结构显示(`-t`)**
      • **(5) 显示设备内核驱动(`-k`)**
    • **2. 高级用法**
      • **(1) 显示PCI设备的I/O和内存映射(`-xxxx`)**
      • **(2) 导出为机器可读格式(`-mm` / `-n`)**
      • **(3) 结合`grep`过滤特定设备**
    • **3. 常见问题排查**
      • **(1) 设备未识别?**
      • **(2) 设备显示但无驱动?**
      • **(3) PCI设备冲突?**
    • **4. 总结**

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 0123Flags: bus master, fast devsel, latency 0, IRQ 100Memory at fbe80000 (64-bit, non-prefetchable) [size=256K]Capabilities: [80] Power Management version 3Kernel driver in use: qla2xxxKernel 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 0123Kernel driver in use: qla2xxxKernel 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
http://www.dtcms.com/a/265630.html

相关文章:

  • linux常用命令(10):scp命令(远程拷贝命令,复制文件到远程服务器)
  • PlatformIO 在使用 GitHub 上的第三方库
  • Spark 4.0的VariantType 类型以及内部存储
  • 云上堡垒:如何用AWS原生服务构筑坚不可摧的主机安全体系
  • java教程——初识guava(2)
  • 在 React 中使用 WebSockets 构建实时聊天应用程序
  • 实训项目记录 | 7.3
  • AI会取代网络工程师吗?理解AI在网络安全中的角色
  • 【网络安全】Webshell命令执行失败解决思路
  • 如何避免服务器出现故障情况?
  • 数据库服务端有连接数限制吗
  • vue3 + cesium + heatmapjs 开发热力图(不需要CesiumHeatMap插件)
  • JA3指纹在Web服务器或WAF中集成方案
  • 在银河麒麟V10 SP1上手动安装与配置高版本Docker的完整指南
  • Element UI 完整使用实战示例
  • Flutter 进阶:实现带圆角的 CircularProgressIndicator
  • 解决安装SunloginClient问题记录(Ubuntu 24.04.2)
  • 删除docker镜像后如何正确清理残余
  • 前端的一些报错
  • AIX 环境磁盘空间管理指南
  • 从零开始构建Airbyte数据管道:PostgreSQL到BigQuery实战指南
  • CentOS系统高效部署fastGPT全攻略
  • 两级缓存 Caffeine + Redis 架构:原理、实现与实践
  • 跨云架构:性能、成本与合规的平衡艺术
  • Linux 73 LAMP4
  • 渗透测试中 phpinfo() 的信息利用分析
  • Java接口报错:Packet for query is too large - 解决方案与架构思考
  • 从0到1搭建同城O2O外卖平台:外卖系统源码架构解析与实战指南
  • 前置代理重构网络访问的「中转站」
  • YOLOv2 正负样本分配机制详解