# Evaluate overlays using supported workflows Use one of the following workflows to evaluate overlays: - [Flash the image and install packages from the package server corresponding to a release snapshot](https://docs.qualcomm.com/doc/80-80020-150/topic/overlay_workflows.html#flash-img-instl-pkg) - [Build locally, flash images, and use packages from the local build](https://docs.qualcomm.com/doc/80-80020-150/topic/overlay_workflows.html#bld-loc-flash-img) - [Define the BitBake image recipe for Config #3 and Config #4, and flash the generated image with the overlays included](https://docs.qualcomm.com/doc/80-80020-150/topic/overlay_workflows.html#section-define-image-recipe-config3and4) ## Flash the image and install packages corresponding to a release snapshot Use this workflow to use the image and packages built from the Qualcomm Linux 2.0 RC1 release. The images and packages corresponding to the Qualcomm Linux release milestone are posted on [CodeLinaro](https://artifacts.codelinaro.org/artifactory/qli-yocto-rpm/). The [package server](https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm) hosts all the packages generated from the Qualcomm Linux 2.0 RC1 Config #2 build, that is, `qcom-multimedia-proprietary-image`. These packages are generated from the `qli-2.0-rc1` release snapshot of the Qualcomm Linux 2.0 RC1 release. The scope of this package server is to provide an image snapshot corresponding to Config #1, that is `qcom-multimedia-image`, and the corresponding packages generated from Config #2 (`qcom-multimedia-proprietary-image`). To flash the image and install packages from the release snapshot’s package server, do the following: 1. Download and flash the `qcom-multimedia-image` [upstream image](https://artifacts.codelinaro.org/artifactory/qli-ci/flashable-binaries/meta-qcom/). 2. To install the packages corresponding to the overlays, do the following: 1. Add the following package feed URL available as part of Qualcomm Linux 2.0 RC1 release: [https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm](https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm) 2. Install package on the device using package manager. 3. To manage the configurations, update `/etc/modprobe.d/blacklist.conf` for driver selection. 4. Set EFI variables for driver selection for camera and display. - If required, set the EFI variable for the DTB overlay indication to UEFI. Install packages Never reflashed foroverlay installations Update /etc/modprobe.d/blacklist Upstream community solutions QLI videooverlay QLI graphicsoverlay iris V4L2/GStreamer utils Mesa-Freeadreno libcamera FIT: {multi-dtb, camx.dtb} Kernel: qcom-next EFI variable Installable package: Userspace lib or bin UEFI QLI cameraoverlay KGSL Adreno CamX CamX driver 1 2 3 Installable package: Driver module **Figure: Qualcomm Linux overlay workflow** ### Install packages from the Qualcomm Linux reference package server You can install packages using overlays without software builds. A test server is set up on [CodeLinaro](https://artifacts.codelinaro.org/artifactory/qli-yocto-rpm/) with all the images and RPM packages. To flash images and install RPMs for overlays, do the following: 1. To flash `qcom-multimedia-image` for `RB3Gen2 Core Kit`, do the following: 1. Download `qcom-multimedia-image-rb3gen2-core-kit.rootfs.qcomflash.tar.gz` from the artifactory server. 2. Unpack `qcom-multimedia-image-rb3gen2-core-kit.rootfs.qcomflash.tar.gz`. 3. Flash it using the Qualcomm Device Loader (QDL) tool or Product Configuration Assistant Tool (PCAT). 2. To configure the `yum.repos.d` repository on the device, append the following lines to the configuration file: Note Create the `yum.repos.d` repository if it doesn’t already exist. Also, to configure the `yum.repos.d` repository, ensure that the `/etc/yum.repos.d/overlay.repo` file exists. If it doesn’t exist, create it in `/etc/yum.repos.d/`. [overlay-noarch] name = Qualcomm Overlay Repository (noarch) baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm/noarch/ enabled = 1 gpgcheck = 0 [overlay-armv8_2a] name = Qualcomm Overlay Repository (armv8_2a) baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm/armv8_2a/ enabled = 1 gpgcheck = 0 [overlay-] name = Qualcomm Overlay Repository () baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm// enabled = 1 gpgcheck = 0 Copy to clipboard The third block, `[overlay-]`, determines which feed the DNF uses for your hardware or build target. For example: Tab QCS6490 Tab IQ-9075 Tab IQ-8275 [overlay-rb3gen2] name = Qualcomm Overlay Repository rb3gen2 baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm/rb3gen2_core_kit/ enabled = 1 gpgcheck = 0 Copy to clipboard [overlay-iq_9075_evk] name = Qualcomm Overlay Repository IQ-9075 EVK baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm/iq_9075_evk/ enabled = 1 gpgcheck = 0 Copy to clipboard [overlay-iq_8275_evk] name = Qualcomm Overlay Repository IQ-8275 EVK baseurl = https://artifacts.codelinaro.org/qli-yocto-rpm/qli-2.0-rc1/rpm/iq_8275_evk/ enabled = 1 gpgcheck = 0 Copy to clipboard Ensure that you append the appropriate target-specific line so that DNF fetches packages from the right directory. 3. To refresh the package index using your custom configuration file, run the following command: dnf update Copy to clipboard In this step, DNF does the following: 1. Downloads the repository metadata (for example, `repomd.xml` and related files) 2. Retrieves the associated metadata signatures 3. Accepts and uses the repository metadata only if the verification is successful ### Run DNF installation commands to derive Config #3 and Config #4 The following table lists the `dnf install` commands to install overlay packages and configuration file changes you must make on the device to derive Config #3 and Config #4: Note As Config #1 and Config #2 are images, commands are required to install overlays only for Config #3 and Config #4. | **Config** | **Overlay** | **Instructions** | | --- | --- | --- | | **Config #3** | **Audio** | To install packages for the audio overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install tinycompress -y
    dnf install audioreach-audio-utils -y
    dnf install audioreach-conf -y
    dnf install audioreach-graphservices -y
    dnf install audioreach-graphmgr -y
    dnf install audioreach-pal -y
    dnf install audioreach-pipewire-plugin -y
    dnf install audioreach-kernel -y
    dnf install kernel-module-audioreach-driver -y
    Copy to clipboard



  2. Create a file named asoc-blacklist.conf in /etc/modprobe.d/.


    vi etc/modprobe.d/asoc-blacklist.conf
    Copy to clipboard



  3. Add the following blacklist entries in the file:


    blacklist q6apm_dai
    blacklist q6apm_lpass_dais
    blacklist q6prm
    blacklist q6prm_clocks
    blacklist snd-soc-sc8280xp
    blacklist snd_q6apm
    blacklist snd_q6dsp_common
    Copy to clipboard



  4. Restart the device to apply changes.


