问题描述
旧 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
重现步骤
-
容器内执行 which crypto_tool,无输出
-
检查 bingo 源码仓库(https://gitcode.com/openUBMC/bingo),payload 目录无 crypto_tool 二进制
-
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)及社区经验,需完成以下步骤:
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 或过渡包。