2609编译的hpm包,通过web升级到米尔开发板时,显示升级失败

问题描述

manifest更新到main最新,bingo版本的问题没有了,但是编译出来的hpm包,通过web升级到米尔开发板时,显示升级失败。

manifest构建时的修改:

component_drivers和vpd组件依赖版本,在profile.txt添加新增的sr文件,除此之外无其他修改。
conan: “component_drivers/1.2.261@openubmc/stable”
conan: “vpd/1.90.131@openubmc/stable”

manifest构建指令:

bingo build -t personal -b openUBMC

web升级失败截图:

app.log日志

2026-07-20 11:08:08.969962 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:08.975599 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:19.259106 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:19.265417 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:37.661061 web_backend NOTICE: init.lua(105): upload content length:number 85228419, remaining capacity space:number 134217728
2026-07-20 11:08:45.218559 firmware_mgmt NOTICE: active_fructl.lua(96): get host type is Singlehost
2026-07-20 11:08:45.219008 firmware_mgmt NOTICE: init.lua(96): get_ctx request:bmc.kepler.web_backend
2026-07-20 11:08:45.219841 firmware_mgmt NOTICE: utils.lua(34): The file path is Local.
2026-07-20 11:08:45.222946 firmware_mgmt NOTICE: init.lua(81): Upgrading_Flag is true
2026-07-20 11:08:45.241010 firmware_mgmt NOTICE: init.lua(41): update status to FS_SIMPLE_UPGRADING.
2026-07-20 11:08:45.269939 firmware_mgmt NOTICE: task_mgmt.lua(314): Create task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: New] successfully
2026-07-20 11:08:45.271001 firmware_mgmt NOTICE: task_service.lua(55): task create success, task id: 838202543
2026-07-20 11:08:45.272468 firmware_mgmt NOTICE: task_id_mgmt.lua(30): add serial task id(838202543) successfully
2026-07-20 11:08:45.277646 firmware_mgmt NOTICE: tasks_scheduling.lua(196): start tasks processor
2026-07-20 11:08:46.563627 firmware_mgmt NOTICE: task_mgmt.lua(445): Update task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Starting] successfully
2026-07-20 11:08:46.564581 firmware_mgmt NOTICE: file_transfer.lua(169): start to move file [temp_upgrade_file.hpm] from tmp to shm
2026-07-20 11:08:48.410543 firmware_mgmt NOTICE: file_transfer.lua(174): move_file_s ok:true, err:0
2026-07-20 11:08:48.817056 firmware_mgmt NOTICE: validate_sign.lua(269): get platform is community
2026-07-20 11:08:48.817800 firmware_mgmt NOTICE: validate_sign.lua(282): community signature verify is enabled
2026-07-20 11:08:48.823523 firmware_mgmt ERROR: validate_sign.lua(368): FirmwareUpgradeError: An error occurred during the firmware upgrade process. Details: add crl file is error, file is: /dev/shm/upgrade/838202543/cms.crl, code 88200102
2026-07-20 11:08:48.824220 firmware_mgmt ERROR: task_instance.lua(253): parse package(rootfs_openUBMC.hpm) failed, ret:InvalidFirmwarePackage.
2026-07-20 11:08:48.830515 web_backend NOTICE: base.lua(518): processing_flow_1 foreach_1 timeout,[path=/bmc/kepler/UpdateService, interface=bmc.kepler.UpdateService], t1=1784545728343, t2=1784545728830, time=487
2026-07-20 11:08:48.922430 firmware_mgmt NOTICE: task_mgmt.lua(174): task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Exception] will be destroyed after 10 minutes
2026-07-20 11:08:48.922955 firmware_mgmt NOTICE: task_mgmt.lua(445): Update task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Exception] successfully
2026-07-20 11:08:48.923991 firmware_mgmt ERROR: state_handle.lua(155): not find state obj
2026-07-20 11:08:49.982270 firmware_mgmt NOTICE: tasks_scheduling.lua(170): upgrade queue is empty, exit the tasks processor
2026-07-20 11:08:49.982584 firmware_mgmt NOTICE: tasks_scheduling.lua(202): stop tasks processor
2026-07-20 11:08:49.983810 firmware_mgmt NOTICE: active_fructl.lua(96): get host type is Singlehost
2026-07-20 11:08:49.984148 firmware_mgmt NOTICE: active_single_host_fructrl.lua(73): active_single_host_fructrl fructrl get power status
2026-07-20 11:08:49.986184 firmware_mgmt NOTICE: state_active_ready.lua(62): simple upgraded, current active mode is:nil, wait restart seconds:360000
2026-07-20 11:08:49.989857 firmware_mgmt NOTICE: init.lua(41): update status to FS_IDLE.
2026-07-20 11:08:49.991097 firmware_mgmt NOTICE: init.lua(81): Upgrading_Flag is false
2026-07-20 11:09:03.982296 firmware_mgmt NOTICE: task_id_mgmt.lua(40): delete serial task id(838202543) successfully
2026-07-20 11:09:03.982647 firmware_mgmt NOTICE: task_id_mgmt.lua(42): del serial task id(838202543) successfully
2026-07-20 11:09:03.982981 firmware_mgmt NOTICE: task_instance.lua(158): destroy task info(id:838202543) successfully
2026-07-20 11:09:05.899570 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:09:05.904626 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.

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

