[原创]pciconf不显示硬件详细信息的解决_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2660 | 回复: 0   主题: [原创]pciconf不显示硬件详细信息的解决        下一篇 
wulcan
版主
等级:中校
经验:1795
发帖:124
精华:0
注册:2014-3-19
状态:离线
发送短消息息给wulcan 加好友    发送短消息息给wulcan 发消息
发表于: IP:您无权察看 2015-5-22 16:11:14 | [全部帖] [楼主帖] 楼主

FreeBSD下,可以用pciconf命令来显示设备的详细信息,比如网卡的信息显示如下:

# pciconf -lv
……
em0@pci0:3:0:0: class=0x020000 card=0x83691043 chip=0x10d38086 rev=0x00 hdr=0x00
vendor     = 'Intel Corporation'
device     = '82574L Gigabit Network Connection'
class      = network
subclass   = ethernet
……


但在一个系统,突然不显示vendor和device的名称,仅class和subclass:

# pciconf -lv
……
em0@pci0:3:0:0: class=0x020000 card=0x83691043 chip=0x10d38086 rev=0x00 hdr=0x00
class      = network
subclass   = ethernet
……


这是怎么回事呢?

原来pciconf从硬件读到的信息,也只有上面那几行,然后再根据硬件库的信息,解读其中厂商、型号、类别等信息,然后再显示。
class列,主要是类别信息,前两位是类别,01代表存储,02代表网卡,03代表网卡;后面两位是子类;最后两位是硬件描述。
card列:前四位是序列号,后四位是厂商,1043对应于华硕,8086对应于Intel,fffe是vmware的。
chip列:芯片,前四位是型号,后四位是厂商,10d3对应于82574L,8086就是Intel

这个对应的厂商及型号代码资料在哪儿呢?
在FreeBSD中,位于/usr/share/misc/pci_vendors文件中,你可以用vi打开看一下,这个是用tab分隔的资料库,里面有非常详细的资料,甚至比官方的数据还要详细,官方的数据:http://www.pcidatabase.com/reports.php?type=tab-delimeted,你可以下载下来,让pciconf去读取这个数据库,方法是把它存入到PCICONF_VENDOR_DATABASE中:

setenv PCICONF_VENDOR_DATABASE /home/pci_vendor


  再回到开头的主题,/usr/share/misc/pci_vendors应该不小心被删除了,所以导致pciconf读到不到厂商的信息,所以也就不会再去解读网卡型号了,解决方法也比较简单,复制一个就好了。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论