固件签名问题

问题描述

iBMC升级为openUBMC,已经提供rootca.der文件给技术支持制作过渡包,成功升级到openUBMC,现在我更改manifest/build/product/BMC/openUBMC/manifest.yml增加如下内容,编译报错,编译命令bingo build和SIGN_PASSWORD=xxxx bingo build都尝试过,把manifest.yml恢复就可以成功,但不能更新固件

签名证书制作参考自签名CA创建以及HPM签名指导

signature:
certificates:
rootca_der: /home/liujinlong/rootca/rootca/rootca.der

签名证书,文件需要满足正则表达式要求:^(/[a-zA-Z0-9.*-]+)+\.pem(.enc)?$

signer_pem: /home/liujinlong/rootca/rootca/signer.pem.enc

时间戳签名证书,文件需要满足正则表达式要求:^(/[a-zA-Z0-9.*-]+)+\.pem(.enc)?$

timestamp_signer_pem: /home/liujinlong/rootca/rootca/ts_signer.pem.enc

时间戳签名私钥,文件需要满足正则表达式要求:^(/[a-zA-Z0-9.*-]+)+\.cnf$

timestamp_signer_cnf: /home/liujinlong/rootca/rootca/tsa.cnf

证书吊销列表:文件需要满足正则表达式要求:^(/[a-zA-Z0-9.*-]+)+\.crl$

rootca_crl: /home/liujinlong/rootca/rootca/rootca.crl

