rodrick
(Rodrick)
1
添加后在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]
✅ 没有发现匹配的错误案例
Larry_Li
(LiJiang)
2
原因分析
manifest做了支持集成bmc_sdk构建, PR
bmc_sdk自带了busybox/1.34.1,不能重复定义,而社区只有busybox/1.34.0。
解决方案
- 下载conan_index仓库源码
git clone https://gitcode.com/openUBMC/conan_index.git
cd conan_index/recipes2/busybox/all
- 修改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
- 构建busybox 1.34.1版本conan包
bingo build -jit --stage stable --conan2 -cp busybox/1.34.1
- 删除manifest.yml如下配置。
debug_dependencies:
- conan: busybox/1.34.0@openUBMC.release/stable
- 进去manifest目录执行
bingo build。
- 结果验证: 在manifest目录里
temp/log/task.log中搜索 busybox。
Larry_Li
(LiJiang)
3
勘误:
解决方案第2步修正为:
修改recipes2/busybox/config.yml和recipes2/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步修正为
- 删除manifest.yml如下配置。
debug_dependencies:
- conan: busybox
action: delete
rodrick
(Rodrick)
4
修改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
rodrick
(Rodrick)
8
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
rodrick
(Rodrick)
10
按照你说的改了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#
rodrick
(Rodrick)
12
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
Larry_Li
(LiJiang)
13
实践步骤:
- 修改版本号
- 构建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
- 删除manifest.yml如下配置。
debug_dependencies:
- conan: busybox
action: delete
- 在manifest 进行构建,busybox 被打包进去。
- (可选)上传本地busybox组件到远程conan仓
conan upload busybox/1.34.1@openubmc/stable --all -r=<你自己的远程仓库>
附录:
rodrick
(Rodrick)
14
按照上述步骤执行,构建时可以看到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
Larry_Li
(LiJiang)
15
你这里触发了源码构建。
- 执行
conan remove busybox -c 清空缓存。
- 按如下命令重新构建busybox
cd conan_index/recipes2/busybox/all
conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=stable --profile=profile.luajit.ini
rodrick
(Rodrick)
16
清除缓存了,现在报这个错,重新连接远程conan仓也报错:
Larry_Li
(LiJiang)
17
清空缓存后, 重新构建busybox, 是2个步骤。
----------------分—隔-----线-----------------
如果还有出错,麻烦给出操作的实际步骤和每个步骤的执行结果截图。
rodrick
(Rodrick)
18
清除缓存:
conan remove busybox -c
切换目录,构建busybox
conan create . --name=busybox --version=1.34.1 --user=openubmc --channel=release --profile=profile.luajit.ini
到manifest下bingo build:
Larry_Li
(LiJiang)
19
我的问题, busybox构建命令里有个参数错了,应该是 --channel=stable。 再试下,应该就没问题了。
v2 直升openubmc版本需要配置加密参数
在manifest仓库的.bmcgo/config中添加如下配置
