OpenUBMC2506 BMC固件升级失败问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:S920X20;
- 软件版本:openUBMC 25.06;
- 涉及功能:BMC固件升级,从华为版本到openubmc版本刷机;
- 触发条件:升级的固件包不是社区包又没有做包的加密。
- 业务表现:预期BMC固件升级成功;实际刷自己编译的Openubmc固件包,提示升级失败,查看日志,在app.log的出现升级写入配置文件失败。
问题复现步骤
- 在S920X20的环境上先刷了过渡包
- 在openUBMC 25.06增加自签名之后,编译成功,签名成功
- 刷自己编译的Openubmc固件包,提示升级失败,查看日志,在app.log的出现升级写入配置文件失败。
关键日志信息
查看日志,确认报错如下:
text
2025-07-11 15:46:18.324855 web_backend NOTICE: init.lua(99): upload content length:number 79188689, remaining capacity space:number 133316608
2025-07-11 15:46:40.998050 pcie_device ERROR: topo_reader.lua(147): [BizTopoMonitor] read topo info fail [repeated 6 times in 360s]
2025-07-11 15:46:40.998350 pcie_device ERROR: topo_monitor.lua(496): [BizTopoMonitor] Read topo info failed. [repeated 6 times in 360s]
2025-07-11 15:46:42.894996 firmware_mgmt NOTICE: utils.lua(34): The file path is local.
2025-07-11 15:46:42.902989 firmware_mgmt NOTICE: init.lua(33): update status to FS_SIMPLE_UPGRADING.
2025-07-11 15:46:42.915744 firmware_mgmt NOTICE: task_service.lua(49): task create success, task id: 2273928601
2025-07-11 15:46:42.973737 firmware_mgmt NOTICE: file_transfer.lua(142): start to move file [rootfs_openUBMC.hpm] from tmp to shm
2025-07-11 15:46:43.454534 firmware_mgmt NOTICE: file_transfer.lua(147): move_file_s ok:true, err:0
2025-07-11 15:46:43.514352 firmware_mgmt NOTICE: validate_sign.lua(217): config cms sign enable:true
2025-07-11 15:46:43.518829 firmware_mgmt NOTICE: validate_sign.lua(138): the custom ca certificate is exist, load custom certificate
2025-07-11 15:46:43.543643 firmware_mgmt NOTICE: validate_sign.lua(159): verify signature successfully
2025-07-11 15:46:43.933061 firmware_mgmt NOTICE: action.lua(37): Validate signature successfully
2025-07-11 15:46:43.974916 bmc_core ERROR: l_crypt.c(929): RSA_private_decrypt failed.
2025-07-11 15:46:43.976105 firmware_mgmt WARNING: init.lua(98): hpm_package.lua:613 > hpm_package.lua:512 > hpm_package.lua:221: An error occurred during the firmware upgrade process. Details: Upgrade write config file failed
2025-07-11 15:46:43.976679 firmware_mgmt ERROR: control.lua(298): parse package(rootfs_openUBMC.hpm) failed, ret:FirmwareUpgradeError: An error occurred during the firmware upgrade process. Details: Upgrade write config file failed.
2025-07-11 15:46:44.192407 firmware_mgmt NOTICE: init.lua(33): update status to FS_IDLE.
2025-07-11 15:47:00.319729 om ERROR: alm_callback.c(789): [license][alm] 0004[TIME]2025-07-11 15:47:00 lgen-ck err--350: Prd[1] ALM_LicGeneralQuery end 2030043238定位过程
- 从日志看出,当前升级包验签通过,但是RSA私钥解密报错。
- 分析出升级包不是社区包又没有做包的加密。
问题原因
升级的固件包不是社区包又没有做包的加密。 社区包会跳过验签和加解密,但是当前升级的固件包没标注是社区包(前面走了验签),但是又没加密,会导致升级失败。
解决方案
- 社区包要设置community_enable:true
- 非社区包要进行加解密