OpenEmbedded 层中的变更
Qualcomm Linux 使用 OpenEmbedded 层来交付技术组件和参考发行版。 下表列出了 Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 之间 OpenEmbedded 层的变更: 表:OpenEmbedded 层中的变更
下表列出了作为 Qualcomm Linux 2.0 一部分、由 Qualcomm 编写的 OpenEmbedded 层的变更:
表:Qualcomm 编写的 OpenEmbedded 层中的变更
Qualcomm Linux 2.0 构建系统中的变更
请考虑传统的 Qualcomm Linux 1.0 repo-manifest Yocto 构建工作流与 Qualcomm Linux 2.0 基于配置自动化系统(KAS)的工作流之间的以下关键差异。KAS 概述
Qualcomm Linux 支持基于 KAS 的构建执行。KAS 是一个面向基于 BitBake 项目的开源工具。它使用 YAML 配置文件简化了配置和启动 OpenEmbedded 构建的过程。KAS 自动执行以下操作,使其适用于开发者以及持续集成/持续部署(CI/CD)场景:- 克隆并检出必要的层 Git 仓库> - 根据 YAML 输入生成所需的 BitBake 配置文件,例如
local.conf和bblayers.conf - 通过执行标准的 BitBake 流程,减少设置工作区所需的步骤。例如,
kas build <config.yml>会执行以下操作:- 克隆层仓库
- 设置环境
- 启动 BitBake
<image>
- 提供 kas-container 封装器,可在 Docker 中运行构建过程
下表在高层级上比较了 Repo 工具和 KAS 的工作流:
表:高层级工作流比较:Repo 工具 vs. KAS
KAS 配置文件示例
以下示例展示了在meta-qcom 中找到的 KAS 配置文件示例,并解释了每个部分如何映射到 repo-manifest 工作流的概念以及 KAS 如何解释它们。有关配置文件格式的更多信息,请参阅 KAS 文档。
base.yml
base.yml 文件记录了所有构建组合使用的基础配置。
machine.yml
machine.yml 文件记录了特定于机器的配置。此文件通常扩展 base.yml 配置。
distro.yml
distro.yml 文件记录了特定于发行版的配置以及要构建的目标。
使用基于 KAS 的构建系统运行构建
使用 KAS 时,先克隆包含 KAS YAML 文件的仓库,然后使用以下方法之一进行构建:- 运行 KAS 构建命令
- 启动 KAS shell,然后运行 BitBake
qcom-multimedia-image,请在出现上述输出后的 KAS shell 中运行以下命令:
meta-qcom/ci/rb3gen2-core-kit.ymlmeta-qcom/ci/qcm6490.ymlmeta-qcom/ci/base.yml
meta-qcom/ci/qcom-distro.ymlmeta-qcom/blob/master/ci/qcom-distro-multimedia-image.yml
使用示例仓库通过 KAS 设置 CI
要使用 KAS 设置 CI,请使用以下示例仓库: https://github.com/qualcomm-linux/meta-vendor-example 注意 要设置 Yocto Project 构建环境,请参阅 Yocto Project 参考手册。 要运行基于 KAS 的构建,请执行以下操作:- 要安装 KAS 工具,请运行以下命令:
- 要克隆
meta-vendor-example层,请运行以下命令: - 要使用受支持开发板之一的 KAS 配置进行构建,请运行以下命令:
Qualcomm Linux 2.0 repo-manifest 工作流
Qualcomm Linux 2.0 提供了基于 repo-manifest 的工作流。Qualcomm Linux 2.0 中的高层级变更如下:- 使用 repo 从清单同步 meta 层。
- 使用 setup environment 生成 BitBake 配置。在 Qualcomm Linux 2.0 中,BitBake 配置基于
machine.yml和distro.yml配置文件生成。因此,setup environment 将这些配置文件作为输入。 - 手动调用 BitBake 来构建镜像。
构建步骤比较
下表列出了 Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 之间构建步骤的关键差异: 表:构建步骤比较Overrides 中的变更
Qualcomm Linux 1.0 支持qcom-base-bsp 和 qcom-custom-bsp overrides。它使用这些 overrides 执行以下操作:
- 为
qcom-base-bsp和qcom-custom-bsp使用不同的内核树 - 在
rootfs镜像中包含不同的配方软件包集合 - 在
DTB.bin中包含不同的设备树二进制文件集合
对于 Qualcomm Linux 2.0,出于以下原因不使用 overrides:
- 构建
qcom-multimedia-image和qcom-multimedia-proprietary-image时使用相同的内核树和内核二进制文件。 - 构建
qcom-multimedia-image和qcom-multimedia-proprietary-image时,相同的设备树二进制文件和设备树二进制覆盖被打包到生成的扁平化镜像树(FIT)镜像中。 注意
如果您正在使用qcom-base-bsp和qcom-custom-bspoverrides,请在 Qualcomm Linux 2.0 中停止使用它们。 要迁移在 Qualcomm Linux 1.0 中使用 overrides 的变更,请根据以下示例修改使用 overrides 的实现: 表:Overrides 迁移示例
机器配置中的变更
下表列出了 Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 之间机器配置名称的变更: 表:机器配置更新BitBake 变量中的变更
下表列出了 Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 机器配置中使用的 BitBake 变量:Linux 配方中的变更
Qualcomm Linux 2.0 支持单一内核配方及其对应的实时变体。下表列出了 Qualcomm Linux 1.0 和 Qualcomm Linux 2.0 之间的 Linux 内核配方变更: 表:Linux 内核配方变更
注意
对于 Qualcomm Linux 2.0,仅从 qcom-next 获取单一内核树。该内核树用于构建以下两个镜像:
qcom-multimedia-image提供包含上游软件栈的rootfs。qcom-multimedia-proprietary-image提供包含 Qualcomm 维护组件的rootfs。
镜像配方中的变更
meta-qcom-distro 层支持 Qualcomm Linux 中使用的所有镜像配方。Qualcomm Linux 2.0 对镜像配方的管理和组织方式进行了变更,并且不再在镜像配方中使用 BitBake overrides。
下表列出了在 meta-qcom-distro open-embedded 层中定义的镜像配方。这些镜像配方的命名约定及其从 Qualcomm Linux 1.0 的演变已发生变化。例如:
- 镜像配方不再使用
DISTROOVERRIDES来区分镜像中的软件包包含。 qcom-multimedia-proprietary-image添加 Qualcomm 软件组件。
参考发行版配置中的变更
Qualcomm Linux 2.0 对参考发行版配置进行了变更。在 Qualcomm Linux 1.0 中,qcom-wayland 的参考发行版位于 distro 文件夹中。
下表列出了 Qualcomm Linux 2.0 中的参考发行版:
表:Qualcomm Linux 2.0 参考发行版

