问题背景
- 单板类型:NA;
- 软件版本:NA;
- 涉及功能:BMC升级;
- 触发条件:包中不包含对应产品的psr时,升级openubmc固件。
- 业务表现:预期正常升级,web页面正常显示机型图片;实际openubmc固件升级后web页面机型图片无法显示。
问题复现步骤
- 升级VRD,通过日志观察VRD的升级状态。
- 升级结束后查询VRD的版本
关键日志信息
dump_info/AppDump/hwdiscovery/connectors.txt文件显示日志如下:
Connector_PSR_EEP_0101:
.AuxId : ""
.Bom :"14100513"
.Buses :["12c_8","I2c_2"]
.ChassisId :"1"
.GroupId :10
.GroupPosition :"01010A"
.Id :"00000001040302044503"
.IdentifyMode : 3
.LoadStatus :0
.ManagerId : "1"
.Presence : 1
.SilkText :"PSR"
.Slot : 1
.SystemId : 1
.Type :""
-SourcePath :/data/opt/bmc/sr/backup/000000001040302044503_01010A.bin
-DataSource :EEPROM
-EffectiveFormatVersion : 1.05
-EffectiveDataVersion : 1.05
-EepromFormatVersion : 1.05
-EepromDataVersion : 1.05
-LocalFormatVersion : NA
-LocalDataVersion : NA定位过程
查看网页图片路径为theme/custom/bmcimg/product/img_03.png,而正确情况下此处应该为img_01.png
查看webui代码发现请求为/UI/Rest/Overview,返回信息为:
text{ "Customer": "", "DeviceInfo": { "ProductName": "TaiShan 200 (Model 1280 V2)", "ProductAlias": "", "ProductSN": "", "SystemSN": "", "BMCVersion": "1.00.00.00", "BIOSVersion": null, "GUID": "8638D6A8-E8DF-ED11-B2C3-A8FFBA8D2AEA", "FQDN": "iBMC", "DomainName": "", "MAC": "20:22:01:86:01:98", "DeviceIPv4": "76.76.16.98", "DeviceIPv6": "0.0.0.0.0.0.0.0", "DefaultIPAddress": { "Address": "", "Mode": "", "Ipv6Address": "", "Ipv6Mode": "DHCPv6", "IpVersion": "IPv4AndIPv6" }, "TEEOSVersion": null }, "KVMClientUrl": "", "ProductImage": "img_03" }此处"ProductImage": "img_03"导致显示路径错误;
查看rackmount组件/interface_config/web_backend/mapping_config/Overview.json文件中ProductPicture接口为bmc.kepler.Systems.Product.
查看资源树的值,以及硬件自发现的日志发现,PSR从EEPROM中获取
查看资源树product属性
textmdbctl lsprop Product_1_01010A bmc.kepler.Object.Properties ClassName="Product" ObjectIdentifier=[1,"1","1","01010A"] ObjectName="Product_1_01010A" bmc.kepler.Systems.Product LanguageSet=["en","zh"] ProductAlias="" ProductId=0 ProductName="TaiShan 200 (Model 1280 V2) " ProductPicture="img_03" ProductUniqueID="0x0307BF03" ProductVendorID="0x00000001" ProductVersion="V6" bmc.kepler.Systems.Product.Custom Manufacturer="Huawei" ManufacturerOid="2011.2.235.1.1" OemData=[] SmsName="iBMA" bmc.kepler.Systems.Product.Device Name="" OwnerId="" SerialNumber="" bmc.kepler.Systems.Product.DigitalWarranty FirstPowerOnTime="N/A" Lifespan=0 StartPoint="`1996-04-10`"一键收集日志发现PSR的connector加载的文件来自eeprom.即来自挂耳的eeprom
查看dump_info/AppDump/hwdiscovery/connectors.txt
textConnector_PSR_EEP_0101: .AuxId : "" .Bom :"14100513" .Buses :["12c_8","I2c_2"] .ChassisId :"1" .GroupId :10 .GroupPosition :"01010A" .Id :"00000001040302044503" .IdentifyMode : 3 .LoadStatus :0 .ManagerId : "1" .Presence : 1 .SilkText :"PSR" .Slot : 1 .SystemId : 1 .Type :"" -SourcePath :/data/opt/bmc/sr/backup/000000001040302044503_01010A.bin -DataSource :EEPROM -EffectiveFormatVersion : 1.05 -EffectiveDataVersion : 1.05 -EepromFormatVersion : 1.05 -EepromDataVersion : 1.05 -LocalFormatVersion : NA -LocalDataVersion : NA尝试从正常环境拷贝csr文件到异常环境重启后,图片路径变为img_01,正常显示图片。新日志信息为:
textConnector_PSR_EEP_0101: .AuxId : "" .Bom :"14100513" .Buses :["12c_8","I2c_2"] .ChassisId :"1" .GroupId :8 .GroupPosition :"01010A" .Id :"00000001040302044503" .IdentifyMode : 3 .LoadStatus :0 .ManagerId : "1" .Presence : 1 .SilkText :"PSR" .Slot : 1 .SystemId : 1 .Type :"" -SourcePath :/opt/bmc/sr/14100513_000000001040302044503.sr -DataSource :LOCAL -EffectiveFormatVersion : 3.00 -EffectiveDataVersion : 1.05 -EepromFormatVersion : 3.00 -EepromDataVersion : 1.05 -LocalFormatVersion : 3.00 -LocalDataVersion : 3.13拷贝的文件为14100513_000000001040302044503.sr和14100513_000000001040302044503-soft.sr
问题原因
通过定位,使用开源社区出的hpm包,出的包并没有对应产品的psr,cat /var/log/framework.log |grep “start to process sr data”,从日志发现,PSR来源于验证HPM包的挂耳eeprom。
解决方案
如果希望优先使用内置的PSR而非EEPROM中的PSR,用户可以自行内置PSR,并且设置DataVersion字段为较高值(例如3.99)。