openubmc固件升级后web页面机型图片无法显示

问题定位过程:
1 查看网页图片路径为theme/custom/bmcimg/product/img_03.png,而正确情况下此处应该为img_01.png
2 查看webui代码发现请求为/UI/Rest/Overview,返回信息为

{
    "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"导致显示路径错误
3 查看rackmount组件/interface_config/web_backend/mapping_config/Overview.json文件中
ProductPicture接口为bmc.kepler.Systems.Product
4 查看资源树的值,以及硬件自发现的日志发现,PSR从EEPROM中获取
4.1 查看资源树product属性

mdbctl 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`"

4.2 一键收集日志发现PSR的connector加载的文件来自eeprom.即来自挂耳的eeprom
查看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

5 尝试从正常环境拷贝csr文件到异常环境重启后,图片路径变为img_01,正常显示图片。新日志信息为:

Connector_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

因此,我们判断结论为:因为出的包并没有对应产品的psr,导致去读了挂耳的PSR,挂耳中的product对象为"ProductImage":“img_03”

在framework.log日志中会记录csr的加载来源,同时一键收集中也会包含eeprom的csr
可以通过这里确认是否符合你们的判断

cat /var/log/framework.log |grep "start to process sr data"

找到PSR相关的日志,如果是来源于/opt/bmc/sr/则是使用内置的csr

通过定位,使用开源社区出的hpm包,缺少PSR文件,cat /var/log/framework.log |grep “start to process sr data”,从日志发现,PSR来源于验证HPM包的挂耳eeprom,请问一下,开源社区出的hpm中为product openubmc缺少14100513_000000001040302044503.sr,这个文件是否会重新加入进来。

此机型当前openUBMC社区尚不支持,建议单独联系PAE

如果希望优先使用内置的PSR而非EEPROM中的PSR,用户可以自行内置PSR,并且设置DataVersion字段为较高值(例如3.99)

好的,这种方式可以的