> ## 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 的 Yocto 概念

本节介绍在使用 Qualcomm Linux Yocto 构建之前需要建立的思维模型。理解这些概念可以减少在浏览层、机器、发行版和镜像时的困惑。

## **Yocto 架构概述**

Yocto Project 提供了工具、软件、配置和最佳实践，用于为嵌入式和 IoT 设备或任何需要定制 Linux 操作系统的场景创建定制的 Linux 镜像。

Yocto Project 的核心组件包括：

* **Poky** — 参考发行版和构建系统，结合了 OpenEmbedded-Core、BitBake 和配置文件。
* **OE-Core**（`openembedded-core`）— 构成任何基于 Yocto 构建的基础的最小配方和类集合。
* **BitBake** — 任务执行引擎，读取配方并构建软件包和镜像。

有关 Yocto 的入门介绍，请参阅 Yocto Project<sup>®</sup> 创建的以下页面：

* [The Yocto Project](https://www.yoctoproject.org/)
* [Yocto Project 文档](https://docs.yoctoproject.org/dev/)
* [Yocto 上游参考](https://git.yoctoproject.org/yocto-docs)（wrynose 分支）

## **Qualcomm Linux Yocto 堆栈**

Qualcomm Linux 环境由多个相互堆叠的社区维护元数据层组成。Qualcomm 维护的层位于社区层之上，为 Qualcomm 开发套件提供所需的额外软件组件。

| **层类型**     | **示例**                                                                                      |
| ----------- | ------------------------------------------------------------------------------------------- |
| Qualcomm 维护 | `meta-qcom`、`meta-qcom-distro`、`meta-qcom-extras`                                           |
| 社区（上游）      | `openembedded-core`、`meta-openembedded`、`meta-virtualization`、`meta-selinux`、`meta-updater` |

有关各层的完整说明，请参阅 [Qualcomm Linux 元数据层](./qualcomm-linux-metadata-layers)。

## **关键概念**

### **层（Layers）**

层是配方、配置文件和类的集合，用于扩展或覆盖构建系统。层是堆叠的，较高的层具有更高的优先级。Qualcomm 使用 `kas` 工具来管理构建中包含哪些层。

### **配方（Recipes）**

配方（`.bb` 文件）描述如何获取、配置、编译和安装单个软件组件。BitBake 处理配方以生成软件包和镜像。

### **机器（Machines）**

机器配置（`.conf` 文件）描述目标硬件：SoC 系列、内核、引导加载程序和设备树。选择机器会告知 BitBake 应用哪些硬件特定的设置。

### **发行版（DISTRO）**

发行版配置定义镜像的软件策略：使用哪个 init 系统、启用哪些功能（例如 SELinux、KVM、SOTA），以及使用哪个包管理器。Qualcomm 在 `meta-qcom-distro` 中提供了多个参考发行版。

### **镜像（Images）**

镜像配方（`.bb` 文件）定义安装到根文件系统中的完整软件包集合。Qualcomm 提供从最小控制台镜像到完整多媒体和专有镜像的多种参考镜像。

### **BSP 层、发行版层与产品层的区别**

| **层角色**     | **用途**                               | **Qualcomm 示例**    |
| ----------- | ------------------------------------ | ------------------ |
| BSP 层       | 硬件使能：机器配置、固件、内核配方                    | `meta-qcom`        |
| 发行版层        | 软件策略：发行版、镜像配方、包组                     | `meta-qcom-distro` |
| 可选/extras 层 | 面向拥有 Qualcomm ID 并通过公司访问验证的用户的源码编译组件 | `meta-qcom-extras` |

## **指南章节**

| **章节**                                                                   | **说明**                             |
| ------------------------------------------------------------------------ | ---------------------------------- |
| [Qualcomm Linux 元数据层](./qualcomm-linux-metadata-layers)                  | 理解层的权威参考                           |
| [meta-qcom](./meta-qcom)                                                 | 机器配置、固件和内核配方                       |
| [meta-qcom-distro](./meta-qcom-distro)                                   | 发行版配置、镜像配方和包组                      |
| [meta-qcom-extras](./meta-qcom-extras)                                   | 适用于拥有 Qualcomm ID 并通过公司访问验证的用户的可选层 |
| [使用 Yocto 构建 Qualcomm Linux](./build-qualcomm-linux)                     | Yocto 特定的构建流程                      |
| [配置 Qualcomm Linux 软件组件](./configure-qualcomm-linux-software-components) | 关键软件组件和功能                          |
| [定制 Qualcomm Linux](./customize-qualcomm-linux)                          | 常见的实际扩展模式                          |
| [调试](./debug)                                                            | 解决构建时的问题                           |
