当前环境为:25.09
进行高可用自签名出包,使用bmcgo build -b openUBMC -r openubmc_dev是可以正常出包的
但是使用bingo build -b openUBMC -r openubmc_dev出包,报错如下:
提问:使用bingo无法出带有自签名的包吗
当前环境为:25.09
进行高可用自签名出包,使用bmcgo build -b openUBMC -r openubmc_dev是可以正常出包的
但是使用bingo build -b openUBMC -r openubmc_dev出包,报错如下:
提问:使用bingo无法出带有自签名的包吗
答案内容由AI生成,仅供参考:
bingo 构建自签名包的问题分析与解答根据您提供的问题描述,使用 bingo build 是可以构建含有自签名内容的固件包的,但需要正确配置签名流程及相关依赖文件。您当前遇到的问题并非 bingo 完全不支持自签名出包,而是构建过程中因某些配置或环境缺失导致失败。
您反馈以下关键信息:
bmcgo build -b openUBMC -r openubmc_dev 可以正常完成自签名出包;bingo build -b openUBMC -r openubmc_dev 报错,错误集中在:ERROR: 任务 work.task_buildgppbin 执行失败,Command '['/usr/local/bin/gpp_header', 'hpm']' returned non-zero exit status 255.
这表明:
bmcgo build 支持自签名流程并能成功执行,说明后端签名机制是可用的。
bingo build 调用链在生成 GPP(Generic Package Packager)头部时失败,提示 gpp_header hpm 命令执行出错(退出码 255),通常代表工具调用异常或输入参数/文件缺失。
Bingo 是否支持自签名?答案:支持。
Bingo 已集成签名模块
根据搜索结果中的《签名包制作指导》:
“目前,该方案已与社区版
Bingo软件完成集成。Bingo 的签名模块收到签名后的文件后,继续执行后续构建流程。”
签名配置需在 manifest.yml 中明确定义
base.signature 字段用于指定签名所需文件(如根证书 rootca.der、私钥 signer.pem 等):
base:
signature:
certificates:
rootca_der: ${product}/ca/rootca.der
signer_pem: ${product}/ca/signer.pem
timestamp_signer_pem: ${product}/ca/ts_signer.pem
timestamp_signer_cnf: ${product}/ca/tsa.cnf
自签名模式需提供完整签名资源
构建系统会检查是否开启“自签名”模式,并验证相关文件是否存在:
ERROR: 打开了自签名模式但未找到待签名的uboot文件
bingo build 会失败?结合错误日志分析,可能原因如下:
虽然您没有报“缺少 uboot”错误,但在自签名流程中,gpp_header 工具需要基于一个有效的 uboot.bin 文件生成头部信息。
错误日志中的
gpp_header hpm是用于打包 HPM 固件前插入 U-Boot Header 的关键步骤。
解决方法:
确保 SDK 中包含正确的 Hi1711_boot_*.bin 文件,并将其复制到构建路径或配置正确路径。
参考知识库中“构建时找不到 SDK 文件”的提示:
报错原因:传入的SDK路径不正确,或者使用了脚本无法识别的相对路径。
建议确认:
ls ${SDK_PATH}/Hi1711_boot_*.bin
并在 manifest.yml 中正确引用:
gpp:
files:
- file: ${sdk_path}/Hi1711_boot_4096.bin
dst: Hi1711_boot_4096.bin
来自 hkzy Hewei 用户的解决方案指出:
“已解决,签名文件有后缀有变动,同时修改 manifest.yml 的签名文件后缀后,执行通过。”
这意味着:
.pem 或 .der 文件名称必须与 manifest.yml 正确对应;.enc(加密)、.bak 等扩展名,可能导致解析失败;tsa.cnf 是否存在且格式正确?不同版本的 bingo 对自签名流程的支持存在差异。例如:
bmcgo build 成功说明底层 bmcgo 框架正常;bingo build 失败可能是其对 work.task_buildgppbin 调用封装不当所致;bingo(如 0.5.317)存在 Conan 依赖、签名服务调用等问题;建议升级 bingo:
bingo upgrade
或手动检查版本兼容性:
bingo -v
确保使用的是 25.09 SDK 推荐版本。
部分用户反馈中断构建后残留锁文件会影响后续构建:
使用命令清除锁文件:
conan remove --locks
或清理临时目录:
rm -rf /home/workspace/manifest/temp/*
| 问题点 | 解决方案 |
|---|---|
bingo 支持自签名吗? |
signature 字段 |
gpp_header hpm 报错 255 |
检查 uboot.bin 是否存在、路径是否正确 |
检查 rootca.der, signer.pem, ts_signer.pem, tsa.cnf 是否齐全 |
|
如 .pem.enc 需解密或重命名 |
|
运行 conan remove --locks 清理 |
|
bingo 版本过旧 |
运行 bingo upgrade 升级至最新稳定版 |
# Step 1: 升级 bingo
bingo upgrade
# Step 2: 清理构建缓存
conan remove --locks
rm -rf temp/ output/
# Step 3: 检查签名文件是否齐全
ls build/product/ca/
# 应包含:rootca.der, signer.pem, ts_signer.pem, tsa.cnf, rootca.crl
# Step 4: 确认 SDK 路径下有 uboot 文件
echo $SDK_PATH
ls $SDK_PATH/Hi1711_boot*.bin
# Step 5: 修改 manifest.yml,确保签名路径正确
# 注意不要有 .enc 后缀!若加密需先解密
# Step 6: 再次执行构建
bingo build -b openUBMC -r openubmc_dev
bingo build是支持自签名出包的,但在 25.09 版本中,必须满足以下条件才能成功:
- 签名文件完整(
.der,.pem,.cnf);- U-Boot 文件存在且路径正确;
manifest.yml中签名配置准确;- 使用匹配的
bingo版本,建议升级至最新;- 清理缓存和锁文件。
若您仍无法解决,建议将 /home/workspace/manifest/temp/log/task.log 中的具体错误贴出,可进一步定位 gpp_header 调用失败的根本原因。
参考资料:
相关链接:
是那个文件吧,/usr/local/bin/ 有几个config文件,里面和manifest的yml文件里面配置没有归一化。hpm_header.config,emmc_header.config,,等等要把里面rootfs_iBMC.img,rootfs_iBMC.img.cms,rootfs_iBMC.tar.gz,改一下,变成rootfs_BMC,以及yml文件里面gpp:
files:下面都改成BMC
非常感谢,编译成功了!
你好,请问下 有没有待签名的uboot版本呀,我这边也是想使用自签名,但是编译的时候提示没有 待签名的uboot,导致编译失败!请问下你这个文件是从哪里获取的呀
我这边没有获取uboot包,直接按照上面把ibmc改为bmc,bingo就出包啦
嗯嗯,看错了,你这个编译的现象和我本地还不太一样,我这边是自签名 编译后 出现的问题,提示得要有一个未签名的uboot二进制文件