通过对象查找来自哪份sr
更新时间: 2025/12/15
在Gitcode上查看源码

本文主要介绍如何通过对象的名字快速找到对应的csr,以及每份sr在dump_info里对应的文件是什么。

⦁ 来自csr的对象会在最后加上Group position作为唯一标识,可以通过这个查找 示例:Dft12V0Vlot_1_0101011A对应Group position为0101011A 在framework.log里查对应的Group position,找到self-discovery关键字 往下找解析的sr是哪份,关键字:start to process sr data source里的路径就是这份sr在环境上的位置,即:/opt/bmc/sr/BCUExtend_BC83AMDA_0.sr

环境上的sr和一键收集下来的sr如何对应

一键收集下来的日志中,sr文件放在dump_info/AppDump/hwdiscovery里 收集下来的sr用对应的连接器替换原本的sr名字,如:/opt/bmc/sr/BCUExtend_BC83AMDA_0.sr对应的Connector是Connector_BCUExtend_010101,在AppDump/hwdiscovery文件夹中的名字就是Connector_BCUExtend_010101.sr 一键收集中的.sr文件可以直接打开,若是.bin文件,则可以使用从bin文件提取SR数据的方法进行解析,从bin文件提取SR数据的具体方法见文末 一键收集日志时会统一打印连接器对应的sr是哪份,可以通过这个快速查找

sr在环境上的命名是怎么来的

sr的命名通常是三段式的,格式为:Bom_Id_AuxId 例如Connector_BCUExtend_010101在环境上对应的sr为BCUExtend_BC83AMDA_0.sr,通过之前的方法找到连接器对象所在的sr 可以看到Bom、ID、AuxId和sr的文件名是一一对应的

天池组件的csr怎么来的

非天池组件通过Bom_Id_AuxId在环境上直接读取,天池组件则是需要读取Eeprom里的数据获取sr。 IdentifyMode为3表示天池组件

根据连接器对象获得Eeprom对象

Eeprom命名规则为:Eeprom_IdentifyMode_position[_context.position],最后一个_context.position可能没有 position是Group position的最后两位,当然也可以直接从sr里配的对象数据中读取,上图中的Position字段就是实际的position,也就是3 例如:根据Connector_PCIE_SLOT2TianChi_01010109,得到Eeprom对象名称Eeprom_3_5_01010109 可通过shell命令直接导出Eeprom二进制数据文件,方法如下:

  1. 先通过busctl读取Eeprom数据到文本文件 根据实际情况,更改如下Eeprom的path:/bmc/kepler/Chip/Eeprom/Eeprom_3_5_01010109
shell
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Eeprom/Eeprom_3_5_01010109 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0 16384 | cut -d '' -f 3- | awk '{for(i = 1;i <= NF;i++){$i = sprintf("\\x%x", $i)} gsub(" ", " "); print $0}' > /tmp/Eeprom_3_5_01010109.txt
  1. 将Eeprom数据转换为二进制文件
shell
rawdata='cat /tmp/Eeprom_3_5_01010109.txt'; echo -e "$rawdata" > /tmp/Eeprom_3_5_01010109.bin
  1. 导出后可以查看二进制文件,修改权限后即可下载
shell
~ ~ # ls -al /tmp/Eeprom_3_5_01010109.bin
-rwxrwxrwx    1 root     root         16385 Jan  1 00:49 /tmp/Eeprom_3_5_01010109.bin
~ ~ #

解析完成后,会将Eeprom的sr数据保存到/data/opt/bmc/sr/backup下,一键收集时也会收集到hwdiscovery里。

从bin文件提取SR数据的方法

执行extract_bin.py脚本

shell
python extract_bin.py [bin文件]

执行结果:生成提取出来的CSR或PSR文件到bin文件所在目录下,以及数字签名数据和OEM数据(如果存在) 一键收集时会将BMC环境的EEPROM数据作为bin文件导出到dump_info/AppDump/hwdiscovery/目录下