:pushpin: 总结

从现有上下文来看,最可能的失败原因是HPM包的CMS签名验证不通过,其次是组件版本不兼容或构建配置异常。建议首先通过系统日志确认具体错误类型,然后对照签名和组件版本进行针对性调整。上述分析完全基于您提供的知识图谱和文档片段,未引入外部信息。

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

关于2609编译的HPM包通过Web升级米尔开发板失败的分析

根据您提供的上下文信息,您使用bingo build -t personal -b openUBMC编译的HPM包在通过Web升级到米尔开发板时显示“升级失败”。结合知识图谱与文档片段,以下是最可能导致该问题的原因及排查建议。


:triangular_flag: 可能原因(基于上下文)

1. HPM包签名验证失败

  • 知识图谱中Firmware Upgrade Process明确指出:固件升级过程包含签名验证和证书验证,这是保证包完整性和来源可靠性的核心步骤。
  • Firmware Invalid概念描述:HPM包在升级过程中验证失败而被拒绝
  • Check Header Failed概念描述:固件包头部校验失败导致升级终止
  • rootfs_openUBMC.hpm实体多次提到该包在真实硬件上曾因解析问题签名验证错误而升级失败,即使它被正确构建。
  • 文档#1(hpm签名包升级失败)展示了类似场景:通过bingo生成的过渡包可以升级成功,但同源签名包却升级失败,说明签名一致性对升级成败至关重要。

推测:您编译的HPM包可能使用了与目前开发板上固件不匹配的签名证书(例如社区签名 vs 华为签名,或自签名证书未正确放置)。openUBMC在升级真机环境时会严格验证CMS签名,证书不信任或签名无效将直接导致升级失败。

2. 组件版本变更引入不兼容

  • 您在manifest.yml中将component_drivers从某个版本改为1.2.261@openubmc/stablevpd改为1.90.131@openubmc/stable
  • 知识图谱中Firmware Upgrade Failure描述失败原因包括:Flash写入错误、镜像提取错误、配置写入错误等,这些常由组件间的接口或数据结构变化引发。
  • 文档#6提到component_drivers代码若非最新可能导致升级后服务未加载或系统重启,提示组件版本需与硬件平台匹配。

推测:新版本的component_driversvpd可能与米尔开发板(Hi3093)的硬件特性产生冲突,导致升级过程中的数据写入、解包或激活阶段出错。

