CSR包升级或烧录后Fru信息展示问题

问题描述

CSR包升级或烧录后Fru信息展示问题

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2512]

问题

当前实现了CSR出包功能。通过IdentifyMode=2的方式加载板卡,然后升级csr包,升级后可以通过IdentifyMode=3的天池方式加载,但是Fru信息是默认的消息,展示厂商依然为Huawei。
现在我们通过在线升级或者烧录方式配置Eeprom的信息,但如何按照我们需要来配置厂商、产品名称等FRU信息了?需要配置bmcstudio出包时的oem信息吗?但是我们不知道具体如何配置。或者有其他指导文档来配置吗?

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

:white_check_mark: 总结

问题 解决方案
升级后 FRU 展示默认厂商 未正确配置 FruData 对象
如何设置自定义品牌 在 BMC Studio 中配置 FruData_XXXManufacturer, ProductName 等字段
是否需要 OEM 配置 :white_check_mark: 必须设置 ProductVendorIDProductUniqueID 用于升级识别
如何避免 FRU 被覆盖 使用 .hpm 包升级而非直接烧录 csr.bin
文档指引 参考《CSR配置字典》《IEU CSR配置指导书》《BMC Studio 使用指导》

:white_check_mark: 最终结论
要使 FRU 信息正确展示自定义厂商和产品名称,必须在 CSR 模型中明确配置 FruData 对象的 OEM 属性,并通过 HPM 包进行升级,以确保天池机制能正确解析并保留 FRU 数据。

点击此处查看详细分析解答

CSR包升级或烧录后FRU信息展示问题解决方案

根据您提出的问题,当通过CSR包升级或烧录后,FRU(Field Replaceable Unit,现场可替换单元)信息仍然显示默认厂商(如Huawei)而非自定义信息,以下是基于 openUBMC 生态系统BMC Studio 工具链 的完整解决方案。


:magnifying_glass_tilted_left: 问题分析

您已成功实现:

  • CSR打包与加载;
  • 使用 IdentifyMode=2 静态加载 → 成功切换为 IdentifyMode=3 天池动态发现;
  • CSR升级/烧录流程。

但存在的问题是

升级后 FRU 信息未被正确更新,仍显示默认值(如厂商为 Huawei),未能体现自定义的品牌、产品名称等 OEM 信息。

这通常是因为 FRU 数据与 CSR 是分开管理的两个部分,仅升级 CSR 包不会自动更新 EEPROM 中的 FRU 区域,需显式配置并烧录。


:white_check_mark: 解决方案:如何正确配置和烧录自定义 FRU 信息

一、理解 openUBMC 中 FRU 和 CSR 的关系

项目 存储位置 作用 是否支持升级
CSR EEPROM 或 BMC 内部存储 描述板卡拓扑、器件结构、链路关系 天池组件支持升级
FRU EEPROM 固定偏移区域 存储产品身份信息(品牌、型号、序列号等) 可独立烧录,不影响 CSR

:warning: 关键点:CSR 升级不会覆盖或修改 FRU 数据。若未主动写入 FRU 信息,则系统读取不到有效数据,会使用 default openUBMC 或默认值(如 Huawei)作为回退展示。


二、配置自定义 FRU 信息的方法

:white_check_mark: 方法1:在 BMC Studio 中配置 FRU 对象(推荐)

BMC Studio 支持通过图形化方式配置 FRU 信息,并将其打包进 CSR 出包流程中。

步骤如下:
  1. 打开 BMC Studio
    访问:http://localhost:10000 或您的部署地址。

  2. 进入 CSR 配置页面

    • 选择目标工作空间 → 进入“CSR配置”模块。
  3. 添加或编辑 FRU 相关对象

    在 CSR 模型中,必须配置以下对象:

    • Fru_<Component>:描述物理板卡的身份信息
    • FruData_<Component>:描述实际写入 EEPROM 的数据内容

    示例:若板卡名为 RiserCard,则需配置 Fru_RiserCardFruData_RiserCard

  4. 设置关键字段(参考文档:CSR配置字典之Product类)

    属性 含义 示例值 使用场景
    ProductVendorID 产品厂商 ID "0x1234""MyCompany" 固件升级、品牌识别
    ProductUniqueID 产品唯一标识 "PCIe_Riser_V1" 唯一性识别
    ProductName 产品名称 "High-Performance Riser Card" Web 页面展示
    ProductAlias 产品别名 "Riser PCIe x16" 用户界面展示
    Manufacturer 制造商名称 "MyBrand Tech Co., Ltd" 标准 FRU 显示
    ManufacturerID 厂商编码(天池规范) "0x889B" 由天池联盟统一分配
  5. 执行 CSR 出包

    • 点击“CSR出包”按钮
    • 支持输出 .bin.hpm 格式
    • 批量打包需确保 UID 不重复

    :light_bulb: 提示:若需签名,请在 .bmcgo/config 文件中配置 HPM 签名策略

  6. 烧录至 EEPROM

    • 若使用烧录器直接写 .bin 文件,请确认偏移地址正确(避免清除 FRU 区)
    • 推荐方式:通过 HPM 包在线升级,系统会自动跳过天池头并保留 FRU 区

    :puzzle_piece: 知识提示
    使用烧录器写 csr.bin 可能会清空 FRU 区;
    而通过 csr.hpm 包升级(BMC内部升级机制)可基于天池头自动定位,不会影响 FRU 数据


