# `meta-qcom-distro`

This layer provides a reference distribution configuration for Qualcomm
Linux. This layer defines the image recipes and package groups.

## BitBake classes

Qualcomm Linux supports both SSH and UART serial shell for device access.
You can choose either SSH or UART to access the device. You can also use
ADB to debug issues when IP interfaces are down or to transfer large files.

The following table provides an introduction to the BitBake classes,
which are available at [Classes](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/classes).

| BitBake class | Description |
| --- | --- |
| `image-adbd.bbclass` | The `image-adbd.bbclass` class in `meta-qcom-distro` installs adbd<br>in the image. The adbd daemon remains disabled unless<br>`IMAGE_FEATURES` contains the `enable-adbd` feature.<br>You can disable adbd by manually removing `/etc/usb-debugging-enabled`<br>from `rootfs`. |
| `image-qcom-deploy.bbclass` | Deploys the image files available in<br>`<workspace>/build-<distro>/tmp-glibc/deploy/images/<machine>/<image-name>`.<br>The generated images are deployed in the `<image-name>` subdirectory. |

## Distribution configuration

The following table provides an introduction to the distribution configurations,
which are available on
[GitHub](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/conf/distro).

| Distribution configuration | Description |
| --- | --- |
| `conf/distro/qcom-wayland.conf` | This distribution configuration file defines the `qcom-wayland` distribution.<br>You can use the `qcom-wayland` distribution in the following example command:<br><br><br><br>> <br>> <br>> MACHINE=qcs6490-rb3gen2-core-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=base source setup-environment<br>>     Copy to clipboard<br><br><br><br>The `meta-qcom-distro/conf/distro/include/qcom-base.inc` configuration<br>defines common DISTRO\_FEATURES. The `meta-qcom-distro/conf/distro/qcom-wayland.conf` configuration<br>adds the following features:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">wayland</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">vulkan</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">opengl</span></code></p></li><br>> </ul><br><br><br><br>The Yocto Project documentation defines these distribution features at<br>[Distribution features](https://docs.yoctoproject.org/5.0.11/singleindex.html#distro-features). |
| `conf/distro/include/qcom-base.inc` | INIT\_MANAGER is set to `systemd`.<br>For Yocto Project documentation on INIT\_MANAGER,<br>see [INIT_MANAGER](https://docs.yoctoproject.org/5.0.11/singleindex.html#term-INIT_MANAGER).<br>Other DISTRO\_FEATURES enabled are:<br><br><br>DISTRO_FEATURES:append = ” pam overlayfs acl xattr selinux ptest security virtualization tpm usrmerge sota”<br>    Copy to clipboard<br><br><br>To understand the purpose of these DISTRO\_FEATURES, see<br>[Distribution features](https://docs.yoctoproject.org/5.0.11/singleindex.html#distro-features).<br><br><br>This file selects `systemd` as INIT\_MANAGER and `udev` as the DEV\_MANAGER. |
| `conf/distro/include/qcom-security_flags.inc` | This file includes the security flags as defined in<br>[security flags](https://git.yoctoproject.org/poky/tree/meta/conf/distro/include/security_flags.inc?h=scarthgap). |

## Package groups

Package groups are defined in `meta-qcom-hwe` and `meta-qcom-distro`.
These package groups help you understand the features
defined by the Qualcomm BSP. The following table provides an introduction to the package groups:

| Package group | Description |
| --- | --- |
| `packagegroup-qcom.bb` | Package group that contains all the basic packages. |
| `packagegroup-qcom-multimedia.bb` | Package group that contains packages to enable multimedia support:<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-container</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-audio</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-camera</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-display</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-fastcv</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-graphics</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-k8s</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-opencv</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-video</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">python3-docker-compose</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-iot-base-utils</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-location</span></code></p></li><br>> </ul><br><br><br><br>The `packagegroup-qcom-location` is defined in `meta-qcom-extras` metadata layer. |
| `packagegroup-qcom-test-pkgs.bb` | Package group that contains test packages. |

## Image recipes

The `meta-qcom-distro` Qualcomm Linux metadata layer defines image
recipes, which are available on
[GitHub](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/recipes-products/images).
The following table lists various images, their `IMAGE_FEATURES`, and
the functions that the images serve:

| Image recipe | Description of the image |
| --- | --- |
| `qcom-minimal-image.bb` | Defines a small `rootfs` to boot to the shell.<br><br><br>The `IMAGE_FEATURES` enabled are as follows:<br><br><br>IMAGE_FEATURES += "splash tools-debug allow-root-login post-install-logging enable-adbd"<br>    Copy to clipboard<br><br><br>For more information about `IMAGE_FEATURES`, see<br>[Image features](https://docs.yoctoproject.org/5.0.11/singleindex.html#image-features). |
| `qcom-console-image.bb` | Extends `qcom-minimal-image` by adding more packages<br>and enabling more `IMAGE_FEATURES`:<br><br><br>IMAGE_FEATURES += “package-management ssh-server-openssh”<br>    Copy to clipboard |
| `qcom-multimedia-image.bb` | Requires `DISTRO_FEATURE` wayland and it includes<br>all the multimedia packages in `rootfs`. |
| `qcom-multimedia-test-image.bb` | Includes test packages in `rootfs` to test `qcom-multimedia-image`. |
| `qcom-multimedia-crossesdk-image.bb` | Generates eSDK for `qcom-multimedia-image`. |
| `qcom-guestvm-image.bb` | A minimal kernel-based virtual machine (KVM) image with boot to shell support. |

## QDL flashing tool

QDL is a flashing tool that communicates
with the USB devices to upload flash loader to the
device. The flash loader flashes the images to universal flash storage (UFS)
or embedded multimedia card (eMMC) built into the device.
For more information about `QDL flashing`, see
[QDL](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/flash_images.html).

Last Published: Oct 17, 2025

[Previous Topic
meta-qcom-hwe](https://docs.qualcomm.com/bundle/publicresource/80-70022-27/topics/meta_qcom_hwe.md) [Next Topic
meta-qcom-realtime](https://docs.qualcomm.com/bundle/publicresource/80-70022-27/topics/meta_qcom_realtime.md)