大家好,欢迎来到IT知识分享网。
CentOS系统的输出:
可以看到输出分成两部分,编号加设备描述。编号通过冒号 “:” 又分成了三部分,第一个部分是PCIe的 domain ID,第二个部分是 bus ID,第三个部分是 device id.function id。PCI设备的组织形式是一个树形,这表示一个domain可以包含多个bus,一个bus又包含了多个device,一个device又包含多个function。
看到这里我们可能会奇怪,lspci是怎么通过这么一个编号就知道这个设备是一个intel产的以太网设备呢?答案是这一切都写到了一个数据库里。路径是 /usr/share/hwdata/pci.ids 和 /usr/share/hwdata/pci.ids.gz ,用来更新的网址是(https://pci-ids.ucw.cz/)
如果使用 lspci 的 -nn 选项,看下命令的输出:
重点关注下红色标注的地方,0200是一个用来区分不同设备的编号,网络设备、存储设备、多媒体设备都有自己的编号
02:表示这是一个网络控制器
00:表示这是一个以太网控制器
8086:1533 这是一个厂商特有的编号,8086 是 intel的编号(Vendor ID),intel所有的设备都是使用这一编号,1533表示这是一个I210的GE网口
需要注意的是这个数据库的信息也是通过志愿者主动上传的,因此错误的数据也是有可能存在的。
总结以下这个查找过程,首先 lspci 遍历每个PCI设备并从设备的ROM中获取上述的所有信息,包括PCI地址 (就是开头的那一串数字) ,device class ID(0200) 以及 Vendor ID:Device ID,然后通过查找数据库就能每个PCI地址对应的厂商以及设备类别信息。
参考:
https://pci-ids.ucw.cz/
https://ichenfu.com/2019/11/03/interpreting-the-output-of-lspci/
https://zhuanlan.zhihu.com/p/33932734
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/28284.html