| | **Config #3** | **Camera** | To install packages for the camera overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install camx-dlkm  -y
    dnf install camx-nhx -y
    Copy to clipboard



  2. To select the DTB overlay, run the following command:


    echo -n "camx" > /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
    Copy to clipboard



  3. Restart the device to apply changes.


| | **Config #3** | **Video** | To install packages for the video overlay, do the following:


Note


The video overlay functionality is applicable to the QCS6490 development kit, and the IQ-9075 and IQ-8275 EVKs only.

  1. Use DNF to install the following RPM packages:


    dnf install  kernel-module-iris-vpu –y
    Copy to clipboard



  2. Create a file named video-blacklist.conf in /etc/modprobe.d/.


    vi etc/modprobe.d/video-blacklist.conf
    Copy to clipboard



  3. Add the following entries to blacklist the video-related modules:




    Tab QCS6490
    Tab IQ-9075
    Tab IQ-8275
    blacklist venus_dec
    blacklist venus_enc
    blacklist venus_core
    Copy to clipboard


    blacklist qcom_iris
    Copy to clipboard


    blacklist qcom_iris
    Copy to clipboard





  4. Restart the device to apply changes.


| | **Config #4** | **Graphics** | To install packages for the graphics overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install kgsl-dlkm -y
    dnf install qcom-adreno -y
    Copy to clipboard


    The /etc/modprobe.d/qcom-adreno.conf file is automatically populated with the following content when the downstream graphics driver is installed:


    install msm /bin/sh -c "( modprobe --ignore msm skip_gpu=1 && modprobe msm_kgsl ) || modprobe --ignore-install msm"
    Copy to clipboard



  2. Restart the device to apply changes.


