构建时报错如下:
task.log日志如下:
环境信息
-
操作系统: Ubuntu 24.04
-
conan版本,bmcgo版本以及bingo版本如下:
看日志应该是copy文件sign_img.xml的时候没找到,这个源文件应该在哪里?
构建时报错如下:
task.log日志如下:
操作系统: Ubuntu 24.04
conan版本,bmcgo版本以及bingo版本如下:
看日志应该是copy文件sign_img.xml的时候没找到,这个源文件应该在哪里?
答案内容由AI生成,仅供参考:
根据提供的日志信息,构建过程在执行 work.task_build_qemu_rootfs 任务时失败,核心错误为:
>> cp /home/workspace/manifest/temp/board_openUBMC/sign_img.xml sign_img.xml
USER: error: cannot stat '/home/workspace/manifest/temp/board_openUBMC/sign_img.xml': No such file or directory
表明系统尝试复制 sign_img.xml 文件时,源文件不存在。
构建流程期望从以下路径获取签名配置文件:
/home/workspace/manifest/temp/board_openUBMC/sign_img.xml
但该路径下文件不存在,导致 cp 命令返回非零退出状态,任务中断。
日志中多次出现以下警告:
不能从 yaml 文件中获取到键值 base/vendor, 没有相关配置不能从 yaml 文件中获取到键值 base/signature/simple_signer_server, 没有相关配置不能从 yaml 文件中获取到键值 base/signature/certificates, 没有相关配置这表明 manifest.yml 配置文件中缺少必要的签名相关字段,尤其是在 base 或 signature 节下未正确定义 sign_img.xml 的生成或来源。
sign_img.xml 文件的正确来源分析根据上下文文档和构建逻辑,sign_img.xml 的来源应遵循以下机制:
sign_img.xml 并非始终存在于固定路径,而是应在构建前期由模板生成或从配置目录复制而来。其标准来源如下:
| 来源路径 | 说明 |
|---|---|
manifest/build/product/<产品名>/signature/sign_img.xml |
产品级签名配置模板,用于定制化签名规则 |
manifest/build_manufacture/signature/sign_img.xml |
制造商通用签名配置文件(如日志中可见此路径存在) |
动态生成于 temp/board_<产品>/sign_img.xml |
构建过程中根据配置自动生成 |
日志中出现了
/home/workspace/manifest/build_manufacture/signature/sign_img.xml,说明该文件本身在项目中是存在的。
manifest.yml 配置确保 manifest.yml 中包含 signature 配置段,示例如下:
base:
vendor: "OpenUBMC"
signature:
simple_signer_server: "https://signer.openubmc.cn"
certificates:
- file: "${partner_path}/certs/server.crt"
sign_img:
template: "/usr/share/bmcgo/templates/sign_img.xml" # 或指定自定义模板路径
若未配置
signature相关字段,则构建系统无法正确生成sign_img.xml。
确认源文件是否存在
ls -l /home/workspace/manifest/build_manufacture/signature/sign_img.xml
如果存在,可临时作为源文件使用。
创建中间目录并复制文件
mkdir -p /home/workspace/manifest/temp/board_openUBMC
cp /home/workspace/manifest/build_manufacture/signature/sign_img.xml \
/home/workspace/manifest/temp/board_openUBMC/sign_img.xml
重新运行构建任务
bmcgo publish 或完整构建流程sign_img.xml 应由构建工具链在 task_build_board_config 阶段自动生成。
建议使用标准命令触发完整构建:
bmcgo publish -bt debug -z WBD -b openUBMC -r openubmc_dev
或
bingo build -p openUBMC -t debug
直接调用底层任务而跳过初始化阶段,可能导致依赖文件未生成。
当前环境信息:
注意:部分旧版
bingo工具对 Conan 2.x 支持不完善,可能导致依赖解析失败或任务跳过。
建议:
bingo 和 bmcgoconan remote list 包含有效远程仓库(如 openubmc_dev)conan config install 同步团队配置manifest.yml 是否包含 base.signature 配置;/home/workspace/manifest/build_manufacture/signature/sign_img.xml 存在;signature/sign_img.xml 复制到 temp/board_openUBMC/;task.log 前序内容)确认是否因前置任务失败导致文件未生成;rm -rf /home/workspace/manifest/temp/*
bmcgo build -p openUBMC --clean
构建失败的根本原因是:构建流程未能正确生成或定位 sign_img.xml 源文件,主要由于 manifest.yml 配置缺失或构建流程不完整所致。
最终解决方案:
manifest.yml 中的 signature 配置;bmcgo publish)启动全流程;
提示:社区版本
bingo不支持白牌包/签名包构建,若涉及定制化签名,请联系产品接口人获取完整版bmcgo工具链。
相关链接:
需要在manifest.yml文件添加签名证书相关信息:
signature:
certificates:
rootca_der: ${product}/ca/rootca.der
signer_pem: ${product}/ca/signer.pem.enc
timestamp_signer_pem: ${product}/ca/ts_signer.pem.enc
timestamp_signer_cnf: ${product}/ca/tsa.cnf
rootca_crl: ${product}/ca/rootca.crl