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-recipe 和 classes。机器配置
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_ROOTFS和SERIAL_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 的设置方式。
conf/machine/include/fit-dtb-compatible.inc 文件中的 FIT_DTB_COMPATIBLE 条目打包到 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 配方执行以下操作:
- 获取子系统固件二进制文件。
- 解压 tar 文件。
- 将固件安装到
/usr/lib/firmware/。
DSP 库
用户空间实用程序会引用数字信号处理器(DSP)库,这些库必须存在于rootfs 镜像中。以下固件配方提供特定于硬件 SoC 的 DSP 库:
hexagon-dsp-binaries_%.bb 配方执行以下操作:
- 从 GitHub 仓库获取 DSP 库。
- 解压 zip 文件。
- 将 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
许可证
meta-qcom 中配方的许可证列于 <workspace>/meta-qcom/licenses。
您可以在以下目录中找到 SPDX 输出:
- 在
local.conf中继承create-spdx类,如下所示:- 继承该类后,使用 BitBake 命令重新构建镜像:
- 对于每个配方,生成的文件位于
tmp/deploy/spdx/<machine>目录中。- 顶层 SPDX 输出文件位于
tmp/deploy/images/<machine>/目录中。
后续步骤
- 要添加自定义机器配置,请参阅添加自定义机器配置。
- 有关内核开发和设备树自定义,请参阅 Qualcomm Linux 内核指南。
- 要使用配方处理树外内核模块和设备树,请参阅使用配方处理树外内核模块和设备树。

