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

# 在容器化环境中构建

[Yocto 构建指南](./build-qualcomm-linux)介绍了如何直接在主机上构建稳定且经过验证的 `meta-qcom` 版本。本指南介绍如何使用 `kas-container` 在 Docker 容器中运行相同的构建，这样就无需在主机上安装 Yocto 构建依赖项，并可确保获得一致、可重现的构建环境。

## 前提条件

* `kas-container` 要求主机上已安装并运行 Docker。请按照官方 Docker 文档进行设置
  * [安装 Docker Engine](https://docs.docker.com/engine/install/)
  * [Linux 安装后步骤](https://docs.docker.com/engine/install/linux-postinstall/) — 将您的用户添加到 `docker` 组，以便无需 `sudo` 即可运行 Docker

* `kas-container` 是随 `kas` 一起提供的包装脚本。当您使用 `pipx` 安装 `kas` 时（如 Yocto 构建指南的[主机设置](./build-qualcomm-linux#host-setup)部分所述），`kas-container` 会自动安装到同一环境中，并可在您的 `PATH` 中使用。确认系统上 `kas-container` 是否可用
  ```bash theme={null}
  kas-container --version
  ```

## 配置参数

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

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

## 构建说明

* 下载 Qualcomm 的 Yocto 层 `meta-qcom`。有关最新的 `<meta-qcom-release-tag>`，请参阅[配置参数](#configuration-parameters)。

  ```bash theme={null}
  git clone https://github.com/qualcomm-linux/meta-qcom -b <meta-qcom-release-tag>
  ```

- 使用 `kas-container` 构建软件镜像。您可以基于机器和发行版组合定义构建目标。

  <CodeGroup>
    ```bash IQ-9075-EVK theme={null}
    kas-container build meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-8275-EVK theme={null}
    kas-container build meta-qcom/ci/iq-8275-evk.yml:meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-615-EVK theme={null}
    kas-container build meta-qcom/ci/iq-615-evk.yml:meta-qcom/ci/qcom-distro.yml
    ```

    ```bash QCS6490 theme={null}
    kas-container build meta-qcom/ci/rb3gen2-core-kit.yml:meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-X7181-EVK theme={null}
    kas-container build meta-qcom/ci/iq-x7181-evk.yml:meta-qcom/ci/qcom-distro.yml
    ```

    ```bash IQ-X5121-EVK theme={null}
    kas-container build meta-qcom/ci/iq-x5121-evk.yml:meta-qcom/ci/qcom-distro.yml
    ```
  </CodeGroup>

* 构建会生成一个 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>