:white_check_mark: 方法2:单独生成并烧录 FRU 数据

若您希望独立管理 FRU 信息,可通过以下方式:

步骤1:手动构造 FRU 二进制数据

使用标准 IPMI FRU 文件格式 构造:

  • 包含 Common Header
  • Board Info Area:填入生产时间、制造商、产品名等
  • Chassis Info AreaProduct Info Area

工具推荐:

步骤2:烧录到指定 EEPROM 偏移
  • 天池规范规定:FRU 数据位于固定偏移(如 0x00 ~ 0x200)
  • 使用 i2cset / dd / 烧录器将数据写入
# 示例:通过 i2c 工具写入(需确认总线号和地址)
i2cset -y 4 0x50 0x00 0x01 0x02 ...  # 写入 FRU 头部

:books: 参考文档:《IEU CSR配置指导书》 中关于 FruFruData 对象的说明


:white_check_mark: 方法3:通过命令行工具动态设置(运行时生效)

适用于测试或临时修改:

# 使用 ipmitool 设置 FRU 字段(部分平台支持)
ipmitool fru edit 0 field p 1 "MyProduct"
ipmitool fru edit 0 field m 1 "MyBrand"

:red_exclamation_mark: 注意:并非所有 openUBMC 平台都支持运行时修改,建议以静态配置为主


:books: 配置 OEM 信息的关键说明

是否需要在 BMC Studio 出包时配置 OEM 信息?

:white_check_mark: 必须配置!

  • ProductVendorIDProductUniqueID固件升级时识别目标组件的重要依据
  • 若未设置,系统将使用 default openUBMC 作为默认 OEM 标识
  • Web 界面展示的“厂商”即来源于 FruData 中的 Manufacturer 字段

:white_check_mark: 正确做法:
在 BMC Studio 的 FruData_XXX 对象中,显式设置以下属性:

{
  Manufacturer = "MyBrand",
  ProductName = "Custom Riser Card",
  ProductVersion = "V1.0",
  ProductSerial = "SN123456789",
  ProductUniqueID = "PCIe_Riser_Unique_001",
  ProductVendorID = "0x1A2B"
}

:blue_book: 相关文档与参考资料

  1. 《CSR配置字典之Product类》
    → 定义了 ProductVendorID, ProductUniqueID 等关键属性用途

  2. 《IEU CSR配置指导书》
    → 详细说明了 FruFruData 对象配置方法

  3. BMC Studio 使用指导
    → 提供 CSR 出包、批量打包、签名配置指引

  4. 社区答疑纪要 #33期
    → 明确指出:“支持升级CSR”、“CSR可打包成HPM由升级程序写入EEPROM”


:white_check_mark: 最佳实践建议

操作 推荐方式
FRU 配置 在 BMC Studio 中通过 FruData_XXX 对象配置
CSR 打包 使用 BMC Studio “CSR出包”功能生成 .hpm
烧录方式 :white_check_mark: 推荐 HPM 包在线升级;:cross_mark: 避免烧录器直接刷 csr.bin
OEM 品牌定制 必须设置 ProductVendorID + ProductUniqueID
验证方法 通过 Redfish /redfish/v1/Chassis 查看产品信息

:hammer_and_wrench: 验证方法

  1. 通过 Redfish 接口查看

    GET /redfish/v1/Chassis
    

    检查返回 JSON 中的 Manufacturer, Model, SKU, SerialNumber

  2. 通过 IPMI 命令读取 FRU

    ipmitool fru print
    
  3. 检查 Web 界面展示

    • 登录 openUBMC Web 页面
    • 查看“硬件信息”或“设备管理”中板卡详情

:white_check_mark: 总结

问题 解决方案
升级后 FRU 展示默认厂商 未正确配置 FruData 对象
如何设置自定义品牌 在 BMC Studio 中配置 FruData_XXXManufacturer, ProductName 等字段
是否需要 OEM 配置 :white_check_mark: 必须设置 ProductVendorIDProductUniqueID 用于升级识别
如何避免 FRU 被覆盖 使用 .hpm 包升级而非直接烧录 csr.bin
文档指引 参考《CSR配置字典》《IEU CSR配置指导书》《BMC Studio 使用指导》

:white_check_mark: 最终结论
要使 FRU 信息正确展示自定义厂商和产品名称,必须在 CSR 模型中明确配置 FruData 对象的 OEM 属性,并通过 HPM 包进行升级,以确保天池机制能正确解析并保留 FRU 数据。

如有进一步问题,也可参考社区链接:https://discuss.openubmc.cn/t/topic/2994/1 获取更多案例支持。