解决 2509 QEMU冒烟测试 离线部署出现 make 执行出错的问题

解决 2509 QEMU冒烟测试 离线部署 出现 make 执行出错的问题

当前处于生成仿真镜像包的阶段

现象

执行:bingo build -sc qemu -b openUBMC 时出错

分析

执行命令为:sudo make
执行目录为:manifest/temp/qemu/qemu_rootfs/data/script

手动执行make:

image
离谱。。。。又要下载:https://gitcode.com/openharmony_mirror/third_party_cJSON.git
让我看看Makefile文件中是否还要下载其他软件:


看来只需要下载 third_party_cJSON
最简单的办法是内网部署 third_party_cJSON
这个Makefile在temp目录,只改这个目录下的文件治标不治本,猜测这个Makefile在qemu仓,果然如此:


mock/data/script/Makefile
调试:
1、部署third_party_cJSON到内网
2、修改qemu中的third_party_cJSON下载地址
3、重新执行 bingo build -sc qemu -b openUBMC
调试有效,正常生成了 output/packet/inner/openUBMC_qemu_default.cpio.gz 仿真镜像包

总结

仿真镜像包的构建依赖 cJSON,当前是在qemu仓的Makefile中配置源码仓路径,离线部署无法访问此源码仓路径,导致make执行错误。

解决方案

当前临时:
方案一:部署third_party_cJSON源码到内网(已验证)
方案二:将third_party_cJSON直接放到qemu仓中

长期建议:
如果社区推荐方案一,那么应该在yml中指定third_party_cJSON镜像仓路径
如果社区推荐方案二,那么应该在qemu仓中加入third_party_cJSON压缩包
或者,将third_party_cJSON打包成conan包?

1 个赞

当初设计方案的时候考虑过将第三方json打包到qemu仓,后续经分析这样的引入第三方json代码可能存在偏颇,在yml中添加制定的镜像仓路径的或者引入conan包的方案,我们会认真考虑的,很感谢您的建议!