【教学培训篇】构建openUBMC包

摘要: openUBMC作为一款管理软件,构建出包是所有开发人员开发的一个关键步骤,本文档主要对openUBMC组件构建/openUBMC包构建做简要介绍。

准备工作

openUBMC为微组件架构,开发与调试工作大多基于组件进行; 在开始构建前,需要先做一些准备工作(如安装构建依赖工具bingo),可以参考openUBMC官网环境准备指导进行一键配置。

组件构建

这里的组件构建流程以account组件为例

  1. 从gitcode拉取account组件源码
  2. 按照自身需要进行组件开发
  3. 组件构建,在组件目录下执行
bingo build

此处直接使用bingo build,构建选项均为默认值,所有的构建选项可通过bingo build --help命令查看,若想了解更详细的构建功能,可从官网自行检索或查看bingo帮助文档
5. 构建结果
构建完成后会有如下回显:


此时组件已构建成功,构建产物保留在本地目录~/.conan中对应目录下,而会回显中的account/1.90.24@openUBMC.dev/dev为此次构建此组件的版本,在构建openUBMC包时会通过此类版本信息所有组件进行整合;

openUBMC包构建

  1. 构建完组件后(若不需要组件构建出包,可忽略此步),在manifest仓下替换组件版本:在仓内搜索‘account/’找到当前组件版本,如:


    将build/subsys/rc/***.yml下的组件版本替换为上文中的组件版本:

  2. 构建hpm包,在manifest目录下执行
    hpm包的构建参数与组件构建存在一定差异,详细构建选项可通过上文bingo帮助文档查看,构建产品包命令

bingo build
  1. 构建完成后会有如下回显:

    可以通过在控制台搜索‘account/'确认构建hpm包时使用的account组件版本符合预期:
    image
  2. 构建成功后, 在manifest仓output/目录下生成文件中,’rootfs_openUBMC.hpm‘即为对应产品包

Qemu cpio包

qemu包的组件版本替换方式与产品包一致

  1. 构建qemu cpio包:
bingo build -sc qemu
  1. 构建成功后在output/packet/inner目录下的openUBMC_qemu.cpio.gz即为对应qemu cpio包

验证调试

  1. 对于产品包, 可直接使用此hpm包升级bmc环境(qemu暂不支持升级功能)
  2. 对于qemu cpio包, 构建出cpio包后直接在manifest仓下拉起qemu使用,运行qemu命令:
python3 build/works/packet/qemu_shells/vemake_1711.py
  1. 在bmc启动后, 可连接bmc并在package_info下查看到组件版本cat /etc/package_info | grep account