> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Qualcomm Linux metadata layers

This section introduces the layers included in the [Qualcomm manifest](https://github.com/qualcomm-linux/meta-qcom-releases). This manifest includes all the layers required to reproduce the reference build.

## **Layer stack overview**

The following figure shows the layers included in the Qualcomm Linux release:

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/T1k4QQ7G3l_dE-rX/Key-Documents/Yocto-Guide/media/k2c-qli-yocto-build-ga/qualcomm_linux_metadata_layers.png?fit=max&auto=format&n=T1k4QQ7G3l_dE-rX&q=85&s=68be9a6ba7a0b2177dbc1abc0edb398f" alt="Figure: Qualcomm Linux metadata layers" width="1004" height="351" data-path="Key-Documents/Yocto-Guide/media/k2c-qli-yocto-build-ga/qualcomm_linux_metadata_layers.png" />

  <p className="text-sm text-gray-700">
    Figure: Qualcomm Linux metadata layers
  </p>
</div>

## **Qualcomm-maintained layers**

The following layers are maintained by Qualcomm and are specific to Qualcomm Linux development kits:

| **Metadata layer** |                                                                              **Description**                                                                             |
| :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|     `meta-qcom`    | Contains recipes that build software components for Qualcomm development kits and provides software features applicable to Qualcomm SoCs. This is the primary BSP layer. |
| `meta-qcom-distro` |                Provides a reference distribution configuration for Qualcomm development kits. Image recipes and package groups are defined in this layer.                |
| `meta-qcom-extras` |    Optional metadata layer for registered users. This layer enables source compilation of select components, which are otherwise provided as binaries in `meta-qcom`.    |

## **Community layers used**

The following community-maintained layers are used by Qualcomm Linux. For upstream references, see [https://git.yoctoproject.org/yocto-docs](https://git.yoctoproject.org/yocto-docs) (wrynose branch).

|   **Metadata layer**  |                                                                                                                                                              **Description**                                                                                                                                                             |
| :-------------------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
|  `openembedded-core`  |                                                               Provides build tools and recipe files for various software components needed for an embedded OS distribution. For more information, see [openembedded-core](https://git.openembedded.org/openembedded-core).                                                               |
|  `meta-openembedded`  |                                                                                          Collection of layers for the OpenEmbedded build system. For more information, see [meta-openembedded](https://git.openembedded.org/meta-openembedded).                                                                                          |
| `meta-virtualization` |                                                    Contains packages for constructing OpenEmbedded virtualized solutions and virtualization stacks, such as Docker and Kubernetes. For more information, see [meta-virtualization](https://git.yoctoproject.org/meta-virtualization).                                                    |
|     `meta-selinux`    | Enables SELinux support. This layer includes reference SELinux policies and provides necessary tooling. To enable SELinux for Qualcomm Linux, set the variable `DEFAULT_ENFORCING` to `enforcing` in `conf/distro/include/qcom-distro-selinux.inc`. For more information, see [meta-selinux](https://git.yoctoproject.org/meta-selinux). |
|    `meta-security`    |                                                 Provides security tools and hardening tools for Qualcomm Linux kernels and libraries for implementing security mechanisms. For more information, see [meta-security](https://git.yoctoproject.org/meta-security/tree/README.md?h=master).                                                |
|     `meta-updater`    |                                                 Enables over-the-air updates (OTA) with OSTree. OSTree is a tool for atomic full file system upgrades with rollback capability. For more information, see [meta-updater](https://github.com/uptane/meta-updater/blob/master/README.adoc).                                                |

## **When to use which layer**

| **Goal**                                                      | **Layer to modify**                                                                     |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| Add or change machine configuration                           | `meta-qcom`                                                                             |
| Change distribution features or add image recipes             | `meta-qcom-distro`                                                                      |
| Source-compile proprietary components (registered users only) | `meta-qcom-extras`                                                                      |
| Add virtualization or container support                       | `meta-virtualization`                                                                   |
| Enable SELinux                                                | `meta-selinux`                                                                          |
| Enable OTA updates                                            | `meta-updater`                                                                          |
| Add a third-party layer                                       | See [Add third-party layers to the workspace](./adding-third-party-layers-to-workspace) |

## **Next steps**

* [meta-qcom](./meta-qcom) — machine configurations, firmware recipes, kernel recipes, and BitBake classes
* [meta-qcom-distro](./meta-qcom-distro) — distribution configurations, image recipes, and package groups
* [meta-qcom-extras](./meta-qcom-extras) — optional layer for registered users
* [Build Qualcomm Linux Using Yocto](./build-qualcomm-linux)
