hi3093如何更新rootfs_BMC.img文件系统

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

Hi3093 开发板如何更新 rootfs_BMC.img 文件系统

针对您在 Hi3093 开发板 上更新 rootfs_BMC.img 文件系统的问题,即使没有提前制作 SD 卡备份镜像,仍然可以通过标准的固件升级流程完成对 Flash 中 rootfs_BMC.img 的升级。以下是详细的指导步骤和原理说明。


:magnifying_glass_tilted_left: 问题分析

  • 您参考的是《Hi3093开发板上手教学》博客。
  • 该教程建议使用 SD 卡备份原始 openEuler 镜像以备恢复,但这并非升级 rootfs_BMC.img 所必需的前提条件
  • 当前目标是:将新的 rootfs_BMC.img 成功写入 Flash 存储(即 BMC 主分区)中,完成系统更新
  • 结论:无 SD 卡备份不影响正常升级流程,可直接通过标准升级机制进行操作。

:white_check_mark: 正确升级 rootfs_BMC.img 的方法

根据知识库中的文档和架构设计,Hi3093 平台使用 openUBMC 固件管理体系,支持通过标准 HPM(Hot Plug Management)包或直接文件替换方式进行固件更新。

:white_check_mark: 方法一:通过标准 HPM 升级包升级(推荐)

这是最安全、最标准的方式。

步骤如下:

  1. 构建新的 rootfs_BMC.img

    • 确保已基于 openUBMC 源码完成定制化编译。
    • 最终输出文件位于:temp/build_openUBMC_debug_dev/output/rootfs_BMC.img
  2. 打包为 .hpm 固件升级包
    使用签名工具链将 rootfs_BMC.img 打包成 HPM 格式的可升级固件:

    # manifest.yml 示例配置片段
    gpp:
      files:
        - file: ${work_out}/rootfs_BMC.img
          dst: rootfs_BMC.img
    

    配置完成后,调用 bingo 构建系统自动生成 .hpm 文件(如 rootfs_BMC.hpm)。

  3. 启用签名服务(若启用安全升级)
    若系统启用了安全验证(hpm_encrypt.enable=true),需要:

    • 替换根证书(rootca.der)和吊销列表(rootca.crl
    • 使用伙伴私钥对 HPM 包签名
  4. 上传并升级 HPM 包

    • 登录 BMC Web 界面或使用 Redfish API
    • 选择“固件升级”功能
    • 上传 .hpm 文件并启动升级流程
  5. 系统自动处理升级

    • Firmware_Mgmt 服务接收升级请求
    • bmc_upgrade 模块负责解压、校验、写入 Flash
    • 完成后自动重启并激活新固件

:white_check_mark: 无需 SD 卡参与此过程


:white_check_mark: 方法二:手动替换 rootfs_BMC.img 并刷新(适用于调试)

若仅需快速测试,可手动替换镜像并刷写。

步骤如下:

  1. 将新镜像上传至 /tmp 目录

    scp rootfs_BMC.img root@<BMC_IP>:/tmp/Hi3093_ext4fs.img
    

    注意:按照规范,上传后建议重命名为 Hi3093_ext4fs.img,与文档 [2] 保持一致。

  2. 登录 BMC 系统执行升级脚本

    ssh root@<BMC_IP>
    cd /tmp
    ./Hi3093_upgrade.sh
    

    该脚本会自动处理镜像写入 Flash 分区(如 /dev/mmcblk0pX)的过程。

  3. 等待升级完成并重启

    • 升级过程中不要断电
    • 系统会自动重启并加载新的 rootfs_BMC.img

:hammer_and_wrench: 关键组件与流程说明

组件 作用
Firmware_Mgmt 核心固件管理服务,控制整个升级生命周期
bmc_upgrade Module 执行 Flash 写入、验证、重启等底层操作
General_Hardware 协调硬件级操作(如 SPI 读写、电源管理)
Info Mgmt Lua 管理升级状态、版本信息、阶段转换
update_ext4.cfg 定义升级流程和组件映射关系(见文档 [2])

升级流程:

用户上传 → Firmware_Mgmt 接收 → bmc_upgrade 执行 → Flash 写入 → 重启激活

:warning: 注意事项

项目 说明
无需 SD 卡备份 SD 卡仅用于紧急恢复 openEuler 环境,不影响正常升级流程
首次升级注意兼容性 若从 BMC 3.xx.xx.xx 升级到 openUBMC,需确保签名一致(参考 KG 中 self-signed firmware package
保留旧版本备份 系统通常保留备用分区(A/B分区),支持失败回滚
避免断电 升级过程中断电可能导致 BMC 无法启动
密码变化 升级后可能需要使用新默认密码(原 Admin@aeon1 可能失效)

:books: 参考资料

  1. 《Hi3093开发板上手教学》:提供基础环境准备与镜像命名规范
  2. 《新增产品配置》:定义 rootfs_BMC.img 构建与打包规则
  3. 《签名包制作指导》:用于生成合法 .hpm 升级包
  4. 知识图谱实体:
    • Firmware_Mgmt:管理升级全过程
    • bmc_upgrade Module:执行 Flash 写入与重启
    • Rootfs OpenUBMC 2 iBMC.hpm:标准升级包格式

:white_check_mark: 结论

即使没有做 SD 卡备份,也可以安全地升级 rootfs_BMC.img

只需遵循以下任一方式即可:

  • 推荐:构建 .hpm 签名升级包,通过 Web 或 Redfish 接口上传升级
  • 调试可用:手动上传 rootfs_BMC.img 并运行升级脚本

只要保证镜像正确、签名合规、升级过程不断电,即可顺利完成更新。

如需进一步帮助(如构建 .hpm 包或调试脚本),可提供更多上下文信息继续提问。

相关链接:

  1. Hi3093开发烧写后无法启动,报CRC错误
  2. 无签名UBMC上无法继续更新BMC固件
  3. OpenUBMC2506 BMC固件升级失败
  4. 真机固件升级求助
  5. openUBMC