Linux lspci 命令实用示例

LinuxBeginner
立即练习

介绍

在本实验中,我们将探索 Linux 的 lspci 命令,这是一个强大的工具,用于显示与系统连接的外围组件互连(Peripheral Component Interconnect, PCI)总线和设备的信息。实验将涵盖 lspci 命令的用途、其各种选项和标志,以及如何识别系统中的 PCI 设备。这些信息对于排查硬件问题、识别系统组件以及了解整体硬件配置非常有用。

实验将从运行基本的 lspci 命令开始,显示系统中检测到的 PCI 设备,包括设备名称、供应商信息和其他相关细节。然后,我们将探索 lspci 命令提供的不同选项和标志,以获取有关 PCI 设备的更具体信息。

Linux 命令速查表

理解 lspci 命令的用途

在这一步中,我们将探讨 Linux 中 lspci 命令的用途。lspci 命令是一个强大的工具,用于显示与系统连接的外围组件互连(Peripheral Component Interconnect, PCI)总线和设备的信息。

lspci 命令提供了系统中安装的 PCI 设备的详细信息,包括设备名称、供应商信息和其他相关细节。这些信息对于排查硬件问题、识别系统组件以及了解整体硬件配置非常有用。

让我们从运行基本的 lspci 命令开始:

sudo lspci

示例输出:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 (rev f0)

此输出显示了系统中检测到的各种 PCI 设备,包括主机桥(Host Bridge)、PCI 桥、VGA 控制器、USB 控制器等。每一行代表一个 PCI 设备,并包含其设备 ID、供应商和其他详细信息。

lspci 命令还可以与各种选项和标志一起使用,以显示有关 PCI 设备的更具体信息。我们将在下一步中探讨这些内容。

探索 lspci 命令的选项和标志

在这一步中,我们将探索 lspci 命令提供的各种选项和标志,以获取有关系统中 PCI 设备的更详细信息。

让我们从查看 lspci 命令的可用选项开始:

man lspci

这将显示 lspci 命令的手册页,其中列出了所有可用选项及其描述。

一些常用的 lspci 选项包括:

  • -v:显示详细输出,提供有关每个 PCI 设备的更多详细信息。
  • -vv:显示非常详细的输出,包括额外的技术细节。
  • -s <slot>:仅显示指定插槽的 PCI 设备信息。
  • -d <vendor>:<device>:仅显示来自指定供应商和/或设备 ID 的设备信息。
  • -n:以数字格式显示设备和供应商 ID,而不是查找名称。
  • -nn:以数字格式显示设备和供应商 ID,并同时包含名称查找。

让我们尝试其中一些选项:

sudo lspci -v

示例输出:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
    Subsystem: Lenovo 8th Gen Core Processor Host Bridge/DRAM Registers
    Flags: bus master, fast devsel, latency 0
    Capabilities: <access denied>
    Kernel driver in use: skl_uncore

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
    Flags: bus master, fast devsel, latency 0, IRQ 122
    Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
    I/O behind bridge: 0000c000-0000cfff
    Memory behind bridge: f6000000-f60fffff
    Prefetchable memory behind bridge: 00000000e0000000-00000000e01fffff
    Capabilities: <access denied>
    Kernel driver in use: pcieport

-v 选项提供了有关每个 PCI 设备的更多详细信息,包括设备名称、供应商、功能以及正在使用的内核驱动程序。

你还可以组合选项以获取更具体的信息:

sudo lspci -nn

这将以数字格式显示 PCI 设备和供应商 ID,并同时包含名称查找。

sudo lspci -s 00:02.0 -v

这将显示插槽 00:02.0 处的 PCI 设备的详细信息。

探索不同的 lspci 选项和标志,了解如何获取你需要的有关系统中 PCI 设备的具体信息。

识别系统中的 PCI 设备

在这最后一步中,我们将学习如何使用 lspci 命令来识别系统中的 PCI 设备,并理解提供的信息。

让我们再次运行基本的 lspci 命令:

sudo lspci

示例输出:

00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 07)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (rev 07)
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (rev 02)
00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
00:1b.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 (rev f0)

此输出显示了系统中检测到的各种 PCI 设备,包括主机桥(Host Bridge)、PCI 桥、VGA 控制器、USB 控制器等。每一行代表一个 PCI 设备,并包含其设备 ID、供应商和其他详细信息。

要获取特定 PCI 设备的更详细信息,可以使用 lspci -v 命令:

sudo lspci -v -s 00:02.0

这将显示插槽 00:02.0 处的 PCI 设备的详细信息,在本例中为 VGA 控制器。

你还可以使用 lspci -nn 命令查看数字格式的设备和供应商 ID,这对于识别特定设备非常有用:

sudo lspci -nn

示例输出:

00:00.0 Host bridge [0600]: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers [8086:3e30] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller [8086:1901] (rev 07)
00:02.0 VGA compatible controller [0300]: Intel Corporation UHD Graphics 630 [8086:3e9b] (rev 02)
00:14.0 USB controller [0c03]: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller [8086:a36d] (rev 10)
00:14.2 RAM memory [0500]: Intel Corporation Cannon Lake PCH Shared SRAM [8086:a36f] (rev 10)
00:16.0 Communication controller [0780]: Intel Corporation Cannon Lake PCH HECI Controller [8086:a360] (rev 10)
00:17.0 SATA controller [0106]: Intel Corporation Cannon Lake PCH SATA AHCI Controller [8086:a353] (rev 10)
00:1b.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #21 [8086:a344] (rev f0)
00:1c.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #1 [8086:a338] (rev f0)
00:1d.0 PCI bridge [0604]: Intel Corporation Cannon Lake PCH PCI Express Root Port #13 [8086:a33c] (rev f0)

此输出显示了数字格式的 PCI 设备 ID,这对于识别特定设备或查找其规格非常有用。

通过使用 lspci 命令及其各种选项,你可以收集有关系统中 PCI 设备的详细信息,这对于故障排除、硬件识别以及理解整体系统配置非常有价值。

总结

在本实验中,我们探讨了 Linux 中 lspci 命令的用途和用法。lspci 命令是一个强大的工具,用于显示与系统连接的外围组件互连(Peripheral Component Interconnect, PCI)总线和设备的详细信息。我们学习了如何使用基本的 lspci 命令来显示系统中安装的 PCI 设备,包括设备名称、供应商信息和其他相关细节。这些信息对于排查硬件问题、识别系统组件以及了解整体硬件配置非常有用。我们还讨论了如何结合各种选项和标志使用 lspci 命令,以显示有关 PCI 设备的更具体信息。

Linux 命令速查表