问题描述
请教两个关于固件签名的问题:
1、从哪里可以获取bmcgo
2、当前机器上是华为签名的固件,是否要先升级到一个过渡包才能再升级伙伴签名的固件包,如何生成过度包?
答案内容由AI生成,仅供参考:
根据您提出的两个问题,现结合 openUBMC 社区及相关技术资料,整理回答如下。
bmcgo 工具?bmcgo 是 openUBMC 项目中用于构建、签名和管理 BMC 固件的核心工具,尤其在生成白牌包(White-Label Package) 和签名 HPM 包时不可或缺。
联系产品负责人或华为 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 安装。
注意事项:
bmcgo与bingo功能相似但不兼容,且bingo无法编译白牌包,必须使用bmcgo。- 社区版本默认只提供
bingo,bmcgo需额外申请。
是的,在大多数情况下需要先升级到一个“过渡包”(Transition Package),才能成功升级到伙伴签名的固件包,尤其是当系统已启用安全启动(Secure Boot) 时。
| 安全启动状态 | 是否可直接升级伙伴签名固件 | 是否需要过渡包 |
|---|---|---|
| 未开启安全启动 | 可尝试直接升级(但不推荐) | 否(可选) |
| 已开启安全启动 |
原因:
BMC 固件升级过程中会使用内置的根证书(RootCA) 验证固件签名。若当前系统使用的是华为的根证书,则只能验证华为签名的固件。要切换至伙伴签名,必须通过过渡包完成根证书的替换。
目前,过渡包的制作权限受限,主要由 华为场内环境 控制,并非外部伙伴可自行生成。
若允许本地生成,需具备以下要素:
.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
当前现实:
- 普通开发者无法独立完成过渡包制作。
- 即使有证书,也需华为 PAE 配合提供工具链或签名服务。
| 问题 | 结论与建议 |
|---|---|
如何获取 bmcgo? |
联系 产品负责人 或 华为 FAE 获取安装包,安装前需卸载 bingo。 |
| 是否需要过渡包? | 是的,尤其在开启安全启动时,必须通过过渡包更换系统信任的根证书。 |
| 如何生成过渡包? | 当前仅华为可在内部生成,外部无法独立完成。建议向 PAE 申请提供。 |
参考来源:
- openUBMC 论坛帖子 #3407、#1284
- 文档《白牌包适配与制作指南》
- 知识图谱实体:
Bmcgo Tool,过渡包,Huawei Signature,安全启动等关系
如有进一步需求,建议在 discuss.openubmc.cn 提问或联系对应技术支持获取专属支持。
相关链接: