Skip to main content
考虑 OpenEmbedded 层、构建系统、BitBake 变量、配方和发行版中的变更,以便从 Qualcomm Linux 1.0 迁移到 Qualcomm Linux 2.0。

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 中运行构建过程
下表在机器选择、发行版选择和 BSP 风味等参数上比较了 Repo 工具和 KAS: 表:Repo 工具与 KAS 比较 下表在高层级上比较了 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 的构建系统运行构建

使用 KAS 时,先克隆包含 KAS YAML 文件的仓库,然后使用以下方法之一进行构建:
  • 运行 KAS 构建命令
  • 启动 KAS shell,然后运行 BitBake
要使用 KAS 构建命令运行构建,请运行以下命令:
要启动 KAS shell 然后运行 BitBake,请运行以下命令:
输出如下:
要开始构建 qcom-multimedia-image,请在出现上述输出后的 KAS shell 中运行以下命令:
有关更多信息,请参阅 KAS 文档。 要将您的 OpenEmbedded 层迁移到 Qualcomm Linux 2.0 支持的基于 KAS 的构建,请参考以下机器文件为机器创建 KAS CI 文件:
  • meta-qcom/ci/rb3gen2-core-kit.yml
  • meta-qcom/ci/qcm6490.yml
  • meta-qcom/ci/base.yml
同样,请参考以下文件为发行版创建 KAS CI 文件:
  • meta-qcom/ci/qcom-distro.yml
  • meta-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 的构建,请执行以下操作:
  1. 要安装 KAS 工具,请运行以下命令:
  2. 要克隆 meta-vendor-example 层,请运行以下命令:
  3. 要使用受支持开发板之一的 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。下表列出了 Qualcomm Linux 2.0 支持的配方: 对于 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-bsp overrides,请在 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 参考发行版