meta-qcom metadata layer is hosted at git.yoctoproject.org and provides recipes to build the Qualcomm BSP.
Use the recipes from the meta-qcom layer to build the software image. This layer also provides support for enabling Qualcomm devices.
Note
This guide uses the QCM6490 and QCS6490 hardware SoCs interchangeably. The rb3gen2-core-kit.conf and machine configuration files defined in the meta-qcom/conf/machine/ directory support the QCM6490, QCS6490, and QCS5430 hardware SoCs.
BitBake classes
For an introduction to the BitBake classes, see classes-recipe and classes.Machine configurations
The Qualcomm Linux machine configuration files are available on GitHub. The files located in themeta-qcom/conf/machine/include directory define and set the required BitBake variables, which are commonly used by machine configurations defined by the Qualcomm BSP. The following table provides an overview of these files.
Machine configuration files for development kits based on QCS6490
Machine configuration files for development kits based on IQ-9075 and IQ-9100
Machine configuration files for development kits based on IQ-8275
Machine configuration files for development kits based on IQ-615
Machine configuration files for IQ-X5121 and IQ-X7181
Kernel command-line
Therecipes-kernel/images/esp-qcom-image.bbsets theUKI_CMDLINEvariable. This variable is passed as a –cmdline= toukifytool while generating a UKI image. Themeta-qcom/conf/machine/include/qcom-base.incsets variablesQCOM_BOOTIMG_ROOTFSandSERIAL_CONSOLESwhich are used to compose theUKI_CMDLINEvariable.
Include DTB and DTB overlay
TheKERNEL_DEVICETREE variable is used to package the required DTBs and DTB overlays into a FIT image. This variable is configured in the individual machine configuration files located in meta-qcom/conf/machine.
For example, the conf/machine/rb3gen2-core-kit.conf file sets the KERNEL_DEVICETREE variable, thereby selecting the appropriate DTB:
rb3gen2-core-kit.conf
The following code block shows how KERNEL_DEVICETREE is set.
FIT_DTB_COMPATIBLE entries in the conf/machine/include/fit-dtb-compatible.inc file.
Firmware recipes
Qualcomm Linux firmware recipe files are available on GitHub. When the Qualcomm Linux source code is synced, the firmware recipes are available in the<workspace>/meta-qcom/recipes-bsp/firmware-boot,<workspace>/meta-qcom/recipes-bsp/hexagon-dsp-binaries directories.
Boot firmware binaries
Critical boot firmware images are required to boot the device. The following firmware recipe provides the hardware SoC-specific boot firmware.
After generating the build, the firmware binaries in these zip files are available for flashing in the following directory:
<workspace>/build/tmp/deploy/images/<machine-name>/<image-name>.qcomflash/
Subsystem firmware binaries
Qualcomm Linux includes firmware binaries that are loaded and run on the corresponding subsystems. As the Qualcomm hardware SoC boots up, individual subsystems run the firmware as they come out of reset. Thelinux-firmware recipe provides upstream firmware packages and installs them in the /usr/lib/firmwaredirectory.
The
linux-firmware_%.bb recipe does the following:
- Fetches the subsystem firmware binaries.
- Unpacks the tar file.
- Installs the firmware in
/usr/lib/firmware/.
DSP libraries
User space utilities refer to the digital signal processor (DSP) libraries, which must be available in therootfsimage. The following firmware recipes provide the hardware SoC-specific DSP libraries:
The
hexagon-dsp-binaries_%.bb recipe does the following:
- Fetches the DSP libraries from the GitHub repository.
- Unpacks the zip file.
- Installs the DSP libraries in
rootfs.
Installation of boot, subsystem, and dspso
When Qualcomm Linux is built, the build system uses the firmware recipes to deploy the firmware based on theMACHINE_ESSENTIAL_EXTRA_RRECOMMENDS configuration variable, which is set in the machine configuration file. For example, in conf/machine/iq-9075-evk.conf, see the inclusion of packagegroup-iq-9075-evk-firmware in the MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS variable:
packagegroup-iq-9075-evk recipe present in the <workspace>/meta-qcom/recipes-bsp/packagegroups/ directory. It groups the firmware recipes to generate the image.
When Qualcomm Linux is built, based on the configuration in the machine configuration and the package group recipe file, the respective firmware recipes from the <workspace>meta-qcom/recipes-bsp/firmware directory are built.
Kernel recipes
The Linux kernel recipes used by Qualcomm Linux are in<workspace>/meta-qcom/recipes-kernel/linux. Qualcomm Linux supports the long-term support (LTS) Qualcomm Linux kernel v6.18.x.
In the meta-qcom layer, there are two kernel recipes:
linux-qcom_6.18.bblinux-qcom-rt_6.18.bb
Licenses
The licenses for recipes inmeta-qcom are listed at <workspace>/meta-qcom/licenses.
You can find the SPDX output in the following directories:
- Inherit the
create-spdxclass inlocal.confas follows:- After you inherit the class, rebuild the image with the BitBake command:
- For each recipe, the generated files are available in the
tmp/deploy/spdx/<machine>directory.- The top-level SPDX output file is in the
tmp/deploy/images/<machine>/directory.
Next steps
- To add a custom machine configuration, see Add custom machine configurations.
- For kernel development and device tree customization, see the Qualcomm Linux Kernel Guide.
- To handle out-of-tree kernel modules and device tree using recipes, see Handle out-of-tree kernel modules and device tree using recipes.

