Linux lspci 命令

在 Linux 系统中,lspci 命令用于列出系统中所有 PCI(Peripheral Component Interconnect)总线设备的详细信息,包括硬件设备如显卡、网卡、声卡等。它是系统管理员和开发者常用的工具,用于诊断硬件、检查设备状态或获取设备信息。以下是对 lspci 命令的详细介绍,包括语法、选项、常见用法和示例。


1. 定义

  • lspci:一个命令行工具,显示系统中连接到 PCI 总线的设备信息。
  • 所属包:通常包含在 pciutils 包中,大多数 Linux 发行版(如 Ubuntu、CentOS、Debian)默认安装。
  • 权限:某些详细信息可能需要 root 权限(如 sudo)。

2. 安装

大多数 Linux 系统预装了 lspci。如果未安装,可以使用包管理器安装:

  • Ubuntu/Debian
  sudo apt update
  sudo apt install pciutils
  • CentOS/RHEL
  sudo yum install pciutils
  • Arch Linux
  sudo pacman -S pciutils

检查是否安装:

lspci --version

3. 语法

lspci [选项]

4. 常用选项

  • -v:显示更详细的信息(verbose)。
  • -vv:显示非常详细的信息(非常 verbose)。
  • -s <slot>:仅显示指定 PCI 插槽的设备,格式为 [[[<domain>]:]<bus>]:[<slot>][.[<func>]]
  • -d <vendor>:<device>:仅显示指定厂商和设备 ID 的设备。
  • -n:以数字形式显示设备 ID 和厂商 ID(不解析名称)。
  • -nn:同时显示数字和解析后的名称。
  • -k:显示驱动程序信息(需要 root 权限)。
  • -t:以树形结构显示 PCI 设备层次。
  • -m:以机器可读格式输出。
  • -b:以总线为中心显示设备(而不是以驱动为中心)。
  • -D:始终显示 PCI 域(domain),即使域为 0。

5. 基本用法

5.1 列出所有 PCI 设备

lspci

示例输出

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio
02:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)
  • 说明
  • 每行表示一个 PCI 设备,格式为 <bus>:<slot>.<function> <设备类型>: <厂商> <设备名称>
  • 例如,00:02.0 表示总线 00、插槽 02、功能 0。

5.2 显示详细信息

lspci -v

示例输出(部分):

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
        Subsystem: Dell Device 0810
        Flags: bus master, fast devsel, latency 0, IRQ 128
        Memory at a0000000 (64-bit, non-prefetchable) [size=16M]
        Memory at 90000000 (64-bit, prefetchable) [size=256M]
        I/O ports at f000 [size=64]
        Capabilities: <access denied>
  • 说明:显示内存地址、中断号等详细信息,可能需要 root 权限查看全部内容。

5.3 显示特定设备

lspci -s 00:02.0

输出

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
  • 说明:仅显示指定插槽的设备(这里是显卡)。

5.4 显示驱动信息

sudo lspci -k

示例输出(部分):

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
        Subsystem: Dell Device 0810
        Kernel driver in use: i915
        Kernel modules: i915
  • 说明:显示设备使用的内核驱动(如 i915 用于 Intel 显卡)。

5.5 树形结构

lspci -t

示例输出

-[0000:00]-+-00.0  Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
           +-02.0  Intel Corporation UHD Graphics 620
           +-14.0  Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller
           +-1f.0  Intel Corporation Sunrise Point-LP LPC Controller
           \-1f.3  Intel Corporation Sunrise Point-LP HD Audio
  • 说明:以树形结构显示 PCI 设备层次,便于查看设备连接关系。

5.6 显示数字 ID

lspci -nn

示例输出

00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 620 [8086:5917] (rev 07)
  • 说明[8086:5917] 表示厂商 ID(8086 为 Intel)和设备 ID(5917 为 UHD Graphics 620)。

6. 常见使用场景

  • 硬件检测:检查系统中的显卡、网卡、USB 控制器等设备。
  • 驱动排查:确认设备是否加载了正确的内核驱动(使用 -k)。
  • 设备调试:获取 PCI 设备的详细信息(如中断号、内存地址)以排查硬件问题。
  • 系统配置:在服务器或嵌入式设备中,确认 PCI 设备的连接状态。

7. 高级示例

7.1 查找特定厂商的设备

查找 Intel 设备(厂商 ID 为 8086):

lspci -d 8086:

输出(示例):

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620

7.2 检查显卡信息

检查系统中所有的 VGA 设备:

lspci | grep VGA

输出

00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)

7.3 结合 grep 查找特定设备

查找所有网络相关设备:

lspci | grep -i network

输出

02:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)

8. 注意事项

  • 权限问题:某些详细信息(如驱动、内存映射)需要 root 权限,使用 sudo lspci
  • 设备未识别:如果设备未列出,可能需要检查硬件连接或更新 pciutils 数据库:
  sudo update-pciids
  • 输出解析:输出中的厂商和设备名称依赖 /usr/share/misc/pci.ids 文件,未更新的文件可能导致名称显示为未知。
  • 性能lspci 是轻量级工具,适用于快速诊断,但不适合实时监控。
  • 替代工具
  • lsusb:查看 USB 设备。
  • lscpu:查看 CPU 信息。
  • dmidecode:查看更详细的硬件信息(需要 root 权限)。

9. 总结

  • lspci:用于列出 PCI 总线设备信息,适合硬件诊断和驱动检查。
  • 核心选项
  • -v / -vv:详细输出。
  • -k:显示驱动信息。
  • -t:树形结构。
  • -nn:显示数字 ID。
  • 推荐实践
  • 使用 sudo 获取完整信息。
  • 结合 grep 过滤特定设备。
  • 定期更新 pci.ids 文件以确保设备名称准确。
  • 适用场景:硬件检测、驱动排查、系统配置。

如果需要更具体的使用示例(如解析特定设备的详细信息、结合脚本自动化处理)或对其他 Linux 命令的说明,请告诉我!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注