| | **Config #4** | **Camera** | To install packages for the camera overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install camx-dlkm  -y
    dnf install camx-nhx -y
    Copy to clipboard



  2. To select the DTB overlay, run the following command:


    echo -n "camx" > /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
    Copy to clipboard



  3. Restart the device to apply changes.


| | | | | | | | | Note The package server is based on the Qualcomm Linux 2.0 RC1 release snapshot to demonstrate overlays. It’s not intended to meet the needs of a production-class packaging server. When Qualcomm Linux 2.0 RC2 is released, a new feed (package server URL) will provide packages generated from the Qualcomm Linux 2.0 RC2 release. However, package-based upgrades from Qualcomm Linux 2.0 RC1 to Qualcomm Linux 2.0 RC2 are not guaranteed to work. ## Build locally, flash images, and use packages from the local build Note For instructions on how to build from source, see [Qualcomm Linux Build Guide](https://docs.qualcomm.com/doc/80-80020-254/topic/build_from_source_github_intro.html#sync). Use this workflow to build images and packages by cloning `meta-qcom`. You can also use this workflow if you want to integrate your changes. The images and packages corresponding to a Qualcomm Linux release are built locally. You can flash images and install packages from the local workspace. ### Set up a local workspace To set up a local workspace, do the following: 1. To clone `meta-qcom`, run the following command: git clone https://github.com/qualcomm-linux/meta-qcom.git Copy to clipboard 2. To build the image for Config #1 `qcom-multimedia-image`, run the following command: Tab QCS6490 Tab IQ-9075 Tab IQ-8275 Tab IQ-615 kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-image Copy to clipboard kas shell meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-image Copy to clipboard kas shell meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-image Copy to clipboard kas shell meta-qcom/ci/iq-615-evk.yml:meta-qcom/ci/qcom-distro.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-image Copy to clipboard 3. To build the image for Config #2 `qcom-multimedia-proprietary-image` and all packages, run the following command: Tab QCS6490 Tab IQ-9075 Tab IQ-8275 Tab IQ-615 kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-proprietary-image Copy to clipboard kas shell meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-proprietary-image Copy to clipboard kas shell meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-proprietary-image Copy to clipboard kas shell meta-qcom/ci/iq-615-evk.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml bitbake qcom-multimedia-proprietary-image Copy to clipboard Note `qcom-distro-prop-image.yml` sets DISTRO to `qcom-distro`. `qcom-distro` enables package management using DNF and allows RPMs to be installed. Other DISTRO configurations available in `meta-qcom-distro` enable `SOTA` using OSTree, and disable package management. ### Install packages and configure the RPM repository 1. Flash `qcom-multimedia-image` using QDL. 2. Host all the packages from the `rpm` directory of `qcom-multimedia-proprietary-image`. The `rpm` directory is located at `build/tmp/deploy/rpm`. 3. To configure the RPM repository on the device, append the following lines to the configuration file: Note Create the `yum.repos.d` repository if it doesn’t already exist. Also, to configure the RPM repository feeds, ensure that the `/etc/yum.repos.d/overlay.repo` file exists. If it doesn’t exist, create it in `/etc/yum.repos.d/`. [overlay-noarch] name = Qualcomm Overlay Repository (noarch) baseurl = https:///rpm/noarch/ enabled = 1 gpgcheck = 0 [overlay-armv8_2a] name = Qualcomm Overlay Repository (armv8_2a) baseurl = https:///rpm/armv8_2a/ enabled = 1 gpgcheck = 0 [overlay-] name = Qualcomm Overlay Repository () baseurl = https:///rpm// enabled = 1 gpgcheck = 0 Copy to clipboard Note The `baseurl` must point to the `armv8_2a/` directory when building for QCS6490, IQ-9075, IQ-8275, and IQ-615. If you are using `qcom-armv8a.yml` to build with KAS or setting `qcom-armv8a` as the `MACHINE` value, change the directory name to `armv8a/`. The third block, `[overlay-]`, determines which feed the DNF uses for your hardware or build target. For example: Tab QCS6490 Tab IQ-9075 Tab IQ-8275 [overlay-rb3gen2] name = Qualcomm Overlay Repository rb3gen2 baseurl = https:///rpm/rpm/rb3gen2_core_kit/ enabled = 1 gpgcheck = 0 Copy to clipboard [overlay-iq_9075_evk] name = Qualcomm Overlay Repository iq_9075_evk baseurl = https:///rpm/iq_9075_evk/ enabled = 1 gpgcheck = 0 Copy to clipboard [overlay-iq_8275_evk] name = Qualcomm Overlay Repository iq_8275_evk baseurl = https:///rpm/iq_8275_evk/ enabled = 1 gpgcheck = 0 Copy to clipboard Ensure that you append the appropriate target-specific line so that DNF fetches packages from the right directory. 4. To refresh the package index using your custom configuration file, run the following command: dnf update Copy to clipboard In this step, DNF does the following: 1. Downloads the repository metadata (for example, `repomd.xml` and related files) 2. Retrieves the associated metadata signatures 3. Accepts and uses the repository metadata only if the verification is successful ### Run DNF installation commands to derive Config #3 and Config #4 The following table lists the `dnf install` commands to install overlay packages and configuration file changes you must make on the device to derive Config #3 and Config #4: Note As Config #1 and Config #2 are images, commands are required to install overlays only for Config #3 and Config #4. | **Config** | **Overlay** | **Instructions** | | --- | --- | --- | | **Config #3** | **Audio** | To install packages for the audio overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install tinycompress -y
    dnf install audioreach-audio-utils -y
    dnf install audioreach-conf -y
    dnf install audioreach-graphservices -y
    dnf install audioreach-graphmgr -y
    dnf install audioreach-pal -y
    dnf install audioreach-pipewire-plugin -y
    dnf install audioreach-kernel -y
    dnf install kernel-module-audioreach-driver -y
    Copy to clipboard



  2. Create a file named asoc-blacklist.conf in /etc/modprobe.d/.


    vi etc/modprobe.d/asoc-blacklist.conf
    Copy to clipboard



  3. Add the following blacklist entries in the file:


    blacklist q6apm_dai
    blacklist q6apm_lpass_dais
    blacklist q6prm
    blacklist q6prm_clocks
    blacklist snd-soc-sc8280xp
    blacklist snd_q6apm
    blacklist snd_q6dsp_common
    Copy to clipboard



  4. Restart the device to apply changes.


