> ## 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.

# 使用 Repo Manifest 进行 Yocto 构建

本节介绍如何使用 [repo](https://source.android.com/docs/setup/reference/repo) 工具同步和构建 meta-qcom 发布快照。尽管 Qualcomm 推荐使用 `kas` 工具作为构建和使用 meta‑qcom 的首选方法，但此工作流程仍为已熟悉该方法并需要继续支持或维护现有设置的老用户保留。

在本指南中，您将

* 安装此工作流程所需的额外软件包
* 使用 `repo` 工具同步构建所需的 meta 层
* 使用辅助脚本将 kas 配置文件转换为 BitBake 配置文件并设置环境
* 使用原生 BitBake 命令执行 Yocto 构建

## 主机设置

* 除默认软件包外，还需要安装以下软件包才能执行基于 manifest 的构建。

  ```bash theme={null}
  sudo apt install repo python3-yaml
  ```

## 配置参数

下表描述了当前版本的构建标签。这些值需要替换到构建命令中。

| 发布标签                  | 标识符     |
| --------------------- | ------- |
| meta-qcom-release-tag | qli-2.0 |

## 构建说明

* 使用 `repo` 下载 Qualcomm Yocto 及配套层。有关最新的 `<meta-qcom-release-tag>`，请参阅[配置参数](#configuration-parameters)。
  ```bash theme={null}
  repo init -u https://github.com/qualcomm-linux/qcom-manifest -b qcom-linux-wrynose -m <meta-qcom-release-tag>.xml
  repo sync
  ```

- 使用辅助脚本设置 Yocto 构建环境。该脚本需要将 kas 配置文件作为参数传入，
  并将这些 kas 配置文件转换为 BitBake 所需的 `auto.conf` 和 `bblayers.conf`
  配置

  <CodeGroup>
    ```bash IQ-9075-EVK theme={null}
    source setup-environment --machine meta-qcom/ci/iq-9075-evk.yml --distro meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-8275-EVK theme={null}
    source setup-environment --machine meta-qcom/ci/iq-8275-evk.yml --distro meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-615-EVK theme={null}
    source setup-environment --machine meta-qcom/ci/iq-615-evk.yml --distro meta-qcom/ci/qcom-distro.yml
    ```

    ```bash QCS6490 theme={null}
    source setup-environment --machine meta-qcom/ci/rb3gen2-core-kit.yml --distro meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-X7181-EVK theme={null}
    source setup-environment --machine meta-qcom/ci/iq-x7181-evk.yml --distro meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-X5121-EVK theme={null}
    source setup-environment --machine meta-qcom/ci/iq-x5121-evk.yml --distro meta-qcom/ci/qcom-distro.yml
    ```
  </CodeGroup>

- 调用 BitBake 构建镜像
  ```bash theme={null}
  bitbake qcom-multimedia-proprietary-image
  ```

* 构建会生成一个 tarball，其中包含执行一次完整全新刷写所需的所有相关文件，包括分区元数据、启动固件、ESP 分区和 rootfs。构建成功后，请检查构建产物中是否存在 qcomflash tarball。以下示例使用 `qcom-multimedia-proprietary-image` 作为镜像名称。

  <CodeGroup>
    ```bash IQ-9075-EVK theme={null}
    ls build/tmp/deploy/images/iq-9075-evk/qcom-multimedia-proprietary-image-iq-9075-evk.rootfs.qcomflash.tar.gz
    ```

    ```bash IQ-8275-EVK theme={null}
    ls build/tmp/deploy/images/iq-8275-evk/qcom-multimedia-proprietary-image-iq-8275-evk.rootfs.qcomflash.tar.gz
    ```

    ```bash IQ-615-EVK theme={null}
    ls build/tmp/deploy/images/iq-615-evk/qcom-multimedia-proprietary-image-iq-615-evk.rootfs.qcomflash.tar.gz
    ```

    ```bash QCS6490 theme={null}
    ls build/tmp/deploy/images/rb3gen2-core-kit/qcom-multimedia-proprietary-image-rb3gen2-core-kit.rootfs.qcomflash.tar.gz
    ```

    ```bash IQ-X7181-EVK theme={null}
    ls build/tmp/deploy/images/iq-x7181-evk/qcom-multimedia-proprietary-image-iq-x7181-evk.rootfs.qcomflash.tar.gz
    ```

    ```bash IQ-X5121-EVK theme={null}
    ls build/tmp/deploy/images/iq-x5121-evk/qcom-multimedia-proprietary-image-iq-x5121-evk.rootfs.qcomflash.tar.gz
    ```
  </CodeGroup>
