集成busybox修改manifest.yml后,在docker下执行bingo build报错


添加后在docker 下执行bingo build


root@7deadf87788c:/home/workspace/manifest# bingo build
>> whoami
root
conan版本: 2.13.0
已知参数: []
调试框架: None, 构建参数: Namespace(board_name='openUBMC', 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, debug_frame=None, debug_task=None, version='', target='personal', deploy=False)
单板源配置路径: /home/workspace/manifest/build/product/BMC/openUBMC
复制单板的 manifest 目录从 /home/workspace/manifest/build/product/BMC/openUBMC 到 /home/workspace/manifest/temp/board_openUBMC
>> rm -rf /home/workspace/manifest/temp/board_openUBMC
>> cp -rf /home/workspace/manifest/build/product/BMC/openUBMC /home/workspace/manifest/temp/board_openUBMC
不能从 yaml 文件中获取到键值 base/show_version, 没有相关配置
不能从 yaml 文件中获取到键值 tosupporte/default/show_version, 没有相关配置
>> conan remote list
不能从 yaml 文件中获取到键值 archive, 没有相关配置
不能从 yaml 文件中获取到键值 archive, 没有相关配置
不能从 yaml 文件中获取到键值 archive, 没有相关配置
不能从 yaml 文件中获取到键值 base/profile, 没有相关配置
未开启hpm加密配置
>> conan install --requires='ibmc_sdk/5.11.00.01.b002@openubmc/stable' -o ibmc_sdk/*:rtos_version=rtos_v2 -o ibmc_sdk/*:enable_haf=False --build=missing -f json --out-file=/tmp/tmph3irlon3/package.json -of temp

======== Input profiles ========
Profile host:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu14
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux
[options]
ibmc_sdk/*:enable_haf=False
ibmc_sdk/*:rtos_version=rtos_v2

Profile build:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu14
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux


======== Computing dependency graph ========
Graph root
cli
Requirements
ibmc_sdk/5.11.00.01.b002@openubmc/stable#959e867ffe7d49babb8e6cb6b94c111c - Cache

======== Computing necessary packages ========
Requirements
ibmc_sdk/5.11.00.01.b002@openubmc/stable#959e867ffe7d49babb8e6cb6b94c111c:6759467d1ed0e280bd5f5b1bdc9bb0f993ee378b#bbb13435a22c348b41d3c2f23ea7324c - Cache

======== Installing packages ========
ibmc_sdk/5.11.00.01.b002@openubmc/stable: Already installed! (1 of 1)

======== Finalizing install (deploy, generators) ========
cli: Generating aggregated env files
cli: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
Install finished successfully
Formatted output saved to '/tmp/tmph3irlon3/package.json'
>> cp -rf /root/.conan2/p/ibmc_a926bd27c0223/p/rtos_v2 /home/workspace/manifest/build/temp/board_openUBMC_platform
>> cp /home/workspace/manifest/build/dependency/dependency_buildtools.xml /home/workspace/manifest/build/temp/board_openUBMC_platform/dependency
ERROR: 配置错误: 不允许删除平台组件或定制平台组件版本号busybox/1.34.0@openubmc.release/stable
ERROR: 请查看日志信息
>> conan install --requires='bingo_cases/[>=1.0.0]@openubmc/stable' -u         --deployer-folder=temp -of temp -d direct_deploy
[INFO unified_error_analyzer.py:186 analyze_errors] 
============================================================
[INFO unified_error_analyzer.py:187 analyze_errors] 🔍 开始统一错误分析
[INFO unified_error_analyzer.py:188 analyze_errors] ============================================================
[WARNING unified_error_analyzer.py:326 _output_unified_analysis] 
✅ 没有发现匹配的错误案例

:exclamation_question_mark: 原因分析

manifest做了支持集成bmc_sdk构建, PR
bmc_sdk自带了busybox/1.34.1,不能重复定义,而社区只有busybox/1.34.0

:white_check_mark: 解决方案

  1. 下载conan_index仓库源码
git clone https://gitcode.com/openUBMC/conan_index.git

cd conan_index/recipes2/busybox/all
  1. 修改busybox版本号到1.34.1
    recipes2/busybox/config.yml
versions:
  1.34.1:
    folder: all

recipes2/busybox/config.yml

sources:
  1.34.1:
    url:
      - https://ftp.icm.edu.pl/packages/busybox/busybox-1.34.0.tar.bz2
      - https://busybox.net/downloads/busybox-1.34.0.tar.bz2
    sha256: ec8d1615edb045b83b81966604759c4d4ac921434ab4011da604f629c06074ce
  1. 构建busybox 1.34.1版本conan包
bingo build -jit --stage stable --conan2 -cp  busybox/1.34.1
  1. 删除manifest.yml如下配置。
debug_dependencies:
- conan: busybox/1.34.0@openUBMC.release/stable
  1. 进去manifest目录执行bingo build
  2. 结果验证: 在manifest目录里temp/log/task.log中搜索 busybox。

勘误:

解决方案第2步修正为:
修改recipes2/busybox/config.ymlrecipes2/busybox/all/conandata.yml的版本号

第3步修改为:

cd conan_index/recipes2/busybox/all

conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=release --profile=profile.luajit.ini

解决方案第4步修正为

  1. 删除manifest.yml如下配置。
debug_dependencies:
  - conan: busybox
    action: delete

修改busybox版本号第二步那里应该是conandata.yml吧,url和sha256与1.34.0的不一样吧,按照给的这个build是不能出包的

======== Installing packages ========
abseil/20250127.0.004@openubmc/stable: Already installed! (1 of 113)
boost/1.87.0.b003@openubmc/stable: Already installed! (2 of 113)
busybox/1.34.1@openubmc/stable: WARN: Trying to remove corrupted source folder
busybox/1.34.1@openubmc/stable: WARN: This can take a while for big packages
busybox/1.34.1@openubmc/stable: Calling source() in /root/.conan2/p/busyb70b12c76d0e26/s
ERROR: busybox/1.34.1@openubmc/stable: Error in source() method, line 46
	get(self, **self.conan_data["sources"][self.version], strip_root=True)
	KeyError: '1.34.1'
e[31mERROR: 执行命令 conan create . -pr=profile.luajit.ini -pr:b profile.dt.ini  -s:a build_type=Debug  -o firmware_mgmt/*:community_enable=True -o vpd/*:board_name=openUBMC -o fructrl/*:manufacture=True -o chassis/*:manufacture=True -o webui/*:energy_enabled=False -o account/*:manufacture=True -o help/*:board_name=openUBMC -o bmc_time/*:manufacture=True -o */*:enable_luajit=True -o */*:module_symvers=1ee923e971f1cf759b9b1cf3df4fbdf4182b1eb2d5f267ef64494e6ea0bf9b86  --user=openubmc --channel=stable --build=missing 错误, 日志: /home/workspace/manifest/temp/log/task.log

嗯, 我笔误了

实际的url和sha256是多少呢

只是修改版本号, 内容还是用1.34.0版本。

busybox 1.34.1版本的conan 包可以正常构建。
但是把manifest.yml中的debug_dependencies配置删除后bingo build编译报错:

======== Installing packages ========
abseil/20250127.0.004@openubmc/stable: Already installed! (1 of 113)
boost/1.87.0.b003@openubmc/stable: Already installed! (2 of 113)
busybox/1.34.1@openubmc/stable: WARN: Trying to remove corrupted source folder
busybox/1.34.1@openubmc/stable: WARN: This can take a while for big packages
busybox/1.34.1@openubmc/stable: Calling source() in /root/.conan2/p/busyb70b12c76d0e26/s
ERROR: busybox/1.34.1@openubmc/stable: Error in source() method, line 46
	get(self, **self.conan_data["sources"][self.version], strip_root=True)
	KeyError: '1.34.1'
e[31mERROR: 执行命令 conan create . -pr=profile.luajit.ini -pr:b profile.dt.ini  -s:a build_type=Debug  -o firmware_mgmt/*:community_enable=True -o vpd/*:board_name=openUBMC -o fructrl/*:manufacture=True -o chassis/*:manufacture=True -o webui/*:energy_enabled=False -o account/*:manufacture=True -o help/*:board_name=openUBMC -o bmc_time/*:manufacture=True -o */*:enable_luajit=True -o */*:module_symvers=1ee923e971f1cf759b9b1cf3df4fbdf4182b1eb2d5f267ef64494e6ea0bf9b86  --user=openubmc --channel=stable --build=missing 错误, 日志: /home/workspace/manifest/temp/log/task.log

按照你说的改了manifest.yml的配置,还是报错:

======== Finalizing install (deploy, generators) ========
cli: Generating aggregated env files
cli: Generated aggregated env files: ['conanbuild.sh', 'conanrun.sh']
Install finished successfully
Formatted output saved to '/tmp/tmpgt55_bq8/package.json'
>> cp -rf /root/.conan2/p/ibmc_a926bd27c0223/p/rtos_v2 /home/workspace/manifest/build/temp/board_openUBMC_platform
>> cp /home/workspace/manifest/build/dependency/dependency_buildtools.xml /home/workspace/manifest/build/temp/board_openUBMC_platform/dependency
ERROR: 配置错误: 不允许删除平台组件或定制平台组件版本号busybox/1.34.1@openubmc/stable
ERROR: 请查看日志信息
>> conan install --requires='bingo_cases/[>=1.0.0]@openubmc/stable' -u         --deployer-folder=temp -of temp -d direct_deploy
[INFO unified_error_analyzer.py:186 analyze_errors] 
============================================================
[INFO unified_error_analyzer.py:187 analyze_errors] 🔍 开始统一错误分析
[INFO unified_error_analyzer.py:188 analyze_errors] ============================================================
[WARNING unified_error_analyzer.py:326 _output_unified_analysis] 
✅ 没有发现匹配的错误案例
root@7deadf87788c:/home/workspace/manifest# 

bi n go 的版本是多少,是最新的么

root@7deadf87788c:/home/workspace/manifest# bingo -v
>> whoami
root
bingo 版本为: 0.6.106
bmc-studio 版本为: 1.2.0
root@7deadf87788c:/home/workspace/manifest# conan -v
Conan version 2.13.0

实践步骤:

  1. 修改版本号

  1. 构建busybox 1.34.1
cd conan_index/recipes2/busybox/all

conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=stable --profile=profile.luajit.ini

  1. 删除manifest.yml如下配置。
debug_dependencies:
  - conan: busybox
    action: delete
  1. 在manifest 进行构建,busybox 被打包进去。

  1. 可选)上传本地busybox组件到远程conan仓
conan upload busybox/1.34.1@openubmc/stable --all -r=<你自己的远程仓库>

附录

按照上述步骤执行,构建时可以看到busybox打包进去


但是随后就报错退出了

下面是task.log的一些报错信息:

======== Installing packages ========
abseil/20250127.0.004@openubmc/stable: Already installed! (1 of 113)
boost/1.87.0.b003@openubmc/stable: Already installed! (2 of 113)
busybox/1.34.1@openubmc/stable: WARN: Trying to remove corrupted source folder
busybox/1.34.1@openubmc/stable: WARN: This can take a while for big packages
busybox/1.34.1@openubmc/stable: Calling source() in /root/.conan2/p/busyb70b12c76d0e26/s
ERROR: busybox/1.34.1@openubmc/stable: Error in source() method, line 46
	get(self, **self.conan_data["sources"][self.version], strip_root=True)
	KeyError: '1.34.1'
e[31mERROR: 执行命令 conan create . -pr=profile.luajit.ini -pr:b profile.dt.ini  -s:a build_type=Debug  -o firmware_mgmt/*:community_enable=True -o vpd/*:board_name=openUBMC -o fructrl/*:manufacture=True -o chassis/*:manufacture=True -o webui/*:energy_enabled=False -o account/*:manufacture=True -o help/*:board_name=openUBMC -o bmc_time/*:manufacture=True -o */*:enable_luajit=True -o */*:module_symvers=1ee923e971f1cf759b9b1cf3df4fbdf4182b1eb2d5f267ef64494e6ea0bf9b86  --user=openubmc --channel=stable --build=missing 错误, 日志: /home/workspace/manifest/temp/log/task.log

你这里触发了源码构建。

  1. 执行 conan remove busybox -c 清空缓存。
  2. 按如下命令重新构建busybox
cd conan_index/recipes2/busybox/all

conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=stable --profile=profile.luajit.ini

清除缓存了,现在报这个错,重新连接远程conan仓也报错:

清空缓存后, 重新构建busybox, 是2个步骤。

----------------分—隔-----线-----------------

如果还有出错,麻烦给出操作的实际步骤和每个步骤的执行结果截图。

清除缓存:

conan remove busybox -c


切换目录,构建busybox

conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=release --profile=profile.luajit.ini


到manifest下bingo build:

我的问题, busybox构建命令里有个参数错了,应该是 --channel=stable。 再试下,应该就没问题了。

成功出包了,感谢

v2 直升openubmc版本需要配置加密参数

在manifest仓库的.bmcgo/config中添加如下配置

image