| | **Config #3** | **Camera** | To install packages for the camera overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install camx-dlkm  -y
    dnf install camx-nhx -y
    Copy to clipboard



  2. To select the DTB overlay, run the following command:


    echo -n "camx" > /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
    Copy to clipboard



  3. Restart the device to apply changes.


| | **Config #3** | **Video** | To install packages for the video overlay, do the following:



>
>
> Note
>
>
> The video overlay functionality is applicable to the QCS6490 development kit, and the IQ-9075 and IQ-8275 EVKs only.


  1. Use DNF to install the following RPM packages:


    dnf install  kernel-module-iris-vpu –y
    Copy to clipboard



  2. Create a file named video-blacklist.conf in /etc/modprobe.d/.


    vi etc/modprobe.d/video-blacklist.conf
    Copy to clipboard



  3. Add the following entries to blacklist the video-related modules:




    Tab QCS6490
    Tab IQ-9075
    Tab IQ-8275
    blacklist venus_dec
    blacklist venus_enc
    blacklist venus_core
    Copy to clipboard


    blacklist qcom_iris
    Copy to clipboard


    blacklist qcom_iris
    Copy to clipboard





| | **Config #4** | **Graphics** | To install packages for the graphics overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install kgsl-dlkm -y
    dnf install qcom-adreno -y
    Copy to clipboard


    The /etc/modprobe.d/qcom-adreno.conf file is automatically populated with the following content when the downstream graphics driver is installed:


    install msm /bin/sh -c "( modprobe --ignore msm skip_gpu=1 && modprobe msm_kgsl ) || modprobe --ignore-install msm"
    Copy to clipboard



  2. Restart the device to apply changes.


