Skip to main content
meta-qcom 元数据层托管在 git.yoctoproject.org,提供用于构建 Qualcomm BSP 的配方。 使用 meta-qcom 层中的配方来构建软件镜像。该层还提供对 Qualcomm 设备的启用支持。 注意 本指南将 QCM6490 和 QCS6490 硬件 SoC 互换使用。meta-qcom/conf/machine/ 目录中定义的 rb3gen2-core-kit.conf 及机器配置文件支持 QCM6490、QCS6490 和 QCS5430 硬件 SoC。

BitBake 类

有关 BitBake 类的介绍,请参阅 classes-recipeclasses

机器配置

Qualcomm Linux 机器配置文件可在 GitHub 上获取。位于 meta-qcom/conf/machine/include 目录中的文件定义并设置所需的 BitBake 变量,这些变量通常由 Qualcomm BSP 定义的机器配置使用。下表概述了这些文件。

基于 QCS6490 的开发套件的机器配置文件

基于 IQ-9075 和 IQ-9100 的开发套件的机器配置文件

基于 IQ-8275 的开发套件的机器配置文件

基于 IQ-615 的开发套件的机器配置文件

IQ-X5121 和 IQ-X7181 的机器配置文件

内核命令行

recipes-kernel/images/esp-qcom-image.bb 设置 UKI_CMDLINE 变量。在生成 UKI 镜像时,此变量作为 –cmdline= 传递给 ukify 工具。meta-qcom/conf/machine/include/qcom-base.inc 设置 QCOM_BOOTIMG_ROOTFSSERIAL_CONSOLES 变量,这些变量用于组成 UKI_CMDLINE 变量。

包含 DTB 和 DTB 覆盖

KERNEL_DEVICETREE 变量用于将所需的 DTB 和 DTB 覆盖打包到 FIT 镜像中。此变量在位于 meta-qcom/conf/machine 的各个机器配置文件中配置。 例如,conf/machine/rb3gen2-core-kit.conf 文件设置 KERNEL_DEVICETREE 变量,从而选择相应的 DTB: rb3gen2-core-kit.conf 以下代码块展示了 KERNEL_DEVICETREE 的设置方式。
列出的 DTB 和 DTB 覆盖将使用 conf/machine/include/fit-dtb-compatible.inc 文件中的 FIT_DTB_COMPATIBLE 条目打包到 FIT 镜像中。
这将生成配置如下的 FIT 镜像:

固件配方

Qualcomm Linux 固件配方文件可在 GitHub 上获取。同步 Qualcomm Linux 源代码后,固件配方位于 <workspace>/meta-qcom/recipes-bsp/firmware-boot<workspace>/meta-qcom/recipes-bsp/hexagon-dsp-binaries 目录中。

启动固件二进制文件

启动设备需要关键的启动固件镜像。以下固件配方提供特定于硬件 SoC 的启动固件。 生成构建后,这些 zip 文件中的固件二进制文件可在以下目录中用于烧录:<workspace>/build/tmp/deploy/images/<machine-name>/<image-name>.qcomflash/

子系统固件二进制文件

Qualcomm Linux 包含加载并运行在相应子系统上的固件二进制文件。当 Qualcomm 硬件 SoC 启动时,各个子系统在退出复位状态后运行固件。linux-firmware 配方提供上游固件包并将其安装在 /usr/lib/firmware 目录中。 linux-firmware_%.bb 配方执行以下操作:
  1. 获取子系统固件二进制文件。
  2. 解压 tar 文件。
  3. 将固件安装到 /usr/lib/firmware/

DSP 库

用户空间实用程序会引用数字信号处理器(DSP)库,这些库必须存在于 rootfs 镜像中。以下固件配方提供特定于硬件 SoC 的 DSP 库: hexagon-dsp-binaries_%.bb 配方执行以下操作:
  1. 从 GitHub 仓库获取 DSP 库。
  2. 解压 zip 文件。
  3. 将 DSP 库安装到 rootfs 中。

boot、subsystem 和 dspso 的安装

构建 Qualcomm Linux 时,构建系统根据机器配置文件中设置的 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS 配置变量,使用固件配方部署固件。例如,在 conf/machine/iq-9075-evk.conf 中,可以看到 MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS 变量中包含了 packagegroup-iq-9075-evk-firmware
注意 packagegroup-iq-9075-evk 配方位于 <workspace>/meta-qcom/recipes-bsp/packagegroups/ 目录中。它将固件配方分组以生成镜像。 构建 Qualcomm Linux 时,根据机器配置和软件包组配方文件中的配置,将构建 <workspace>meta-qcom/recipes-bsp/firmware 目录中相应的固件配方。

内核配方

Qualcomm Linux 使用的 Linux 内核配方位于 <workspace>/meta-qcom/recipes-kernel/linux。Qualcomm Linux 支持长期支持(LTS)版 Qualcomm Linux 内核 v6.18.x。 meta-qcom 层中,有两个内核配方: linux-qcom_6.18.bblinux-qcom-rt_6.18.bb
内核配置 Qualcomm Linux 内核配方使用不同的内核配置和片段集合。

许可证

meta-qcom 中配方的许可证列于 <workspace>/meta-qcom/licenses
Yocto 可以在创建镜像时自动生成 SPDX SBOM 文档。要启用此功能,请按以下步骤操作:
  1. local.conf 中继承 create-spdx 类,如下所示:
  2. 继承该类后,使用 BitBake 命令重新构建镜像:
您可以在以下目录中找到 SPDX 输出:
  • 对于每个配方,生成的文件位于 tmp/deploy/spdx/<machine> 目录中。
  • 顶层 SPDX 输出文件位于 tmp/deploy/images/<machine>/ 目录中。

后续步骤