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 工具与 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 从 manifest 同步 meta 层。
- 使用 setup environment 生成 BitBake 配置。在 Qualcomm Linux 2.0 中,BitBake 配置基于
machine.yml和distro.yml配置文件生成。因此,setup environment 将这些配置文件作为输入。 - 手动调用 BitBake 构建镜像。
构建步骤比较
下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 之间构建步骤的关键差异: 表:构建步骤比较覆盖(override)的变更
Qualcomm Linux 1.0 支持qcom-base-bsp 和 qcom-custom-bsp 覆盖。它使用这些覆盖来实现以下功能:
- 为
qcom-base-bsp和qcom-custom-bsp使用不同的内核树 - 在
rootfs镜像中包含不同的配方软件包集合 - 在
DTB.bin中包含不同的设备树二进制文件集合
对于 Qualcomm Linux 2.0,不再使用覆盖的原因如下:
- 构建
qcom-multimedia-image和qcom-multimedia-proprietary-image时使用相同的内核树和内核二进制文件。 - 构建
qcom-multimedia-image和qcom-multimedia-proprietary-image时,相同的设备树二进制文件和设备树二进制覆盖会打包到生成的扁平化镜像树 (FIT) 镜像中。 注意
如果您正在使用qcom-base-bsp和qcom-custom-bsp覆盖,请在 Qualcomm Linux 2.0 中停止使用它们。 要迁移 Qualcomm Linux 1.0 中使用覆盖的更改,请参考以下示例修改实现方式: 表:覆盖迁移示例
机器配置的变更
下表列出了 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 覆盖。
下表列出了在 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 参考发行版