3. 构建配置差异(-t personal

  • 上下文中的标准构建命令通常包含-bt debug-bt release(如bingo build -b openUBMC -bt debug -r openubmc_dev)。您使用了-t personal,该构建类型的签名策略、包内容可能与目标板期望的格式不一致。
  • Board_Name_OpenUBMC实体指示board_name=openUBMC为配置值,而personal可能改变了签名证书链或打包方式。

推测personal构建模式可能未启用正确的签名流程,导致生成的HPM包缺少必要的签名元数据,或者使用了不被目标板信任的测试证书。

4. 包解析或打包过程异常

  • rootfs_openUBMC.hpm在多个描述中被指出即使构建成功,仍可能因解析错误或签名无效而失败,尤其是在社区来源包中已有记录。
  • 您还提到“在profile.txt添加新增的sr文件”,修改了文件列表,这可能导致生成的根文件系统结构或元数据与升级校验逻辑不符。

推测:添加自定义SR文件可能改变了HPM包内的文件布局,升级过程中的解包或校验环节无法识别,继而触发“升级失败”。


:magnifying_glass_tilted_left: 建议排查步骤(基于上下文已有信息)

  1. 查看详细升级日志
    通过SSH或串口登录开发板,检查/var/log/app.log(或系统日志),寻找失败阶段的明确错误信息。常见关键词:

    • check header failed(头部校验失败)
    • signature verification failed(签名验证失败)
    • flash write error(Flash写入错误)
    • image extraction error(镜像提取错误)

    这些错误直接对应知识图谱中描述的失败模式,可帮助定位具体阶段。

  2. 验证HPM包的签名状态
    参考文档#10(制作反向过渡包时的疑问)和文档#1(hpm签名包升级失败)中的讨论:

    • 检查目标板上/opt/bmc/trust/partner/下是否存放了正确的rootca.der等证书文件。
    • 使用openssl等工具查看您生成的HPM包内的CMS签名,确认签名者证书是否被开发板信任。
    • 若目标板之前运行的是社区签名版本,新包需使用相同的CA证书链,否则需重新签名或安装对应的根证书。
  3. 对比标准构建流程
    尝试使用上下文中最常见的构建命令:

    bingo build -bt release -b openUBMC
    

    排除-t personal带来的未知变量。如果标准构建的包能升级成功,则问题很可能出在构建类型或组件版本组合上。

  4. 检查组件版本兼容性
    参考文档#6和#8中关于组件依赖的讨论:

    • 确认component_drivers/1.2.261@openubmc/stablevpd/1.90.131@openubmc/stable是否与Hi3093开发板的BSP版本兼容。
    • 尝试回退到之前已知能升级成功的版本组合,验证是否为改动的组件导致。
  5. 参考已解决的类似案例

    • 文档#1(hpm签名包升级失败)用户通过检查证书放置和签名流程最终解决问题。
    • 文档#10(制作反向过渡包时碰到的疑问)详细解释了重签名与自签名包在升级校验上的差异,可帮助理解签名一致性要求。
    • 人物xuhaijun在论坛中多次提供签名相关的排查指导(如检查rootca.crlmanifest.yml中的签名配置等)。

:pushpin: 总结

从现有上下文来看,最可能的失败原因是HPM包的CMS签名验证不通过,其次是组件版本不兼容或构建配置异常。建议首先通过系统日志确认具体错误类型,然后对照签名和组件版本进行针对性调整。上述分析完全基于您提供的知识图谱和文档片段,未引入外部信息。

为提升交流效率,请提供必要的信息,包括操作步骤、异常现象、一键收集的日志、个人分析和具体求助点。。

app.log日志

2026-07-20 11:08:08.969962 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:08.975599 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:19.259106 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:19.265417 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:08:37.661061 web_backend NOTICE: init.lua(105): upload content length:number 85228419, remaining capacity space:number 134217728
2026-07-20 11:08:45.218559 firmware_mgmt NOTICE: active_fructl.lua(96): get host type is Singlehost
2026-07-20 11:08:45.219008 firmware_mgmt NOTICE: init.lua(96): get_ctx request:bmc.kepler.web_backend
2026-07-20 11:08:45.219841 firmware_mgmt NOTICE: utils.lua(34): The file path is Local.
2026-07-20 11:08:45.222946 firmware_mgmt NOTICE: init.lua(81): Upgrading_Flag is true
2026-07-20 11:08:45.241010 firmware_mgmt NOTICE: init.lua(41): update status to FS_SIMPLE_UPGRADING.
2026-07-20 11:08:45.269939 firmware_mgmt NOTICE: task_mgmt.lua(314): Create task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: New] successfully
2026-07-20 11:08:45.271001 firmware_mgmt NOTICE: task_service.lua(55): task create success, task id: 838202543
2026-07-20 11:08:45.272468 firmware_mgmt NOTICE: task_id_mgmt.lua(30): add serial task id(838202543) successfully
2026-07-20 11:08:45.277646 firmware_mgmt NOTICE: tasks_scheduling.lua(196): start tasks processor
2026-07-20 11:08:46.563627 firmware_mgmt NOTICE: task_mgmt.lua(445): Update task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Starting] successfully
2026-07-20 11:08:46.564581 firmware_mgmt NOTICE: file_transfer.lua(169): start to move file [temp_upgrade_file.hpm] from tmp to shm
2026-07-20 11:08:48.410543 firmware_mgmt NOTICE: file_transfer.lua(174): move_file_s ok:true, err:0
2026-07-20 11:08:48.817056 firmware_mgmt NOTICE: validate_sign.lua(269): get platform is community
2026-07-20 11:08:48.817800 firmware_mgmt NOTICE: validate_sign.lua(282): community signature verify is enabled
2026-07-20 11:08:48.823523 firmware_mgmt ERROR: validate_sign.lua(368): FirmwareUpgradeError: An error occurred during the firmware upgrade process. Details: add crl file is error, file is: /dev/shm/upgrade/838202543/cms.crl, code 88200102
2026-07-20 11:08:48.824220 firmware_mgmt ERROR: task_instance.lua(253): parse package(rootfs_openUBMC.hpm) failed, ret:InvalidFirmwarePackage.
2026-07-20 11:08:48.830515 web_backend NOTICE: base.lua(518): processing_flow_1 foreach_1 timeout,[path=/bmc/kepler/UpdateService, interface=bmc.kepler.UpdateService], t1=1784545728343, t2=1784545728830, time=487
2026-07-20 11:08:48.922430 firmware_mgmt NOTICE: task_mgmt.lua(174): task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Exception] will be destroyed after 10 minutes
2026-07-20 11:08:48.922955 firmware_mgmt NOTICE: task_mgmt.lua(445): Update task[Id: 838202543, StartTime: 2026-07-20T11:08:45+00:00, Progress: 0, State: Exception] successfully
2026-07-20 11:08:48.923991 firmware_mgmt ERROR: state_handle.lua(155): not find state obj
2026-07-20 11:08:49.982270 firmware_mgmt NOTICE: tasks_scheduling.lua(170): upgrade queue is empty, exit the tasks processor
2026-07-20 11:08:49.982584 firmware_mgmt NOTICE: tasks_scheduling.lua(202): stop tasks processor
2026-07-20 11:08:49.983810 firmware_mgmt NOTICE: active_fructl.lua(96): get host type is Singlehost
2026-07-20 11:08:49.984148 firmware_mgmt NOTICE: active_single_host_fructrl.lua(73): active_single_host_fructrl fructrl get power status
2026-07-20 11:08:49.986184 firmware_mgmt NOTICE: state_active_ready.lua(62): simple upgraded, current active mode is:nil, wait restart seconds:360000
2026-07-20 11:08:49.989857 firmware_mgmt NOTICE: init.lua(41): update status to FS_IDLE.
2026-07-20 11:08:49.991097 firmware_mgmt NOTICE: init.lua(81): Upgrading_Flag is false
2026-07-20 11:09:03.982296 firmware_mgmt NOTICE: task_id_mgmt.lua(40): delete serial task id(838202543) successfully
2026-07-20 11:09:03.982647 firmware_mgmt NOTICE: task_id_mgmt.lua(42): del serial task id(838202543) successfully
2026-07-20 11:09:03.982981 firmware_mgmt NOTICE: task_instance.lua(158): destroy task info(id:838202543) successfully
2026-07-20 11:09:05.899570 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.
2026-07-20 11:09:05.904626 firmware_mgmt ERROR: task_id_mgmt.lua(324): sub upgrade task id are empty.

