iBMC 3.01.00.10 在web上带外通道烧录 openUBMC ,显示无效的升级包

问题描述

旧 iBMC 3.01.00.10 升级社区版 openUBMC 固件报"无效的升级包"。根据 topic/2060 问题反馈补充段,“无论自签名还是无签名方式,从模组版本升级到社区版本都需要配置文件的加密流程,需要 crypto_tool 工具用于加密”。但容器内找不到 crypto_tool 工具,无法完成加密流程。

环境信息

  • 操作系统:Ubuntu 24.04(Docker 容器)

  • 软件版本:openUBMC 26.12 基线,bingo 0.8.32

  • 硬件配置:鲲鹏 920S 加固服务器, iBMC 3.01.00.10

重现步骤

  1. 容器内执行 which crypto_tool,无输出

  2. 检查 bingo 源码仓库(https://gitcode.com/openUBMC/bingo),payload 目录无 crypto_tool 二进制

  3. 246 帖子(社区工程能力每日答疑)称"crypto_tool 由 bingo 安装",但实测 bingo 0.8.32 未附带

    基本的实现依据模组开发FAQ(开发构建问题持续补充) - 交流互助区 - openUBMC 论坛来执行,但是缺失了crypto_tool,证书这些,不太明确现在缺了什么东西才失败

期望结果

获取 crypto_tool 工具,完成 HPM 包配置文件加密流程,使旧 iBMC 3.01.00.10 能识别并升级社区版 openUBMC 固件。

实际结果

编过openUBMC出包以后,旧 iBMC 升级报"无效的升级包"。

尝试过的解决方案

1. bingo 升级:0.8.29 → 0.8.32,crypto_tool 仍未出现

2. GitCode 仓库检索:bingo 源码 payload/usr/bin/ 下无 crypto_tool

3. 社区文档检索:官方文档标注"待补充"

4. 论坛搜索:246 帖子称"由 bingo 安装"但实测不成立;4464 帖子建议"联系项目支持"

分析结论

crypto_tool 在社区版工具链中确实缺失。可能原因:

1. 该工具仅在厂商侧定制版 bingo 中提供

2. 社区版尚未开放此工具(文档标注"待补充")

3. 需要联系 PAE(项目支持)获取

补充信息:

- 已完成 rootfs_BMC → rootfs_iBMC 替换(hpm_header.config + bmcgo 3 个 Python 文件)

- 已配置 account manufacture: true

- 已集成 busybox 调试包

- 编译产物 rootfs_openUBMC.hpm 约 90MB

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

四、总结

核心结论:您无法在容器中找到 crypto_tool,是因为该工具未包含在社区版工具链中,必须通过华为 PAE 获取。在获得该工具并正确配置加密流程(hpm_encrypt、.dat 文件、manufacture 模式)后,方能完成从 iBMC 3.01.00.10 到 openUBMC 的升级。若无法获取工具,可向 PAE 申请过渡包,实现无加密升级。

建议您按照上述步骤逐一排查配置,并积极联系项目支持获取 crypto_tool 或过渡包。

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

根据您提供的信息和社区讨论内容,针对 iBMC 3.01.00.10 通过 Web 带外通道升级 openUBMC 时提示“无效的升级包” 的问题,现给出以下分析及解决建议。


一、问题原因分析

“无效的升级包”报错通常由以下原因引起(依据社区帖子和故障分析文档):

  • 升级包未进行加密:从 iBMC(华为固件)升级到社区版 openUBMC 时,非社区包必须经过加密流程(hpm_encrypt 开启,并使用 crypto_tool 工具),否则旧 iBMC 无法识别。
  • 签名不匹配:社区版 openUBMC 使用社区签名,而 iBMC 使用华为签名,直接升级会因验签失败而报错。
  • 缺少关键配置文件:如 manifest.yml 中未启用 manufacture: true 模式,或未替换 build/manufacture/misc 下的相关 .dat 文件,导致加密流程不完整。

您描述的 容器内找不到 crypto_tool 正是问题核心——该工具在社区版工具链中缺失,仅华为 PAE(项目支持)提供的定制版 bingo 中附带。


二、解决方案建议

1. 获取 crypto_tool 工具

  • 社区版工具链未提供:经论坛讨论和实测,bingo 0.8.29 → 0.8.32 均未自带该工具,开源仓库 payload/usr/bin/ 下也没有。
  • 正确途径:联系华为 PAE(或项目支持)获取 crypto_tool 及配套的签名/加密配置文件。社区帖子明确提到“该工具属于高可用版本,需要找一下PAE”。

2. 完善出包配置(参考官方指导)

根据 “BMC 3.xx.xx.xx版本升级openubmc指导”(topic 2060)及社区经验,需完成以下步骤:

  • 修改 manifest.yml:将 account.option.manufacture 设置为 true,启用制造模式(默认账户 Administrator / openUBMC@2025)。
  • 配置加密参数:在 .bmcgo/config 中添加:
    [hpm_encrypt]
    enable = true
    
  • 替换关键数据文件:在出包时,将 build/manufacture/misc 下的 .dat 文件替换为与加密强关联的正确版本(如 UID 格式 00000001030302023925)。

3. 区分社区包与非社区包

  • 如果是社区官方发布的包,需在配置中设置 community_enable: true,此时系统会跳过验签和加解密流程。
  • 若为自签名或非社区包,则必须完成上述加密流程,否则会出现“无效的升级包”。

4. 使用过渡包(可选)

  • 部分用户反映,直接升级需要“过渡包”(由华为厂内制作)。社区帖子说明:过渡包 = 华为制作的、可将 iBMC(华为签名)升级为 openUBMC(社区签名)的 HPM 包。若无法获取 crypto_tool,申请过渡包是另一条路径。

5. 验证构建产物

  • 确认最终生成的 rootfs_openUBMC.hpm 中包含关键服务(如 bmc.kepler.redfish.service、bmc.kepler.web_backend.service),且已正确签名加密。

三、参考资料与联系渠道


四、总结

核心结论:您无法在容器中找到 crypto_tool,是因为该工具未包含在社区版工具链中,必须通过华为 PAE 获取。在获得该工具并正确配置加密流程(hpm_encrypt、.dat 文件、manufacture 模式)后,方能完成从 iBMC 3.01.00.10 到 openUBMC 的升级。若无法获取工具,可向 PAE 申请过渡包,实现无加密升级。

建议您按照上述步骤逐一排查配置,并积极联系项目支持获取 crypto_tool 或过渡包。

请联系项目支撑获取对应二进制工具