关于 Linux 上的 lspci 命令关于 Linux 上的 lspci 命令关于 Linux 上的 lspci 命令关于 Linux 上的 lspci 命令
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

关于 Linux 上的 lspci 命令

发表 admin at 2025年2月28日
类别
  • 未分类
标签

lspci 命令是 Linux 系统上的一个实用程序,用于查找有关 PCI 总线和连接到 PCI 子系统的设备的信息。您可以通过将单词lspci分为两部分来理解该命令的含义。第一部分 ls 是 Linux 上使用的标准实用程序,用于列出有关文件系统中的文件的信息。 pci 是命令的第二部分,因此您可以自然地看到命令 lspci 将列出有关 PCI 子系统的信息,就像 ls 列出有关文件系统的信息一样。

在本文中,我们将解释 PCI、PCIe 和用于显示系统信息的 lspci 命令的基础知识。

什么是 PCI?

PCI(即外围组件互连)是一种向计算机系统添加额外硬件组件的接口。 PCIe 或 PCI Express 是当今使用的更新标准。例如,假设您想在计算机上添加以太网卡,以便它可以访问互联网并交换数据。该卡需要一个协议来与内部系统的其余部分进行通信,PCI 可以是用于将该卡添加到您的系统的标准接口。您仍然需要该卡的驱动程序以便内核使用它,但是 PCI 是插槽、总线和接口,用于通过标准接口将硬件添加到系统中。 PCI Linux 驱动程序的创建将遵循一些标准接口,您可以在此处查看创建PCI Linux 驱动程序的文档。您可以从下面的结构中看到必须实现的标准方法。 探测、删除、挂起、恢复等方法。

struct pci_driver {
struct list_head        node;
const char              *name;
const struct pci_device_id *id_table;
int (*probe)(struct pci_dev *dev, const struct pci_device_id *id);
void (*remove)(struct pci_dev *dev);
int (*suspend)(struct pci_dev *dev, pm_message_t state);
int (*resume)(struct pci_dev *dev);
void (*shutdown)(struct pci_dev *dev);
int (*sriov_configure)(struct pci_dev *dev, int num_vfs);
const struct pci_error_handlers *err_handler;
const struct attribute_group **groups;
struct device_driver    driver;
struct pci_dynids       dynids;
};

PCI 速度和用途

PCI 3.0 每通道可运行高达1GB/秒的数据。不同的设备可以有多个通道,因此单个设备可能具有数千兆字节的数据传输速率。随着新版本规范的出现和新硬件的出现,这些数字总是在不断提高,因此请务必检查您能找到的最新最快的版本。您可以购买的插入 PCI 接口的组件和小工具类型包括:WIFI 适配器、蓝牙、NVME 固态存储卡、显卡等。

探索 lspci 命令

我已在 Google 云上创建了一个 Ubuntu 19.04 实例,现在将运行 lspci 命令并查看会发生什么。

您看到的是每个设备一行,带有数字代码和设备的口头描述。实际上,此输出中每行显示 5 个字段:Slot、Class、Vendor、Device 和 Revision。

所以分解第一行我们有:

插槽: 00:00.0类别: 主桥供应商: Intel Corporation设备: 440FX – 82441FX PMC修订版:02

看一下 Slot 00:04.0,它是我们的以太网控制器,它似乎是一个虚拟设备,是 Google 云部署虚拟魔法的一部分。

要获取有关每个 PCI 插槽的更详细、详细的信息,请运行以下命令:

# lspci -vmm

此命令会将每一行分解为其组成字段,并允许您使用更具描述性的标签来分析每个设备。

您还可以尝试 -v 选项以获得更详细的输出

# lspci -v

并使用 double v 或 Tripple v 进行详细输出:

# lspci -vvv

或者尝试使用 -mm 选项来获取脚本可读的输出格式。

# lspci -mm

为了查看每个设备正在使用哪个内核驱动程序,请运行 -k 选项。

我的许多设备都使用 virtio-pci 驱动程序。

最后,您甚至可以看到每个 PCI 设备的“配置空间的标准部分”的十六进制转储。您应该成为一名真正的内核黑客才能弄清楚如何使用该信息。 -x 选项为您提供转储输出。

# lspci -x

结论

lspci 命令是一个标准 Linux 命令,可用于列出有关系统上 PCI 连接设备的信息。这对于了解您拥有哪些硬件外设很有用。它对于开发人员、设备驱动程序创建者、低级系统人员查询有关设备、驱动程序和系统的信息也非常有用。享受使用 lspci 的乐趣。

©2015-2025 Norria support@norria.com