跑装备定制化后,丢失fru的 Product Asset Tag 信息

// 此模板仅供参考,如果不适用可以修改

问题描述

跑装备定制化后,丢失fru的 Product Asset Tag 信息

环境信息

重现步骤

  1. 查看fru信息

  2. 将customset.ini文件上传到/tmp目录下

  3. 发送启动ipmi命令:ipmitool raw 0x30 0x90 0x21 0xf0

  4. 查看定制化结果:ipmitool raw 0x30 0x90 0x22 0xef

    返回00,表示进行中
    返回01,表示定制化已完成

  5. 定制化完成后查看fru信息,丢失fru的 Product Asset Tag 信息

期望结果

实际结果

尝试过的解决方案

交叉验证查看是否Product域,定制其他信息导致,Product Asset Tag 信息被覆盖丢失

验证结果发现和定制信息无关,只要跑定制化,Product Asset Tag 信息就会丢失

分析结论

[详细总结您对此问题的分析结论]

答案内容由AI生成,仅供参考:

结论

  1. 默认行为导致丢失:装备定制化时,若 customset.ini 中未显式配置 BMCSet_CustomAssetTag 为 on 并指定 Custom_AssetTag 的值,则系统按默认值 BMCSet_CustomAssetTag=off 执行,进入 else 分支,直接清空产品资产标签。
  2. 与其它定制项无关:用户交叉验证发现只要跑定制化就会丢失,与定制其他信息无关。这进一步印证了问题是出在 AssetTag 定制项本身默认清空的逻辑上,而非其他定制项覆盖。
  3. 并非 Bug 而是设计行为:该行为是产品定制化功能的预期设计——默认关闭资产标签定制时,会清空原有值。如果需要在定制过程中保留或设置特定资产标签,必须在 customset.ini 中明确配置:
    BMCSet_CustomAssetTag=on
    Custom_AssetTag=<期望的资产标签值>
    

建议解决方案

  1. 在 customset.ini 中添加以下配置项以保留或设置 Product Asset Tag:
    BMCSet_CustomAssetTag=on
    Custom_AssetTag=YOUR_ASSET_TAG_VALUE
    
  2. 或者,若希望定制化后不修改资产标签,需修改 BMC 侧默认处理逻辑(需要固件开发配合),将“清空”改为“保留原值”。
  3. 此外,也可以通过其他方式(如 SetProductAssetTag 方法或直接使用 ipmitool fru edit 命令)在定制化流程之外单独设置资产标签。
点击此处查看详细分析解答

问题分析

根据提供的上下文信息,跑装备定制化后丢失 FRU 的 Product Asset Tag 信息,其根本原因在于装备定制化流程中对产品资产标签的默认处理逻辑。

关键证据

在上下文文档片段中找到以下相关内容(来自定制项表格):

定制项名称 取值 默认值 处理逻辑
BMCSet_CustomAssetTag
Custom_AssetTag
BMCSet_CustomAssetTag: on/off
Custom_AssetTag: 0-48个ASCII字符
BMCSet_CustomAssetTag=off
Custom_AssetTag=“”
if(BMCSet_CustomAssetTag == on)
设置产品资产标签为Custom_AssetTag的值
else
清空产品资产标签

结论

  1. 默认行为导致丢失:装备定制化时,若 customset.ini 中未显式配置 BMCSet_CustomAssetTag 为 on 并指定 Custom_AssetTag 的值,则系统按默认值 BMCSet_CustomAssetTag=off 执行,进入 else 分支,直接清空产品资产标签。
  2. 与其它定制项无关:用户交叉验证发现只要跑定制化就会丢失,与定制其他信息无关。这进一步印证了问题是出在 AssetTag 定制项本身默认清空的逻辑上,而非其他定制项覆盖。
  3. 并非 Bug 而是设计行为:该行为是产品定制化功能的预期设计——默认关闭资产标签定制时,会清空原有值。如果需要在定制过程中保留或设置特定资产标签,必须在 customset.ini 中明确配置:
    BMCSet_CustomAssetTag=on
    Custom_AssetTag=<期望的资产标签值>
    

建议解决方案

  1. 在 customset.ini 中添加以下配置项以保留或设置 Product Asset Tag:
    BMCSet_CustomAssetTag=on
    Custom_AssetTag=YOUR_ASSET_TAG_VALUE
    
  2. 或者,若希望定制化后不修改资产标签,需修改 BMC 侧默认处理逻辑(需要固件开发配合),将“清空”改为“保留原值”。
  3. 此外,也可以通过其他方式(如 SetProductAssetTag 方法或直接使用 ipmitool fru edit 命令)在定制化流程之外单独设置资产标签。

当前Product Asset Tag定制化项的处理逻辑如下:

if(BMCSet_CustomAssetTag == on)
  设置产品资产标签为Custom_AssetTag的值
else
  清空产品资产标签

如果customset.ini中未定制BMCSet_CustomAssetTag为"on",或未定制Custom_AssetTag的值,就会导致Product Asset Tag被清空。