签名工具和过渡包

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

关于固件签名工具与过渡包的解答

根据您提出的两个问题,现结合 openUBMC 社区及相关技术资料,整理回答如下。


问题1:从哪里可以获取 bmcgo 工具?

bmcgo 是 openUBMC 项目中用于构建、签名和管理 BMC 固件的核心工具,尤其在生成白牌包(White-Label Package)签名 HPM 包时不可或缺。

:white_check_mark: 获取方式:

  • 联系产品负责人或华为 FAE(Field Application Engineer)获取安装权限和工具包。

    • 多份文档和社区回复明确指出:bmcgo 不对所有开发者公开,必须由 产品接口人或华为技术支持 提供安装支持。
    • 参考关系:Bmcgo Tool华为 FAE 存在依赖关系。
  • 获取形式

    • 通常以压缩包形式提供,例如:Dev Tools 2506 With Bmcgo(包含 bmcgo 工具及其依赖)。
    • 常见格式为 .zip.deb 安装包,如 Dev_Tools_2506_With_Bmcgo.Zip
    • 安装前需先卸载旧版 bingo 工具(因存在冲突),命令示例如下:
      sudo apt remove openubmc-bingo
      sudo dpkg -i bmcgo_xxx.deb
      
  • 安装后验证

    • 安装成功后,可通过以下命令验证:
      bmcgo --help
      
    • 工具路径通常位于 /usr/local/lib/python3.12/dist-packages/bmcgo 或通过 pip3 安装。

:warning: 注意事项:

  • bmcgobingo 功能相似但不兼容,且 bingo 无法编译白牌包,必须使用 bmcgo
  • 社区版本默认只提供 bingobmcgo 需额外申请。

问题2:是否需要先升级过渡包才能刷入伙伴签名固件?如何生成过渡包?

:white_check_mark: 是否需要过渡包?

是的,在大多数情况下需要先升级到一个“过渡包”(Transition Package),才能成功升级到伙伴签名的固件包,尤其是当系统已启用安全启动(Secure Boot) 时。

:pushpin: 场景分析:

安全启动状态 是否可直接升级伙伴签名固件 是否需要过渡包
未开启安全启动 可尝试直接升级(但不推荐) 否(可选)
已开启安全启动 :cross_mark: 不允许直接升级 :white_check_mark: 必须使用过渡包

:white_check_mark: 原因
BMC 固件升级过程中会使用内置的根证书(RootCA) 验证固件签名。若当前系统使用的是华为的根证书,则只能验证华为签名的固件。要切换至伙伴签名,必须通过过渡包完成根证书的替换。


:white_check_mark: 如何生成过渡包?

目前,过渡包的制作权限受限,主要由 华为场内环境 控制,并非外部伙伴可自行生成。

:small_blue_diamond: 获取方式:

  • 由华为 PAE/FAE 在内部环境生成,并提供给合作伙伴。
  • 过渡包通常是一个特殊签名的 U-Boot 或最小化 HPM 包,用于:
    1. 禁用旧签名验证或
    2. 替换系统信任的根证书为伙伴的 CA 证书。

:small_blue_diamond: 过渡包的作用流程:

  1. 当前系统运行 华为签名固件
  2. 刷入 过渡包(由华为签名为基础,包含证书切换逻辑)
  3. 系统信任的根证书被替换为伙伴的根证书
  4. 成功升级 伙伴签名的正式固件包

:small_blue_diamond: 生成条件(如未来开放):

若允许本地生成,需具备以下要素:

  • 自定义的 CA 根证书(.der 格式)
  • 签名私钥(.pem.enc 加密)
  • 时间戳签名配置(tsa.cnf
  • 正确配置 manifest.yml 中的 signature 字段:
    signature:
      rootca_der: /path/to/partner_rootca.der
      signer_pem: /path/to/partner_signer.pem.enc
      timestamp_signer_pem: /path/to/ts_signer.pem.enc
      timestamp_signer_cnf: /path/to/tsa.cnf
    
  • 使用 bmcgo 构建并签名:
    SIGN_PASSWORD=xxx bmcgo build -b openUBMC -r openubmc_dev
    

:warning: 当前现实:

  • 普通开发者无法独立完成过渡包制作。
  • 即使有证书,也需华为 PAE 配合提供工具链或签名服务。

:white_check_mark: 总结建议

问题 结论与建议
如何获取 bmcgo 联系 产品负责人华为 FAE 获取安装包,安装前需卸载 bingo
是否需要过渡包? 是的,尤其在开启安全启动时,必须通过过渡包更换系统信任的根证书。
如何生成过渡包? 当前仅华为可在内部生成,外部无法独立完成。建议向 PAE 申请提供。

:books: 参考来源:

  • openUBMC 论坛帖子 #3407、#1284
  • 文档《白牌包适配与制作指南》
  • 知识图谱实体:Bmcgo Tool, 过渡包, Huawei Signature, 安全启动 等关系

如有进一步需求,建议在 discuss.openubmc.cn 提问或联系对应技术支持获取专属支持。

相关链接:

  1. 能否实现伙伴签名的openUBMC版本直接升级华为签名的各种固件?
  2. 如何安装bmcgo工具并构建出签名hpm包
  3. 社区工程能力每日答疑纪要
  4. 过渡包+伙伴签名问题
  5. 新增产品 | 文档中心 | openUBMC