补充版本信息
bmcgo
dpkg -l hw-ibmc-bmcgo
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-==============================================
ii hw-ibmc-bmcgo 0.5.282 all The bmc depveloper toolkits provided by huawei
pip3 show hw-ibmc-bmcgo
Name: hw-ibmc-bmcgo
Version: 0.5.214
Summary: Tools provided by ibmcv3
Home-page: https://www.huawei.com
Author: None
Author-email: None
License: UNKNOWN
Location: /usr/local/lib/python3.8/dist-packages
Requires: protobuf, pyopenssl, dbus-python, inflection, pyinstaller, pyecharts, conan, jsonschema, pyyaml, mako, gitpython, colorama, cryptography, meson, pysftp, typeguard, setuptools, kafka-python, launchpadlib, node-semver, pyyaml-include
Required-by:
manifest
最新提交
commit 194d39223c350f95767c4bab55b6aa14ab636ab8
manifest.yml 签名配置
cat ./build/product/BMC/openUBMC/manifest.yml
# yaml-language-server: $schema=/usr/share/bmcgo/schema/manifest.platform.schema.json
base:
# openUBMC四段式版本号定义规则:第1段为1字节,范围是1-9;后3段固定2字节,范围为00-99
version: "1.00.00.00.B001"
# 单板定制化脚本,位于build/customization目录,需要实现一个Customization类
customization: "customization/prototype.py"
rtos_version: 208.8.0
rtos_kernel: 5.10_ek_preempt_pro
dependency_buildtools: dependency/dependency_buildtools.xml
# 签名文件,由构建系统复制到self.config.board_path目录,如需定制
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
rootca_crl: ${product}/ca/rootca.crl
#simple_signer_server:
# url: 172.17.0.2
# rootca_der: ${product}/ca/rootca.der
# cert_id: _bmc_build
# ssl_verify: false
files:
- file: ${product}/ca/rootca.crl
dst: cms.crl
编译失败原因汇总
emmc_uboot_header.config 文件找不到
FileNotFoundError: [Errno 2] No such file or directory: '/home/workspace/source/manifest/temp/build_openUBMC_release_dev/gpp_build_dir/emmc_uboot_header.config'
[2025-03-25 11:11:15,799 ERROR] [Errno 2] No such file or directory: '/home/workspace/source/manifest/temp/build_openUBMC_release_dev/gpp_build_dir/emmc_uboot_header.config'
[2025-03-25 11:11:17,811 ERROR] 任务 personal 执行失败
[2025-03-25 11:11:17,812 ERROR] 请查看日志信息
[2025-03-25 11:01:34,001 INFO] 复制 /home/workspace/source/manifest/temp/build_openUBMC_debug_dev/sdk/Hi1711_boot_pmode_debug.bin 到 Hi1711_boot_pmode.bin 并保留权限
[2025-03-25 11:01:34,002 INFO] >> gpp_header hpm
[2025-03-25 11:01:34,006 ERROR] 执行命令 ['/usr/local/bin/gpp_header', 'hpm'] 错误, 日志: /home/workspace/source/manifest/temp/log/task.log
[2025-03-25 11:01:34,009 INFO] Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/bmcgo/frame.py", line 231, in run
ret = self._run()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/frame.py", line 275, in _run
ret = work_x.run()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_buildgppbin.py", line 94, in run
self.build_gpp_hpm_bin()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_buildgppbin.py", line 53, in build_gpp_hpm_bin
self.run_command("gpp_header hpm")
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task.py", line 242, in run_command
return self.tools.run_command(command, ignore_error, sudo, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/bmcgo/utils/tools.py", line 570, in run_command
raise e
File "/usr/local/lib/python3.8/dist-packages/bmcgo/utils/tools.py", line 560, in run_command
ret = subprocess.run(command, stdout=log_fd, stderr=log_fd, check=check, timeout=timeout)
File "/usr/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/local/bin/gpp_header', 'hpm']' returned non-zero exit status 255.
[2025-03-25 11:01:34,009 ERROR] Command '['/usr/local/bin/gpp_header', 'hpm']' returned non-zero exit status 255.
[2025-03-25 11:01:34,013 ERROR] 运行子任务 work.task_hpm_envir_prepare 类 bmcgo.tasks.task_hpm_envir_prepare失败
[2025-03-25 11:01:34,099 ERROR] 运行子任务 work.task_build_rootfs_img 类 bmcgo.tasks.task_build_rootfs_img失败
[2025-03-25 11:01:36,103 ERROR] 任务 personal 执行失败
[2025-03-25 11:01:36,103 ERROR] 请查看日志信息
make_uboot_img.sh 传参异常
[2025-03-25 10:56:06,466 INFO] >> make_uboot_img.sh
[2025-03-25 10:56:06,469 ERROR] 执行命令 ['/usr/local/bin/make_uboot_img.sh'] 错误, 日志: /home/workspace/source/manifest/temp/log/task.log
[2025-03-25 10:56:06,476 INFO] Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/bmcgo/frame.py", line 231, in run
ret = self._run()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/frame.py", line 275, in _run
ret = work_x.run()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_download_dependency.py", line 92, in run
self.move_dependency()
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_download_dependency.py", line 76, in move_dependency
self._self_sign_uboot("origin_uboot_debug", ".", True)
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_download_dependency.py", line 111, in _self_sign_uboot
self.run_command("make_uboot_img.sh")
File "/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task.py", line 242, in run_command
return self.tools.run_command(command, ignore_error, sudo, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/bmcgo/utils/tools.py", line 570, in run_command
raise e
File "/usr/local/lib/python3.8/dist-packages/bmcgo/utils/tools.py", line 560, in run_command
ret = subprocess.run(command, stdout=log_fd, stderr=log_fd, check=check, timeout=timeout)
File "/usr/lib/python3.8/subprocess.py", line 516, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['/usr/local/bin/make_uboot_img.sh']' returned non-zero exit status 255.
[2025-03-25 10:56:06,476 ERROR] Command '['/usr/local/bin/make_uboot_img.sh']' returned non-zero exit status 255.
[2025-03-25 10:56:08,548 ERROR] 任务 personal 执行失败
[2025-03-25 10:56:08,548 ERROR] 请查看日志信息
长期解决方案:
更新bmcgo软件
临时解决方案:
- 修改
build/product/BMC/openUBMC/manifest.yml文件,在gpp/files下增加:
- file: /usr/local/bin/emmc_uboot_header.config
- file: /usr/local/bin/hpm_header.config
- 修改
/usr/local/lib/python3.8/dist-packages/bmcgo/tasks/task_download_dependency.py文件的函数_self_sign_uboot:
新增行:
shutil.copy("/usr/local/bin/emmc_uboot_header.config", "emmc_uboot_header.config")
修改行:
self.run_command(f"make_uboot_img.sh 1711")
修改完成后:
def _self_sign_uboot(self, uboot_dir, output_dir, is_debug):
output_dir = os.path.realpath(output_dir)
rootca_der = self.config.rootca_der
rootca_crl = self.config.rootca_crl
debug_flag = "_debug" if is_debug else ""
cwd = os.getcwd()
cmd = f"dd if=Hi1711_boot_4096{debug_flag}.bin of={uboot_dir}/l0l1.bin bs=1K count=1K count=768"
self.run_command(cmd)
self.run_command(f"cp bin/signed_bin/sdk/u-boot_cms{debug_flag}.bin {uboot_dir}/u-boot_cms.bin")
self.run_command(f"cp {rootca_der} {uboot_dir}/rootca.der")
self.run_command(f"cp {rootca_crl} {uboot_dir}/cms.crl")
self.run_command(f"cp {uboot_dir}/u-boot.bin {uboot_dir}/uboot.bin")
self.signature(f"{uboot_dir}/uboot.bin", f"{uboot_dir}/uboot.bin.cms")
self.chdir(uboot_dir)
# 此处新增
shutil.copy("/usr/local/bin/emmc_uboot_header.config", "emmc_uboot_header.config")
self.run_command("gpp_header uboot")
# 此处修改
self.run_command(f"make_uboot_img.sh 1711")
cmd = f"dd if=Hi1711_boot_4096.bin of={output_dir}/Hi1711_boot_pmode{debug_flag}.bin bs=1K count=1024 skip=768"
self.run_command(cmd)
self.run_command(f"cp Hi1711_boot_4096.bin {output_dir}/Hi1711_boot_4096{debug_flag}.bin")
self.chdir(cwd)