【微知】lspci命令显示的厂商信息是如何获取的?( /usr/share/hwdata/pci.ids)

背景

使用lspci命令是如何从PCIe配置空间读取出来厂商字符串信息的?
pcie设备的配置空间常规的只有64bytes,而使用lspci可以详细的关于该设备的字符串信息。这些信息并不是存储在配置空间,而是根据系统中配置文件数据库,根据vendor id和device id获取的。本文简单介绍该文件路径,方式。

现象

图中黄框部分如何获取的?
在这里插入图片描述

分析

lspci命令执行后,host会向pcie发起枚举行为,会给每个设备读取配置空间的TLP报文,并读取回来。然后展示到界面。对于简单的lspci不带任何参数,会根据扫描到的设备的vendor id和device id从系统中匹配,如果匹配到之后就展示到图中黄框部分。
系统中读取配置的地方是在:/usr/share/hwdata/pci.ids
在这里插入图片描述

打开查看:可以看到当前文件的更新时间,以及官网下载更新的地方,以及语法格式。
在这里插入图片描述
详细的例子:
比如查看A开头的比如Alibaba的PCIe的信息,vendorid是 1ded,向PCIe sig申请了7个deviceid
在这里插入图片描述
比如查看Mellanox的信息相当的多:20973-20732+1=242个,而且这还是2022的信息。
在这里插入图片描述
在这里插入图片描述

如何查看最新的

https://pci-ids.ucw.cz/
在这里插入图片描述

综述

本文记录了lspci读取配置信息的展示机制以及详细路径。了解该部分,对于有些最新的PCIe设备如果展示不完全,可能就是这里的问题。了解底层机制更灵活的应对变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值