请更新最新的manifest以及最新的bingo,从日志看是验证社区签名失败,这是一个已知问题,见拉最新的manifest库编译出版本之后,升级bmc包之后再次升级bmc包就出错 - #6,来自 yaoshun1

我的执行步骤如下:
1、拉取manifest main分支最新的代码;
2、重新初始化环境 python3 init.py
2、将/home/workspace/manifest/build/product/BMC/openUBMC/manifest.yml文件下的community_sign_webvnc_1711均修改成community_unsign_webvnc_1711
3、然后重新用bingo build -t personal -b openUBMC构建hpm包。

结果:在开发板上还是看到cms验签失败
1970-01-02 23:22:59.423597 firmware_mgmt ERROR: validate_sign.lua(368): FirmwareUpgradeError: An error occurred during the firmware upgrade process. Details: add crl file is error, file is: /dev/shm/upgrade/1829611927/cms.crl, code 88200102
1970-01-02 23:22:59.424380 firmware_mgmt ERROR: task_instance.lua(253): parse package(rootfs_openUBMC.hpm) failed, ret:InvalidFirmwarePackage.

请问,manifest.yml修改的编译配置对么?

如果开发板上的2609镜像用的是出现了cms证书校验失败的版本,需先将开发板主备份区镜像倒换,用之前能成功升级的镜像启动;然后再构建新的2609包升级。

最新manifest已经修复,编译构建不需要修改manifest.yml;需要将开发板上的镜像倒换用备用镜像启动,然后再升级新的镜像即可。