Nath3y1r
(Nath3y1r)
1
ibmc版本:3.01.00.40
openubmc版本:26.09(bd7ef4be520b87362839656681c7bffb148114df)
根据论坛指导完成如下操作:
openubmc修改:
-
mainfest添加自签名,并在opt/bmc/trust/partner下预置rootca.der
-
[hpm_encrypt] 改为true
bios,ibmc重签名:
1.使用bingo hpm_signer 重签名 华为bios和ibmc
操作过程:
1.ibmc3.01.00.40 升级为完成如上修改的openubmc
2.升级重签名后bios和ibmc
报错如下
1970-01-01 00:03:46.409912 firmware_mgmt NOTICE: file_transfer.lua(169): start to move file [temp_upgrade_file.hpm] from tmp to shm
1970-01-01 00:03:46.499312 firmware_mgmt NOTICE: file_transfer.lua(174): move_file_s ok:true, err:0
1970-01-01 00:03:46.524101 firmware_mgmt NOTICE: validate_sign.lua(174): the custom ca certificate is exist, load custom certificate
1970-01-01 00:03:46.544187 firmware_mgmt NOTICE: validate_sign.lua(199): verify signature successfully
1970-01-01 00:03:46.545500 firmware_mgmt NOTICE: action.lua(66): Validate signature successfully
1970-01-01 00:03:46.547314 firmware_mgmt NOTICE: hpm_package.lua(841): ManufacturerValidateEnabled is false, there is no need to validate manufacture_id.
1970-01-01 00:03:46.552879 firmware_mgmt ERROR: hpm_package.lua(203): read from profile_en failed, generate new key and try again
1970-01-01 00:03:46.554307 firmware_mgmt ERROR: C: [WSEC_CBB][637] (UTC) 1970-01-01 00:03:46 The file is not KSF format.
1970-01-01 00:03:46.555403 firmware_mgmt ERROR: C: [WSEC_CBB][790] (UTC) 1970-01-01 00:03:46 ReadRootKeyByHandle() failed 255
1970-01-01 00:03:46.556566 firmware_mgmt ERROR: C: [WSEC_CBB][1358] (UTC) 1970-01-01 00:03:46 MemImportKsf ReadKsf failed, result = 255
1970-01-01 00:03:46.557706 firmware_mgmt ERROR: hpm_package.lua(231): decrypt srcfile failed, err:./opt/bmc/libmc/lualib/mc/logging.lua:520: kmc import ksf failed, ret = 255
1970-01-01 00:03:46.558912 firmware_mgmt NOTICE: hpm_package.lua(176): decrypt srcfile failed, try to decompress directly
1970-01-01 00:03:46.561880 firmware_mgmt ERROR: utils.lua(203): secure_tar_unzip failed: -3003
1970-01-01 00:03:46.563913 firmware_mgmt ERROR: task_instance.lua(253): parse package(hw_bios_image.hpm) failed, ret:./opt/bmc/libmc/lualib/mc/utils.lua:1204: cannot open v2 persistence file.
1970-01-01 00:03:46.652452 firmware_mgmt NOTICE: task_mgmt.lua(174): task[Id: 3909415348, StartTime: 1970-01-01T00:03:45+00:00, Progress: 0, State: Exception] will be destroyed after 10 minutes
答案内容由AI生成,仅供参考:
结论
您遇到的问题与 openUBMC 社区中已记录的多起“iBMC 升级 openUBMC 后重签名固件升级失败”案例高度一致。日志表明签名有效,但固件包未被正确解密,大概率与 hpm_encrypt 加密配置或重签名流程不完整有关。请优先核对加密配置步骤,并检查 community_enable 设置是否正确。
点击此处查看详细分析解答
根据您提供的日志和背景,本次升级失败的原因可以归纳为:签名校验已通过,但固件包在解密/密钥导入阶段未被识别为预期的 KSF 格式,导致最终解析失败。
日志关键点分析
从报错日志可以看到以下执行链条:
-
文件传输与签名校验正常
move_file_s ok:true:升级文件成功从 tmp 移动到 shm。
the custom ca certificate is exist, load custom certificate:自定义 CA 证书已加载。
verify signature successfully:签名验证成功。
ManufacturerValidateEnabled is false:未启用 manufacturer 校验。
-
失败发生在解密阶段
read from profile_en failed, generate new key and try again
The file is not KSF format
ReadRootKeyByHandle() failed 255
MemImportKsf ReadKsf failed, result = 255
kmc import ksf failed, ret = 255
-
降级解压也失败
- 解密失败后尝试直接解压,但
secure_tar_unzip failed: -3003
- 最终
parse package(hw_bios_image.hpm) failed,并提示 cannot open v2 persistence file
也就是说,重签名后的 hw_bios_image.hpm 虽然通过了签名校验,但该包并未被 BMC 识别为可解密的 KSF 加密格式,导致升级中断。
与已知案例的关联
上下文资料中有多个与您高度相似的案例:
- 有用户使用 iBMC 3.01.00.40 升级 openUBMC 25.12,按论坛指导完成修改和重签名后,出现了几乎相同的日志:签名验证成功,但随后在 KSF 格式解密阶段失败。
- 另一个案例是 OpenUBMC2603 + iBMC 3.01.00.40,升级到 70% 时失败,发帖人最终确认是“加密的配置步骤搞错了,修改过后可以了”。这说明本类问题常见原因是
hpm_encrypt 相关配置或重签名流程未完全按指导执行。
- 论坛中还有“升级重签名 bios 报错”的讨论,涉及
community_enable 参数:社区包需要 community_enable: true,非社区包可能需要 community_enable: false;但最新 manifest 中该组件可能已被锁定为 true,无法直接修改,这也是用户常见困惑点。
建议排查方向
-
核对加密/重签名完整步骤
重点检查 [hpm_encrypt] 相关配置是否与参考指导完全一致,包括自签名 CA 的创建、rootca.der 的预置位置、以及 bingo hpm_signer 重签名时是否启用了符合 openUBMC 要求的加密选项。参考案例表明,这类问题往往由“加密配置步骤搞错”导致。
-
确认 community_enable 配置
您提供的操作步骤中未提及 firmware_mgmt 的 community_enable 设置,而相关参考指导中包含了“将 firmware_mgmt 改为 community_enable: false”的步骤。建议核对您的包类型并检查此配置是否匹配。
-
如果仍无法解决,建议提供完整日志到社区
上下文资料显示,openUBMC 论坛的类似问题通常需要提供完整日志(如 app.log、framework.log)以便进一步定位。您也可以联系 PAE 获取支持。
结论
您遇到的问题与 openUBMC 社区中已记录的多起“iBMC 升级 openUBMC 后重签名固件升级失败”案例高度一致。日志表明签名有效,但固件包未被正确解密,大概率与 hpm_encrypt 加密配置或重签名流程不完整有关。请优先核对加密配置步骤,并检查 community_enable 设置是否正确。
Nath3y1r
(Nath3y1r)
4
这个可以先从ai给的建议排查下加解密流程,仅从日志看内部也没办法定位
Nath3y1r
(Nath3y1r)
8
目前我知道加密流程是[hpm_encrypt] 改为true,使用crypto工具进行加密,请问解密是怎样的,需要预置密钥吗?
yaoshun1
(yaoshun)
9
你本地环境有crypto_tool工具吗,which crypto_tool
Nath3y1r
(Nath3y1r)
10
有这个工具,当前测试从ibmc直接升级openubmc,不用这个工具无法升级
yaoshun1
(yaoshun)
11
你应该还需要替换manifest下面build/manufacture/misc下的几个dat文件,这几个文件和加密是强关联的
ubmc
(Ubmc)
12
想问下 如果构建ubmc的密钥跟ibmc的不一样 这样能升级成功吗 没有现在用的ibmc包的 我试了下升级提醒包无效 有什么办法吗
Nath3y1r
(Nath3y1r)
13
无效的升级包一般是缺少crypto_tool加密工具的加密环节
ubmc
(Ubmc)
14
我是根据文档 构建你的BMC | 文档中心 | openUBMC 步骤操作的 使用的默认的签名方式 manifest.yml 里边签名相关的也没有改动。这样是没法直接从当前的 ibmc 更新到ubmc吗。我看论坛里其他帖子说要个过渡包,不懂过渡包是怎么生成的。
Nath3y1r
(Nath3y1r)
15
BMC 3.xx.xx.xx版本升级openubmc指导 - 交流互助区 - openUBMC 论坛
参考该链接方式不需要过渡包,过渡包是华为厂内制作的。
但是该链接内的一些工具仍需要联系华为pae获取