2026-02-10 20:43:08,907 INFO] task_build_rootfs_img.py:923 >> get_img_parma_area.sh /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img
4060+0 records in
4060+0 records out
4060 bytes (4.1 kB, 4.0 KiB) copied, 0.00617475 s, 658 kB/s
[2026-02-10 20:43:08,944 INFO] task_hpm_envir_prepare.py:93 切换工作目录到: /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev
[2026-02-10 20:43:08,950 INFO] task.py:383 切换工作目录到: /tmp/tmprl5yysip
[2026-02-10 20:43:08,954 INFO] task.py:397 >> openssl x509 -in /home/liujinlong/rootca/rootca/rootca.der -inform der -outform pem -out rootca.pem
[2026-02-10 20:43:08,987 INFO] task.py:398 >> openssl crl -in /home/liujinlong/rootca/rootca/rootca.crl -inform der -outform pem -out cms.crl.pem
[2026-02-10 20:43:08,998 INFO] task.py:400 >> hpm_signer -s /home/liujinlong/rootca/rootca/signer.pem.enc -t /home/liujinlong/rootca/rootca/ts_signer.pem.enc -T /home/liujinlong/rootca/rootca/tsa.cnf -i /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img -o /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img.cms
e[31mError Signing Data:e[m
e[31merror:0480006C:PEM routines::no start linee[m
e[32mSign /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img starte[m
e[31m[2026-02-10 20:43:09,007 ERROR] task.py:400 执行命令 hpm_signer -s /home/liujinlong/rootca/rootca/signer.pem.enc -t /home/liujinlong/rootca/rootca/ts_signer.pem.enc -T /home/liujinlong/rootca/rootca/tsa.cnf -i /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img -o /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output/rootfs_BMC.img.cms 错误, 日志: /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/log/task.loge[0m

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2509]

  • 硬件配置:[如 CPU、内存等]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

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

总结

您遇到的问题核心在于:

  1. 证书/私钥格式不正确或未解密
  2. manifest.yml缺少必要签名配置项
  3. 构建系统未能正确处理加密私钥

建议操作顺序:

  1. :white_check_mark: 将所有证书转换为标准PEM格式
  2. :white_check_mark: 解密.enc私钥供构建使用
  3. :white_check_mark: 修改manifest.yml使用相对路径并补全配置
  4. :white_check_mark: 使用VERBOSE=ON重新构建,观察日志

完成后即可成功生成可升级的签名固件包,实现openUBMC平台下的自定义固件更新能力。

点击此处查看详细分析解答

固件签名问题分析与解决方案

问题概述

在将iBMC升级为openUBMC后,尝试通过修改manifest.yml文件配置自定义签名证书以支持固件更新,但在编译过程中出现签名错误。尽管已提供rootca.der文件并制作了过渡包成功升级到openUBMC,但当添加签名配置后,构建过程失败,无法生成可更新的固件。


错误详情

错误日志关键信息

Error Signing Data:
error:0480006C:PEM routines::no start line

此错误出现在执行hpm_signer命令时:

hpm_signer -s /home/liujinlong/rootca/rootca/signer.pem.enc -t /home/liujinlong/rootca/rootca/ts_signer.pem.enc -T /home/liujinlong/rootca/rootca/tsa.cnf -i rootfs_BMC.img -o rootfs_BMC.img.cms

错误代码error:0480006C:PEM routines::no start line表明OpenSSL无法识别输入的PEM格式文件,通常是因为文件不是有效的PEM编码(如实际为DER格式却以.pem命名),或文件内容损坏、加密未正确处理。


原因分析

根据上下文信息和错误日志,问题原因如下:

1. 证书/私钥文件格式不匹配

  • 虽然配置中使用了.pem扩展名,但这些文件可能是DER格式或加密的PEM文件。
  • OpenSSL的PEM routines期望文件以-----BEGIN CERTIFICATE-----等标头开始,而DER是二进制格式,无此标头。
  • 即使是.pem.enc加密文件,也必须先解密才能被hpm_signer使用,而当前流程未包含解密步骤。

2. 签名私钥未解密或密码未传递

  • signer.pem.enc表示该私钥是加密的,需提供密码才能使用。
  • hpm_signer工具本身不支持直接读取加密的私钥,必须事先用openssl解密,或在调用时通过环境变量/参数传入密码。
  • 用户尝试使用SIGN_PASSWORD=xxxx bingo build,但该环境变量可能未被底层签名脚本(如hpm_signer)正确识别或传递。

3. 配置路径与安全合规性问题

  • 配置文件manifest.yml中的证书路径为绝对路径(如/home/liujinlong/...),这在CI/CD环境中可能导致权限或访问问题。
  • 正确做法应将证书放入项目指定目录(如build/product/ca/),并在manifest.yml中使用相对路径引用。

4. 签名流程配置缺失

  • 根据文档和日志分析,完整的HPM签名流程依赖多个配置项,包括:
    • base/signature/certificates
    • base/signature/hpm_digest
    • base/signature/simple_signer_server
  • 日志显示:
    不能从 yaml 文件中获取到键值 base/signature/hpm_digest, 没有相关配置
    
    表明关键配置缺失,导致签名流程不完整。

解决方案

:white_check_mark: 步骤一:确保证书和私钥为正确的PEM格式

1. 转换DER为PEM(如有必要)

# 将 DER 格式的证书转换为 PEM
openssl x509 -in rootca.der -inform der -out rootca.pem -outform pem

# 检查内容是否包含 BEGIN 语句
cat rootca.pem
# 输出应类似:
# -----BEGIN CERTIFICATE-----
# MIIDnzCCAoegAwIBAgIJAM...
# -----END CERTIFICATE-----

2. 解密加密的私钥

# 解密 signer.pem.enc
openssl rsa -in signer.pem.enc -out signer.pem -passin pass:your_password

# 或交互式输入密码
openssl rsa -in signer.pem.enc -out signer.pem

:warning: 注意:不要在版本控制系统中提交明文私钥。建议在CI环境中临时解密。


:white_check_mark: 步骤二:正确配置 manifest.yml

将证书文件复制到项目标准路径(避免绝对路径):

# 推荐路径
cp rootca.pem workspace/manifest/build/product/ca/
cp signer.pem workspace/manifest/build/product/ca/
cp ts_signer.pem workspace/manifest/build/product/ca/
cp tsa.cnf workspace/manifest/build/product/ca/
cp rootca.crl workspace/manifest/build/product/ca/

更新 manifest.yml 配置:

signature:
  certificates:
    rootca_der: build/product/ca/rootca.pem
    signer_pem: build/product/ca/signer.pem
    timestamp_signer_pem: build/product/ca/ts_signer.pem
    timestamp_signer_cnf: build/product/ca/tsa.cnf
    rootca_crl: build/product/ca/rootca.crl
  hpm_digest: true  # 启用摘要签名
  simple_signer_server: false  # 本地签名

:locked_with_key: 注意:若仍需加密私钥,请确保构建系统能自动解密,或使用签名服务。


:white_check_mark: 步骤三:验证签名脚本是否支持加密私钥

如果必须使用.enc文件,需确认签名脚本是否处理密码。

例如,手动测试签名命令:

# 先解密(脚本化)
echo "YourPassword" | openssl rsa -in signer.pem.enc -out signer.pem -passin stdin

# 再签名
hpm_signer -s signer.pem -t ts_signer.pem -T tsa.cnf -i rootfs_BMC.img -o rootfs_BMC.img.cms

可编写包装脚本 cms_sign_hpm.sh 自动完成解密+签名。


:white_check_mark: 步骤四:参考标准签名流程

根据知识库中的成功流程(见文档chunk 1):

# 步骤1:转换DER证书为PEM
openssl x509 -in rootca.der -inform der -out rootca.pem

# 步骤2:生成CRL的PEM格式
openssl crl -in rootca.crl -inform der -out cms.crl.pem

# 步骤3:签名 filelist
hpm_signer -s signer.pem -t ts_signer.pem -T tsa.cnf -i rootfs_openUBMC.filelist -o rootfs_openUBMC.filelist.cms

# 步骤4:验证签名
hpm_verify -r rootca.pem -C cms.crl.pem -c rootfs_openUBMC.filelist -s rootfs_openUBMC.filelist.cms

# 步骤5:签名HPM包
cms_sign_hpm.sh 2 rootfs_openUBMC.hpm

确保你的流程与上述一致。


推荐最佳实践

项目 建议
证书管理 使用相对路径,放在build/product/ca/目录下
私钥安全 加密存储,CI中临时解密,勿提交明文
签名方式 优先使用签名服务(如Conan签名服务器)而非本地私钥
配置完整性 确保base/signature/hpm_digest等配置存在
调试方法 启用VERBOSE=ON,查看详细日志

相关知识支持

  • Invalid Upgrade Package 错误常由签名证书不匹配引起,openUBMC严格校验签名链。
  • Xuhaijun指出,不同填充模式(PKCS#1 v1.5 vs PSS)会导致验签失败,需统一签名标准。
  • Huawei Signature Firmware 使用PSS模式证书,若伙伴使用PKCS#1 v1.5签名,需重新签名以兼容。

总结

您遇到的问题核心在于:

  1. 证书/私钥格式不正确或未解密
  2. manifest.yml缺少必要签名配置项
  3. 构建系统未能正确处理加密私钥

建议操作顺序:

  1. :white_check_mark: 将所有证书转换为标准PEM格式
  2. :white_check_mark: 解密.enc私钥供构建使用
  3. :white_check_mark: 修改manifest.yml使用相对路径并补全配置
  4. :white_check_mark: 使用VERBOSE=ON重新构建,观察日志

完成后即可成功生成可升级的签名固件包,实现openUBMC平台下的自定义固件更新能力。

相关链接:

  1. 伙伴openubmc版本如何支持升级华为签名固件版本和伙伴自己签名的固件版本均能成功?
  2. OpenUBMC2506 BMC固件升级失败
  3. 无签名UBMC上无法继续更新BMC固件
  4. 基础通用问题FAQ
  5. 构建工程 | 文档中心 | openUBMC

日志提醒证书存在格式错误,请参考AI反馈的方法检视证书格式是否正确。

有一个点要注意:如果使用pem.enc文件,请参考《 自签名CA创建以及HPM签名指导》提供加密密码,可以检查加密密码是否正确。

参考使用如下命令验证你的签名结果是否准确。
SIGN_PASSWORD=<加密密码> hpm_signer -s /home/liujinlong/rootca/rootca/signer.pem.enc -t /home/liujinlong/rootca/rootca/ts_signer.pem.enc -T /home/liujinlong/rootca/rootca/tsa.cnf -i rootfs_BMC.img -o rootfs_BMC.img.cms

如还有问题,请参考 自签名CA创建以及HPM签名指导 签名和验证章节手工验证。

感谢,已经可以正常编译了,但是我用生成的root_openUBMC.hpm更新bmc还是失败,请问问题可能出在哪里,可能还是签名问题,不知道我上面的方法是否正确?

签名证书和时间戳签名证书换成不加密的试了也不成功

签名成功的前提是你的根证书提前预置到rootfs中。

如果是升级失败,大概是你的固件验签的根证书未找到或不正确,需要将rootca.der文件提前预置到opt/bmc/trust/partner目录。

具体实现是将rootca.der文件复制到manifest源码的build/product/BMC/openUBMC/rootfs/目录,再出包构建(第一次出包带证书不签名;第二次出包带证书和签名)

可以参考以下文章:hpm签名包升级失败

已经将我自己制作的rootca.der给华为的技术支持,并且给我一个过渡包,我理解“将rootca.der文件提前预置到opt/bmc/trust/partner目录”这个步骤是华为做的,并且出了这个过渡包给我。然后我自己再构建签名固件实现自己升级

还有这个帖子https://discuss.openubmc.cn/t/topic/2372访问不了,提示不存在

我看了app.log,验签都没问题,好像是解包出错了,日志如下:

1970-01-01 00:06:14.041267 firmware_mgmt NOTICE: tasks_scheduling.lua(121): start tasks processer
1970-01-01 00:06:14.143813 firmware_mgmt NOTICE: task_mgmt.lua(418): Update task[Id: 1239244752, StartTime: 1970-01-01T00:06:14+00:00, Progress: 0, State: Running] successfully
1970-01-01 00:06:14.198695 firmware_mgmt NOTICE: file_transfer.lua(141): start to move file [rootfs_openUBMC.hpm] from tmp to shm
1970-01-01 00:06:14.753852 firmware_mgmt NOTICE: file_transfer.lua(146): move_file_s ok:true, err:0
1970-01-01 00:06:17.004445 firmware_mgmt NOTICE: validate_sign.lua(170): the custom ca certificate is exist, load custom certificate
1970-01-01 00:06:17.038117 firmware_mgmt NOTICE: validate_sign.lua(195): verify signature successfully
1970-01-01 00:06:17.039401 firmware_mgmt NOTICE: action.lua(37): Validate signature successfully
1970-01-01 00:06:17.042327 firmware_mgmt NOTICE: hpm_package.lua(757): ManufacturerValidateEnabled is false, there is no need to validate manufacture_id.
1970-01-01 00:06:17.083931 bmc_core ERROR: l_crypt.c(928): RSA_private_decrypt failed.
1970-01-01 00:06:17.084952 firmware_mgmt ERROR: hpm_package.lua(209): decrypt srcfile failed, err:./opt/bmc/apps/firmware_mgmt/lualib/upgrade/hpm_package.lua:190: rsa_decrypt failed
1970-01-01 00:06:17.085732 firmware_mgmt ERROR: action.lua(41): Unpack package failed
1970-01-01 00:06:17.086489 firmware_mgmt ERROR: task_instance.lua(159): parse package(rootfs_openUBMC.hpm) failed, ret:FirmwareUpgradeError.
1970-01-01 00:06:17.184967 firmware_mgmt NOTICE: task_mgmt.lua(418): Update task[Id: 1239244752, StartTime: 1970-01-01T00:06:14+00:00, Progress: 0, State: Exception] successfully
1970-01-01 00:06:17.310545 firmware_mgmt ERROR: state_handle.lua(115): not find state obj
1970-01-01 00:06:18.089953 cooling NOTICE: start_profiling.lua(151): profiling finished, start time:1970-01-01 00:01:18, duration:5 min, sent signals:8, received signals:0, sent rpcs:800, received rpcs:4
1970-01-01 00:06:18.170966 power_strategy NOTICE: start_profiling.lua(151): profiling finished, start time:1970-01-01 00:01:18, duration:5 min, sent signals:11, received signals:0, sent rpcs:256, received rpcs:4
1970-01-01 00:06:18.426447 firmware_mgmt NOTICE: tasks_scheduling.lua(126): upgrade queue is empty, exit the tasks processer
1970-01-01 00:06:18.427000 firmware_mgmt NOTICE: tasks_scheduling.lua(138): stop tasks processer
1970-01-01 00:06:18.428471 firmware_mgmt NOTICE: active_fructl.lua(95): get host type is Singlehost
1970-01-01 00:06:18.428875 firmware_mgmt NOTICE: active_single_host_fructrl.lua(61): active_single_host_fructrl fructrl get power status
1970-01-01 00:06:18.431733 firmware_mgmt NOTICE: state_simple_upgrading.lua(101): simple upgraded, current active mode is:nil, wait restart seconds:360000
1970-01-01 00:06:18.435613 firmware_mgmt NOTICE: init.lua(40): update status to FS_IDLE.
1970-01-01 00:06:18.437103 firmware_mgmt NOTICE: init.lua(79): Upgrading_Flag is false
1970-01-01 00:06:32.424039 firmware_mgmt NOTICE: task_id_mgmt.lua(40): delete serial task id(1239244752) successfully
1970-01-01 00:06:32.424455 firmware_mgmt NOTICE: task_id_mgmt.lua(42): del serial task id(1239244752) successfully
1970-01-01 00:06:32.424973 firmware_mgmt NOTICE: task_instance.lua(100): destroy task info(id:1239244752) successfully
1970-01-01 00:06:39.136364 unknown_service ERROR: keyboard_mouse_service.lua(120): Get bios SystemStartupState and init g_bios_startup_state failed!
1970-01-01 00:06:40.769389 oms NOTICE: task_mgmt.lua(287): Create task[Id: 4112496957, StartTime: 1970-01-01T00:06:40+00:00, Progress: 0, State: New] successfully
1970-01-01 00:06:40.874064 oms NOTICE: task_mgmt.lua(418): Update task[Id: 4112496957, StartTime: 1970-01-01T00:06:40+00:00, Progress: 0, State: Running] successfully
1970-01-01 00:06:45.417588 oms ERROR: common.lua(35): Get date_time failed
1970-01-01 00:06:45.512961 oms NOTICE: task_mgmt.lua(418): Update task[Id: 4112496957, StartTime: 1970-01-01T00:06:40+00:00, Progress: 10, State: Running] successfully

解密失败,请联系项目支持获取加密用的工具。

技术给我bmcgo的安装包,我已经安装了,请问下面怎么操作,目前我换乘bmcgo build重新构建,会报错

先看看bmcgo -v,看看版本号是否正确,然后编译错误了,麻烦给日志

liujinlong@QiTianM415-D339:~/liujinlong/BMC/workspace/manifest$ bmcgo -v

whoami
liujinlong
bmcgo 版本为: 0.7.51
bingo 版本为: 0.6.146
bmc-studio 版本为: 1.2.0

bmcgo build报错,temp/log下没有task.log文件,终端输出:

liujinlong@QiTianM415-D339:~/liujinlong/BMC/workspace/manifest$ bmcgo build

whoami
liujinlong
conan版本: 2.24.0
导入模块 full_component 失败
已知参数:
调试框架: None, 构建参数: Namespace(board_name=‘TaiShan200_2280v2’, build_type=‘debug’, from_source=False, stage=‘dev’, verbose=False, update_conan_cache=False, remote=None, zip_code=None, supporte_code=‘default’, enable_qemu=False, qemu_in=False, coverage=False, asan=False, profile=‘’, enable_luajit=True, signature_type=None, encrypt_type=None, sdk_debug_dir=‘’, with_strip=False, debug_frame=None, debug_task=None, version=‘’, target=‘personal’, deploy=False)
设置单板名为: TaiShan200_2280v2
ERROR: 未知的单板 TaiShan200_2280v2,请检查参数配置是否正确
ERROR: 请查看日志信息

bmcgo build -b openUBMC日志如下:

复制 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/board_openUBMC/wbd_up_file/web_custom.xml 到 wbd_up_file/web_custom.xml

tar --format=gnu -zcvf wbd_up_file.tar.gz wbd_up_file
wbd_up_file/
wbd_up_file/favicon.ico
wbd_up_file/web_custom.xml
wbd_up_file/filelist.conf
mkdir -p /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/tmp_root/opt/bmc/white_branding
cp -f wbd_up_file.tar.gz /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/tmp_root/opt/bmc/white_branding
----打包 openUBMCwbd_up_file.tar.gz 到BMC hpm包中 ----------> [结束]
rm -rf /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/mnt_datafs
mkdir /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/mnt_datafs
切换工作目录到: /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg
开始构建 rootfs …
rm -rf /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs
tar --xattrs --xattrs-include=* -xf /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/sdk/rtos_with_ko.tar.gz
chown -R 0:0 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs
拷贝RTOS提供的mke2fs.conf配置文件覆盖本地环境中的/etc/mke2fs.conf文件, 确保mkfs.ext4使用该配置文件
cp -f /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/etc/mke2fs.conf /etc/mke2fs.conf
rm -rf /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/etc/ssh
chmod 644 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/etc/bmc-release
切换工作目录到: /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/output
cp -af /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/tmp_root/. /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs
cp -df /opt/hcc_arm64le/aarch64-target-linux-gnu/lib64/libgcc_s.so.1 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/lib64/libgcc_s.so.1
cp -df /opt/hcc_arm64le/aarch64-target-linux-gnu/lib64/libstdc++.so.6 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/lib64/libstdc++.so.6
chmod 755 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/lib64/libgcc_s.so.1
chmod 755 /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/lib64/libstdc++.so.6
rm -rf /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/usr/share/doc/openubmc
mkdir -p /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/opt/pme/upgrade
file /home/liujinlong/liujinlong/BMC/workspace/manifest/build/manufacture/misc/pme_profile_en.dat | grep ‘: data$’

终端输出

mkdir -p /home/liujinlong/liujinlong/BMC/workspace/manifest/temp/build_openUBMC_debug_dev/buildimg/rtos_with_driver/rootfs/opt/pme/upgrade
file /home/liujinlong/liujinlong/BMC/workspace/manifest/build/manufacture/misc/pme_profile_en.dat | grep ‘: data$’
ERROR: 任务 work.task_build_rootfs_img 执行失败, /home/liujinlong/liujinlong/BMC/workspace/manifest/build/manufacture/misc/pme_profile_en.dat是系统必要文件且内容不能为空。经检测该文件内容为空,请正确配置该文件。
ERROR: 任务 work.task_build_rootfs_img 执行失败
ERROR: 任务 personal 执行失败
ERROR: 请查看日志信息

找项目支持要日志的输出的必要文件:ERROR: 任务 work.task_build_rootfs_img 执行失败, /home/liujinlong/liujinlong/BMC/workspace/manifest/build/manufacture/misc/pme_profile_en.dat是系统必要文件且内容不能为空。经检测该文件内容为空,请正确配置该文件。或者要其他单板

解密失败,请联系项目支持获取加密用的工具。

请问我用命令“bmcgo build -b openUBMC”重新编译解决上面的问题操作对吗?

构建日志提醒你缺少关键的文件。这些文件只有项目支持才能提供。