| | **Config #4** | **Camera** | To install packages for the camera overlay, do the following:

  1. Use DNF to install the following RPM packages:


    dnf install camx-dlkm  -y
    dnf install camx-nhx -y
    Copy to clipboard



  2. To select the DTB overlay, run the following command:


    echo -n "camx" > /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -w -f /tmp/overlay
    efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
    Copy to clipboard



  3. Restart the device to apply changes.


| | | | | | | | | ## Define the image recipe for Config #3 and Config #4 Note For instructions on how to build from source, see [Qualcomm Linux Build Guide](https://docs.qualcomm.com/doc/80-80020-254/topic/build_from_source_github_intro.html#sync). Use this workflow to define the BitBake image recipe for Config #3 and Config #4, and flash the generated image with the overlays included. To define and build images, do the following: 1. To clone `meta-qcom`, run the following command: git clone https://github.com/qualcomm-linux/meta-qcom.git cd meta-qcom Copy to clipboard 2. To clone all layers including `meta-qcom-distro` locally, run the following command: kas shell meta-qcom/ci/qcs6490-rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml Copy to clipboard ### Define the image for Config #3 1. To define the image in `meta-qcom-distro` for Config #3, run the following command: vim meta-qcom-distro/recipes-products/images/qcom-config3-image.bb Copy to clipboard 2. To add contents to the new image recipe, run the following command: require qcom-multimedia-image.bb SUMMARY = "An image built on top of multimedia image for proprietary features" # This image is compatible only with aarch64 (ARMv8) COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:aarch64 = "(.*)" CORE_IMAGE_BASE_INSTALL += " \ camx-dlkm \ camx-kodiak \ camx-lemans \ camx-talos \ camx-nhx \ iris-video-dlkm \ libdiag-bin \ qcom-sensors-binaries \ " CORE_IMAGE_BASE_INSTALL:append = " \ ${@bb.utils.contains('BBFILE_COLLECTIONS', 'meta-audioreach', ' packagegroup-audioreach', '', d)} \ " Copy to clipboard Note If your target device is a QCS615-based EVK, exclude `iris-video-dlkm` from `qcom-config3-image`. `iris-video-dlkm` doesn’t support the video functionality for QCS615-based EVKs. The QCS615-based EVKs are supported by the upstream video driver. 3. To build a new image recipe, run the following command: bitbake qcom-config3-image Copy to clipboard 4. After the build completes, use the QDL tool to flash images. ### Define the image for Config #4 1. To define the image in `meta-qcom-distro` for Config #4, run the following command: vim meta-qcom-distro/recipes-products/images/qcom-config4-image.bb Copy to clipboard 2. To add contents to the new image recipe, run the following command: require qcom-multimedia-image.bb SUMMARY = "An image built on top of multimedia image for proprietary features" # This image is compatible only with aarch64 (ARMv8) COMPATIBLE_MACHINE = "^$" COMPATIBLE_MACHINE:aarch64 = "(.*)" CORE_IMAGE_BASE_INSTALL += " \ camx-dlkm \ camx-kodiak \ camx-lemans \ camx-talos \ camx-nhx \ kgsl-dlkm \ libdiag-bin \ qcom-adreno \ qcom-sensors-binaries" Copy to clipboard 3. To build a new image recipe, run the following command: bitbake qcom-config4-image Copy to clipboard 4. After the build completes, use the QDL tool to flash images. Last Published: Mar 03, 2026 [Previous Topic Use overlay configurations to derive image recipes](https://docs.qualcomm.com/bundle/publicresource/80-80020-150/topics/overlay_configurations.md) [Next Topic References](https://docs.qualcomm.com/bundle/publicresource/80-80020-150/topics/references.md) Source: [https://docs.qualcomm.com/doc/80-80020-150/topic/overlay_workflows.html](https://docs.qualcomm.com/doc/80-80020-150/topic/overlay_workflows.html)