# 使用 GitHub 编译（注册用户）

以下部分介绍如何使用 GitHub 上提供的预编译专有二进制文件/镜像创建编译。

## 主机要求

| 配置 | 工具 | 权限 |
| --- | --- | --- |
| x86 计算机 | Git 1.8.3.1 或更高版本 | 运行一些命令需要 `sudo` 权限 |
| 至少四核 CPU，例如 Intel i7-2600 @ 3.4 GHz（同等或更高配置） | Tar 1.28 或更高版本 | 运行一些命令需要 `sudo` 权限 |
| 300 GB 可用磁盘空间（swap分区 &gt; 32 GB） | Python 3.10.2 或更高版本 | 运行一些命令需要 `sudo` 权限 |
| 16 GB RAM | GCC 8.0 或更高版本 | 运行一些命令需要 `sudo` 权限 |
| Ubuntu 22.04 | GNU Make 4.0 或更高版本 | 运行一些命令需要 `sudo` 权限 |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

Note

要在 Microsoft^®^ Windows^®^ 或 Apple^®^ macOS^®^ 上搭建运行 Ubuntu 22.04 的虚拟机 (VM)，请参阅 [Qualcomm Linux 虚拟机搭建指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-41/)。VM 上的代码编译是一个较慢的过程，可能需要几个小时。Qualcomm 建议使用 Ubuntu 主机进行编译。

## 安装 QSC CLI

1. 安装 curl（如果尚未安装）：

sudo apt install curl
        Copy to clipboard
2. 下载 `qsc-cli` 的 Debian 软件包：

cd <workspace_path>
        curl -L https://softwarecenter.qualcomm.com/api/download/software/qsc/linux/latest.deb -o qsc_installer.deb
        Copy to clipboard
3. 安装 `qsc-cli` 的 Debian 软件包：

sudo apt update
        sudo apt install ./qsc_installer.deb
        Copy to clipboard
4. 使用您注册的电子邮件 ID 登录 `qsc-cli`：

Note

要注册Qualcomm账号，请访问 [https://www.qualcomm.com/support/working-with-qualcomm](https://www.qualcomm.com/support/working-with-qualcomm)。

qsc-cli login -u <username>
        Copy to clipboard

Note

有关详细信息，请参阅[如何同步](https://docs.qualcomm.com/doc/80-70018-254Y/topic/how_to.html#howto-sync)中和 `qsc-cli` 相关的主题。

## 工作流程选项

下表描述了注册用户使用 GitHub 设置、同步和编译 Qualcomm Linux 的两种工作流程：

| ![../../_images/Updated-Icons_Text_50-05.png](data:image/png;base64,UklGRp4DAABXRUJQVlA4TJEDAAAv8kAPEJDgtpEkSfz/szsdR3X3IPcEIqTUtiRIUkgICSEhJYSEgQUbJlwYsGHChQkHJhyYsCSEhJAQDp4Dt20cSdnrTc7MNtwPyL9ixfd1LwyFfWk/l4JpPCrjTvgFpO+2vIC/OyEBulaiCrgTgHzg5L0X3ltjeL3GdeGANm4L02e57dPGWa77Fl8At8UHgLztx86F3vdjkl73Y76+9NZHfT7eKP9vCkcp/2565TeR9MqnM/8DIwG6R90Kv4CXb8vftf4yMPCsOLlT+XnyZ5j2Ibcq6uO7LR9K/lUuKhzHsd6+5zeEMcEFez/sI4E/0J0dZjkekGFF34YFaz5gFm8fYRs18BdjwVrhAaTgpgOAEaLAfwxUnsBCnMD8pyHh5tyTNiEEPwgJePJrJGD8LCi6Fv0sRJeQKrg/7ApwupVLaNhCnFE3LNcRudnhgp0tq0UTZjmOGfR6DaFoELLzdS2jovq4yl4am2cL98RlyP2gOyWxzTtswDWLX92OESJSwD6qEnZsWfXLtjcaJCoeHSoW2frW0WbTNF4bu0yGi7l0GXI/6o4HUW730A0pi/dXJiCF6QAJtOCWhqakN2olGjjgvkxm38hrG4aIFqUfa9kYS+E5eWB7hALYzmXI/ag7GoIxU8l+WF0dT7B8up3uZkGzPKE3B6NOojAIs9G3TD5oWqAtC2N1rLLvhGoIsnIZcj/pDiujOubklgQ0Dfqxl4kVEi6s1miQSFphBTH7cuOUBg+mvcPGuHdxYZOVy5B73Z28UoLT3ZEQIIJ0IIGTiCrRGdm9hFMxoaqJPfrWSmhds0KC06WxUaagBYesXIbcT7pDeG57jM2i4FQ80Ik70hoNEskkPPpClGJFRrVbbjUYv411yrEhuQtSAFiBOnZBww7a7TjVI63RIJEMwp7ZdxpdA7ALHFMGz9sYcj/oTs2pIQom4LI40g69I0QZcaGM2InMdEaDRFmHWxO18JWnRUJ7SmBR5ji1ADkZv40h95PuUDdWXdVAbADKdTVg5YZYaUWYBqSroWY6o1nCAaSHMAUoCYBvfLVrS3SBBY6iAuBSQlrj9zHkftCdPHkRLjTtttESp5RJSA5IhHABaGHlUJkNndEswSSOH3NiR2uQpS+Up33RbQPPxhP2zmXI/ag7pmoCtVtqzlmVYEaOAuOcvpTCq/qRwWih1wi/Uk2+rdA28NaY0qKxcJlzP+2OcRL/4S4CAA==) | ![../../_images/Updated-Icons_Text_50-04.png](data:image/png;base64,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) |
| --- | --- |
| 使用独立命令编译公共 Qualcomm Yocto 层。 | 使用 Dockerfile 编译公共 Qualcomm Yocto 层。 |
| <br>**[使用独立命令构建](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html#build-from-source-github)** | <br>**[使用 Dockerfile 编译](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html#build-with-dockerfile)** |

## 使用独立命令编译

### Ubuntu 主机配置

必须设置 Ubuntu 主机以安装所需的软件工具并对其进行配置以供使用。

1. 安装以下软件包，为 Yocto 编译准备主机环境：

sudo apt update
        sudo apt install repo gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool locales tar python-is-python3 file libxml-opml-simplegen-perl vim whiptail g++ libacl1
        Copy to clipboard
2. 将您的 Qualcomm 登录 ID 和个性化访问令牌 (PAT) 添加到主目录中的 `~/.netrc` 文件中：

# Log in to qsc-cli to generate PAT
        qsc-cli login -u <username>
        # Run the following command to generate PAT
        qsc-cli pat --get
        # This command gives output as shown in the following note
        # The last line in this output is the token, which can be used to access
        # Qualcomm Proprietary repositories. This token expires in two weeks.
        Copy to clipboard

Note

user@hostname:/local/mnt/workspace$ qsc-cli pat –get

[Info]: Starting qsc-cli version 0.0.0.9

**5LThNlklb55mMVLB5C2KqUGU2jCF**
3. 使用您喜欢的文本编辑器编辑 `~/.netrc` 文件并添加以下条目：

Note

如果 `~/.netrc` 文件不存在，请创建该文件。

machine chipmaster2.qti.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        
        machine qpm-git.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        Copy to clipboard
4. 设置语言区域（如果尚未设置）：

sudo locale-gen en_US.UTF-8
        sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
        export LC_ALL=en_US.UTF-8
        export LANG=en_US.UTF-8
        Copy to clipboard
5. 更新 git 配置：

# Check if your identity is configured in .gitconfig
        git config --get user.email
        git config --get user.name
        
        # Run the following commands if you don't have your account identity set in .gitconfig
        git config --global user.email <Your email ID>
        git config --global user.name <"Your Name">
        
        # Add the following UI color option for output of console (optional)
        git config --global color.ui auto
        
        # Add the following git configurations to fetch large size repositories and to avoid unreliable connections
        git config --global http.postBuffer 1048576000
        git config --global http.maxRequestBuffer 1048576000
        git config --global http.lowSpeedLimit 0
        git config --global http.lowSpeedTime 999999
        
        # Add the following git configurations to follow remote redirects from http-alternates files or alternates
        git config --global http.https://chipmaster2.qti.qualcomm.com.followRedirects true
        git config --global http.https://qpm-git.qualcomm.com.followRedirects true
        Copy to clipboard

### 同步

本部分使用安装在 [Ubuntu 主机设置](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html#ubuntu-host-setup)中的 Repo 工具从 [Qualcomm manifest](https://github.com/quic-yocto/qcom-manifest) 下载 git 代码仓库和其他属性的列表。Repo 工具使用 `repo init` 命令下载 manifest。

下表展示了 Yocto 层与manifest发布标记的示例映射关系。使用此映射下载并编译 Qualcomm Linux：

> 
> 
> 不同manifest 发布标记对应的Yocto 层
> 
> 
> | Yocto 层 | Manifest 发布标记 | 参考发行版（`DISTRO`） |
> | --- | --- | --- |
> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br></ul> | BSP build：高层操作系统和预编译固件（仅限 GPS）<br><br><br>`qcom-6.6.65-QLI.1.4-Ver.1.1.xml` | `qcom-wayland` |
> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-qim-product-sdk</span></code></p></li><br></ul> | BSP build + QIMP SDK build：<br><br><br>`qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2.xml` | `qcom-wayland` |
> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-realtime</span></code></p></li><br></ul> | BSP build + 实时内核build：<br><br><br>`qcom-6.6.65-QLI.1.4-Ver.1.1_realtime-linux-1.1.xml` | `qcom-wayland` |
> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-ros</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics-sdk</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-qim-product-sdk</span></code></p></li><br></ul> | BSP build + QIRP SDK build：<br><br><br>`qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0.xml` | `qcom-robotics-ros2-humble` |

Note

- 有关 Yocto 层的更多信息，请参阅 [Qualcomm Linux 元数据层](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-27/qualcomm_linux_metadata_layers_overview.html#qualcomm-linux-metadata-layers)。
- 有关编译 `meta-qcom-extras` 附加层和选择固件源的信息，请参阅[使用固件和附加组件的 GitHub 编译](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_addn_info.html)。

### 编译 BSP 镜像

BSP 镜像编译版本包含用于 Qualcomm 设备支持的软件组件和适用于 Qualcomm SoC 的增值软件功能。它包括 Qualcomm 开发套件的参考发行版配置。

有关详细信息，请参阅 [Qualcomm Linux 元数据层](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-27/qualcomm_linux_metadata_layers_overview.html#qualcomm-linux-metadata-layers)。

1. 下载 Qualcomm Yocto 和支持层：

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

有关最新 `<manifest release tag>` 的信息，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)中的 *Build-critical release tags* 章节。
2. 搭建编译环境：

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=<override> source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

有关 `<machine>` 和 `<override>` 的不同组合，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
3. 编译软件镜像：

Note

有关支持的镜像配方，请参阅 [GitHub 工作流中支持的镜像配方](https://docs.qualcomm.com/doc/80-70018-254Y/topic/how_to.html#image-recipes-github-workflow)。

bitbake <image recipe>
        # Example, bitbake qcom-multimedia-image
        Copy to clipboard

    成功编译后，可以验证目录中是否 `system.img` 存在 `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image`：

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### 编译 QIMP SDK 镜像

QIMP SDK 是四个独立功能 SDK 的集合，分别是 IM SDK、Qualcomm® Neural Processing SDK、Qualcomm® AI Engine Direct SDK 和 LiteRT。其中还包括可用于开发用例的示例程序。

有关详细信息，请参阅 [QIMP SDK 快速入门指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51)。

1. 下载 Qualcomm Yocto 和支持层：

Note

QIMP SDK build的 `<manifest release tag>` 与 BSP build相同。在 BSP build之上克隆 QIMP SDK 层。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

有关最新 `<manifest release tag>` 的信息，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)中的 *Build-critical release tags* 章节。
2. 将 QIMP SDK 层克隆到工作区中：

git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b <meta-qcom-qim-product-sdk release tag> layers/meta-qcom-qim-product-sdk
        # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2
        Copy to clipboard

    要编译 QIMP SDK 层，需要进行以下export操作：

export EXTRALAYERS="meta-qcom-qim-product-sdk"
        Copy to clipboard
3. 搭建编译环境：

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

有关 `MACHINE` 参数值的信息，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
4. 编译软件镜像：

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard

    成功编译后，可以验证目录中是否 `system.img` 存在 `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image`：

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### 编译 QIRP SDK 镜像

Qualcomm® Intelligent Robotics Product (QIRP) SDK 2.0 是一组组件，可让您在 Qualcomm Linux 发布版本上进行机器人特性的开发。

有关详细信息，请参阅 [QIRP SDK 2.0 用户指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265)。

1. 下载 Qualcomm Yocto 和支持层：

Note

`<manifest release tag>` 对 QIRP SDK 编译与 BSP 编译相同。在 BSP 编译之上克隆 QIRP SDK 层。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

有关最新 `<manifest release tag>` 的信息，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)中的 *Build-critical release tags* 章节。
2. 将 QIRP SDK 层下载到 BSP 编译 `<WORKSPACE DIR>` 目录：

git clone https://github.com/ros/meta-ros -b scarthgap layers/meta-ros && cd layers/meta-ros && git checkout c560699e810e60a9526f4226c2c23f8d877280c8 && cd ../../
        git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
        Copy to clipboard
3. 搭建编译环境：

ln -s layers/meta-qcom-robotics-distro/set_bb_env.sh ./setup-robotics-environment
        ln -s layers/meta-qcom-robotics-sdk/scripts/qirp-build ./qirp-build
        MACHINE=<machine> DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=<override> source setup-robotics-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # source setup-robotics-environment: Sets the environment, creates the build directory build-qcom-robotics-ros2-humble,
        # and enters into build-qcom-robotics-ros2-humble directory.
        Copy to clipboard

Note

有关 `<machine>` 和 `<override>` 的不同组合，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
4. 编译 robotics 镜像和 QIRP SDK artifacts：

../qirp-build qcom-robotics-full-image
        Copy to clipboard

    成功编译后，您可以在以下路径中看到 QIRP SDK build artifacts：

QIRP SDK artifacts: <WORKSPACE DIR>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz
        # system.img is present in the following path
        Robotics image: <WORKSPACE DIR>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
        Copy to clipboard

### 编译实时 Linux 镜像

实时层提供将 Qualcomm Linux 内核作为实时内核运行所需的配方和配置。实时内核运行时，通过配置完全启用抢占功能，`CONFIG_PREEMPT_RT=y`。该层支持 `linux-kernel-qcom-rt` 配方。它可以为支持的机器获取并编译 Qualcomm Linux 内核。这一层基于内核版本附加到内核和上游 `PREEMPT_RT` 的补丁，并启用实时配置。

有关详细信息，请参阅[实时内核](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-3/real_time_kernel_overview.html)。

1. 下载 Qualcomm Yocto 和支持层：

Note

`<manifest release tag>` 实时 Linux 镜像与 BSP 编译相同。在 BSP 编译之上克隆实时 Linux。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

有关最新 `<manifest release tag>` 的信息，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)中的 *Build-critical release tags* 章节。
2. 将实时 Linux 层克隆到工作区中：

git clone https://github.com/quic-yocto/meta-qcom-realtime -b <meta-qcom-realtime release tag> layers/meta-qcom-realtime
        # Example, <meta-qcom-realtime release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1_realtime-linux-1.1
        Copy to clipboard

    要编译实时层，需要进行以下导出操作：

export EXTRALAYERS="meta-qcom-realtime"
        Copy to clipboard
3. 搭建编译环境：

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=<override> source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

有关 `<machine>` 和 `<override>` 的不同组合，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
4. 编译软件镜像：

bitbake qcom-multimedia-image
        Copy to clipboard

    成功生成后，检查 `system.img` 文件是否位于 `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` 目录中：

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### 刷写

要将软件镜像刷写到设备，请参阅[刷写软件镜像](https://docs.qualcomm.com/doc/80-70018-254Y/topic/flash_images.html#flash-images)。

## 使用 Dockerfile 编译

### Ubuntu 主机配置

在 Ubuntu 主机上安装并配置所需的软件工具。

- 安装 git：

# Install git if you haven't already installed
        sudo apt install git
        Copy to clipboard
- 克隆 `qcom-download-utils` git 存储库，它为 Qualcomm 公共 Yocto 层和一些帮助程序脚本提供了 Dockerfile：

mkdir <workspace_path>
        cd <workspace_path>
        git clone https://git.codelinaro.org/clo/le/qcom-download-utils.git
        cd qcom-download-utils
        Copy to clipboard
- 将用户添加到 Docker 组：

sudo groupadd docker
        sudo usermod -aG docker $USER
        newgrp docker
        # To check if you are part of a Docker group, run the following command:
        sudo grep /etc/group -e "docker"
        Copy to clipboard

### 检查主机配置

- 配置您的主机：

bash utils/check_config.sh
        # Resolve the errors and run this command until no errors show up
        Copy to clipboard
- 安装 Docker：

bash docker/docker_setup.sh
        Copy to clipboard

Note

下图显示了与 Docker 设置相关的目录结构 `qcom-download-utils`：

![../../_images/qcom-download-utils-folder.png](data:image/png;base64,UklGRiooAABXRUJQVlA4TB0oAAAvSoIxAY+guG0UNkZ7HR0Ut43Cxmivo4PitlHYGO11dJj/IKK76+7srv83M+7O7upu3a27VRUzA0Bmykzd7f9xGLRtI8jhD3u7u38GETEB1l7HY4W+eCy9Wbt2+UX3NB2X/vdp9UmNDk19akZsWqHjFZaCB31qRmzQ68F+wUuforjR7rhArhoVjSp9aBZctI65wamiRUSrnj2XvcfPukbRtp26kSQMxhg3r///W1tcyTjViT3Vk4j+04IkyXLb1AkIAXr17AxwR3ib7W8Ksm23baROk/P+l9vTDz+AHxcgzR/RfzqMJDmSJK8jP1p2NfB08k1vv5aOP/TnsaOEoieF8rCQKOkJlP75Is5z7EjeLaUb6sUtCbGGyq7luBqmJ9XVzelZwNPkJsvwZN1Ekc31rsbS0uOBml5Yo9kQ0bNAorm16g4SeSZh/2mhmY10ZvBbr2amwqBQd5mPAguV/unZHEIyhV5NcZHBb0ANrQz3PDztptZjXOtn0xH8LZbmTqMJx0GBEW404GgkHwIOQGr2H7HDsSNynoe7mQDWcvyuBrNWazKnE/xUsLJ3uvUgUGZfHcbu97VE/OmWzVSZupXN+2NBnUxMqzmoxmwpGvbH7a5mm6ba/UUbuUOjpZCSp/RU0LIlmthdy46IfGWT7XcJroCPRhfyvZppa48FrZWM3hsTlKD8rCqVR2mf1L9EfHc7flsZzP/Qn4eGH2g7v1BjCfsRB/rdifcDDZ4XaCxm6eojIjfQWXomqtMCNDwp6I+7xLXXzkW21fmErrBKKP2FGQQWjAEF+9iR/Lx+2lx67VzGMGFg8hOl/sIMgguWWck6S57bAY/a3YdNIWvngSm3VAD9hArggkUqK23hBXtWZf6sKWPtvJ/bjdaz4IKV1ARfBPGzppC180CJSzqLVLB8nrfhMNggwg1AnRnXzl8Ep6QlP5FZP3cuuHZ+ljKImbQcwmdKHzuFrJ0H2vo/l/i/o0QqWHD7rbTxuf3YKWTtPNBRBNlDo7FbCuagHNd1UwgRSgAFdyw0tdbLTTOVj51C1s4DRbPLZcrzoWA7SMQPByXAgjvFrlsGx0v72Ln62rkjfoRuBoGwXEYW3HDt5YZsbrnMyYkf5VHacvdLggZuK/gRuBW8Oeu8yv97y0mU9ARKA4g0hbCo/L9PDNOk9P8+M9CC5bwS99sVHEMgF4Le/wvkQtPvWO61K3hxbpfjXFb6f6FcaPody912BePNuhKCXGj6Hct9dgWfRZILTb9jucWu4CFIcqHpdyw31xU8EEkuNP2Ovbu5ruDxaEy/Y7m3ruCxQLnY9DuWm+sK1qL1/0K5yPQ7+LfcXFewFq3/F8lFpt/Rv/nWuoKvOVJB9ZRHaZ/UPyMcJf65gVswP0sL5rGTn7xe1Iy+2S3OuXmtrf1AM/rmiGa+caIuZlcO0amZ3e3BUQgzTbn9PDN6pDmuU78bedkWwYasUbMS3SCOtzBr6s8zoxvHXFe+ofifglCoKWa6RfAd4T/AjK6CldpD2kLcJLgiFGqcDXeJZu1PMKMb/4Q597VXhw0OspqV8n3C0Y8wo1sKlDqysRhRTTWh3Sl+hBndUCbfOOuuACKrmad6q/gRZnTDT2MbZzaxQWQ1R/Tdp0z8Mrru6elHmNGHVWNrh80NI6qpxiVm9ku36K6Q/wlm9PFP292ap0NABshqEnjx3SGqNeUnmNHHP01unEiJ/blORyoqNfzB7SGlMFFsP8KMPvyT3ZqOox5VsoJdg6nRUM2dgmjypbUfYUYXIH6wqgoomBV6TC1Scw+IPD/DjK6LlW7KKrO+9pvED4yVfpS23P2HT/u/YP5BecEcSniADObQa/78GMyxhMfHYI695o+PwRxLeHwM5vgE/vQYzAUJD4/BXJLw8BjMJQkftsE89NS4YC5KGGAw/9gpccFcljDAYP6xU+eCOfSaaw3md4A6F8yh11xpML8FVLdgrjlGGMw/eI7HgvlCvr35XzMfkw/9A8dd+YuOXSWUU07f+Uuh3EkSpVOeuvkLlP5tIc5z3LnK6YvGW1STQumv/VJom5+xDQqU5mNH2oXdQPxhw7WUrnL6QrCafvITl+CPIpzISnZX4xmWCbt9JJqZvTdd5vSFQDUyTG4WqKyIhTIUdvdYqPBRu8zpC4FqIFCCipoKEhbvHm5qnCucvsbCKPhpPGyCxnAHSN70dR1jnb6T1JKfyKyYu3c3U8dYp29eiqPMlG4kK0X259JQp29MiSkPKlLpCt743N5I6mRiWg2lsU7fkKqxWwpGw0ITEpZmKjeSli3RtN+NdfqG1LLZhW8aArlOmONF3ElaK/k6p693ezeXAUZeoOzu/Le/C27vPkpb7n6z8b06/vn8/9/mnh6D+amC7xmJkp5A6acSKD0SZJefIxKli7jbBnOtaVzQGIMnH0Joou181+3TANv5Ti+YK03jksbF2V2Oc7L/xVpnKA6wnW/0grnWNA41ogcyCzM81AG2831eMNeaxqFGLb2EjeIA2/k+L5irTOOSxrMUCgNs5/u8YK40jWONp+DylbbzDx7jucqCudY0DjWeJVHQ2s5vBldbMJdM40hjR1DazlmtWtv5zeBqC+aSaVzU2My0V1RE2/khgVzT2s5vBldbMJdM43KOczREJou2c39oqE1rO78ZXHXBvKai1JizYDvvTthljO18BypswRxwT/ZJVXEePKLLt4TOcyv4lvxFT6US9imjYwcXEiaaQpXULGwzQmN7L+shbBGE3X8SJSAhBEc+MDOcoyUudGyOCswlx9TsqsAGFrvLWYytUNgjgOq/4ka2yzJ2+zThhpXSsTJhiTz8L79PBTPfNWmciPEdgVvopukBgeZOikigAu64sCeEAFnZ1jlGNR487TZJ2CNCt6GXsavInBoMGV+hsAcD7YNWjetF1W2mqdzOB/H7v0PwWpgMNN+R5sfjaWAFnhcFbXIHbuFKzAPCSolpWjVEOpjZX1Qn+zCwcnOT8Cl7tWZLm2H+XyTMsVPydJDNYRB2tEFhDwDIchm4BPbmVh3w//bCeiIF5NPFwh6MHQk11fPTXx6lzS3/F0Nr3+COZ8lg/luP5F0cpaYuhqYAJSiEhYls1PvdFURhH82JelK3AosbRgxaNXzzZFwcpcaZZVtogRJkYeSDo0Xtd5fI3pATUNeDcs9mLap6tGrwtlAYoUZK4SlQgvR+w9QslFX7kjVFTIsV0dfjWcjmpow/1NajVEOqOM+xhALTnXHmcwl5mbc0+ypQei/MEDUL8XzNFUoQsBOPwPRDKFtrTkRfz0Yb06TOqNbWo1EDKk+TmwwlmO6MM5/TrsUY48gJrFTymnaGqHEH1VGAEgSos81YHYpDg76eSp5ZcwZlVDftsKIqdYHMCaY748znRJHFwC0kDj6LbspNqUZDNrYnGyuROxmOLkNdD88bzrSqM6o/EyaBnmG6M8x8PhSx58NBYkdmM2P38Ta4u1CNgpV8owAl4CLS9Sjr4W+B+XiHVmdUf54403ocKb7mchLEDseo/AodcUrNbGLbgRJQES+Bsh7+MDRrVRnV0WFaMHdWB6kQ3346uYPU2NwOsAR89EyXIdUjrer+hCqjGuovMwHmHpj5rMczNkqD1FR+JQYkiEy8SuMvA9SjYKVAUkb1h8bYoOdISUx3zkxN1NJr9FR7K95JNYlfLwkSFJO6UjpHKhLa0kQKmak1XUZ1wPMQqx5O8WgowXRnmPmspdMYaAExzSfVsCIclCDWzuU6td+9L0LgRGni8hyLoM6o9j4Pi8YGPQdKMN0ZZT6r6R3oC3jXcufUFF4ElqAqgla1370vAqMuTcHK3iC1GdXe52HR2KDnREl2ldekfh/VCcsD1FSlcR0LsxROvtS0agYb4ofWA+4bCYnS32CtvK1/k80tu1er7RaSXf76bzD/PWQw/0N/nko2Z50fTQrlmSDSFMLC9zSYZRSB0jPBhHal1enpgYSxfSxQe81bCm3z88q/rUggF9gu3RL2I0pudU0RPnakXfmdRu01b4H8ocaxb3DjdmXO5W7vroNudSu/5a1kd7meYZnyG43Wa87Y1cyUFTuzOxLNh0aRSjM3eELl9xmt17y/wkqUVGC3upKaClIe7zNar/kQnFHuKvZkw7YrQIS7xXjbuRoai9VuUE9+IrPeOi48tF7zIcx0wutQZkq3HK3XfAgrk7v2pNKp2fjc3nK0XnMt/PMsmthHWnXa5a7UsdDEqMZuKc1UbjnGXXNHqbvGc71bfb+DLm2YOn7LMe2ax26rB0oa93e5eZtbLnnmyr4fim6f1ONCtcYvE23PkCu4xtn53O4n7T///HTkn09lKG+OaM418s94nT75+OczGcqRXFyt+adO/jnSHNfJ5DsR/zwtljNNXf5pmfyzcTyJ+HOPfz6VoRxSt224RP4Z7Q207j7EP7cGp6O7q5N/7s7Mn3z88ylK2o6nC+Sfpeo/+fjnUwSiY0teqfxzJv/Zxz+fu0vz/qNS/jkb++HHP5+djunrf4Xyz9XY+tHHPyuBhhf36b86+edq99tNiH+WId/dlck/V3t8LHoT4p/l6VgosKfr5J99twz1DsQ/K6ZjIaIp/lcn/0x97Xci/rlBMaX9L0n880v++fof/7yc1tr+88+q+Of2n3/+5RD/3P6f9n8LSeKDezo9kri8p/Mjiet7OkWS+P9/OT2S+OCeTo8kru/p+Ejig3s6PZL44J5OjyQ+uKfTI4kP7un0SOKjezo7kvjwng6RJP73Py+2knj7zz+3//wzjn/++h//PCT++et//PPX//hn1x3LExT/HNixUHh64p/REUx9duKfIdX45yj+OVJ5UuKfzzL59gTFP/fxgw9R/HN3ont64p+FL/IeoPhnMKjtCYp/ZmWtO49M/LMGzz4WfYbinzP7JqyPUfxza/9LEv/8arYV/PU//nk5rfXrf/yzKv7563/888OBf+7rzqlZML/vK6G8hvIUyr2Lfy5meYkmUnoN5eGE/Bi0ajaDf67T65NdHo+qV1o1+8E/vzyJ0mC0vdKqAc4/K3sF3fVnGpTCXqOXCgaufVQEI7HuyzMQgye/V9d0rn2kHLKGql1TlRrg/LO6V8hdf6JBgax1RioYufaxKR9stBZnYHF2F+lcU7r2Vco9xTZoTb8HnH8+0SvwZqlvUDjGsFqqsGDo2gemfIgwA/CB1rUvK2e3kfDmn7W9ElA2CCzdRhEWDF37oIgOxQxAUD3YtS8r32+CxtPg55+daedAtQNKX7DcVxY8C1HMAAStKXbti8otzZLG0+Dnn509jWbpRAjixqF17YvKyYpfKJ8GP/8803hSj9zXowgdswqta19UvlZr8lCA88/KXg2E9REC+8qKAIvOJARhBhjSa05y7UPlXHM2U9WhXWng/LO6V9Bdfwa7sTWFQNd+b8o3B9UcGqUZ4OeJaVdZ+tol1z5Q3tM2cjq0K82bf9b3Crrrz+DNLqvCgrFrXzLl50PiJswAI+56+tOloHzakPIOtlhehXalmfPPrn9x4V6dP7pTXTnbtoKr1C5kzjrlBSofeeTPP/45J3aAsRnJX2if1Duk1b9kay/grsc/z/iuosvfUwzmX/+TxJfTWtt/SVyVJN7+S+Lf1JPET81W8D1cb/75qcpvT/xz9CvpzT+6yTTLWOXDE6avaRBx/jnjALLLV0VFI+o0iGsaBJx/zku1L3osY09WlzUIPf88mFysJ/pdAkQIb9ZGRYvJjeHLNcGWDaOi+7TnGuI1DWLPP+vJpXo8uaM0CAxvhtdduJnqRmwJl2vQlg33waZjIGd2xszXNAg+/ywnF+rZWIHOnHzAgM2UN2JKkgBN1QJtZWXEixoEn39Wk+N6kM48ANhMObkSm83BuRU4xmQjj5vpf0Eq+PyzmFyup67z8TCNRUyuryyhOpGtuJnuFyQDzj8bE+up1iwhuNHIG1EfEmozzZc1CDj/7Aou0iEyjEbeSGqRHMWrGgScf7Yl1AM+7JhVhDOoGwkvUQRCspnbbDJgbIOA88+25HoizWmbiRI0SsPwZm1UtLwRGVQOJQDEqOhqp9rqZGvP2AYB559tCfX0Gt1KERqlYXgzVAObKW9EBpVDCQAxKtp3anzP2AbB559dz6MvPefBKxL3Jx+12hEN2gf+eQnfk1pgrb6rLXcfevzzjeEl/7T//PNyWmv7zz+r4p/bf/7Z56//BvPfFAbzp0F7J4lb/9u4e0MglsRtrUTvCMCSuK1ipvcEX0nclrPhPYFcEl8pvymIS+LVhPamIC6Jz1N9VwCXxLe98HcFb0m8GpdYCGp6Q3e8JfEEXvVvCNaSOKj+XT3NWhJ/d8CWxN8dqCXxd+chpC2Jn+E7cpL41//45+W01vaff1bFP7f//PPDgX/u686pWTC/7yuhvIbyFMq9i38uZnmJJlJ6DeWB0uA1/f3XzeCf6/T6ZJdHcmJNtSu9H/zzy5MoDUbbK+1K8+aftb2C7vozDUphr9FLBQPXPiqCkVj35RmIwZPfq2s61z5SDllDVa2ptoO8+Wd9r5C7/kSDAlnrjFQwcu1jUz7YaC3OwOLsLtK5pnTtq5R7im3Qmn6PN/+s7xW0+egbFI4xrJYqLBi69oEpHyLMAHygde3LytltJLz5Z22vBJQNAku3UYQFQ9c+KKJDMQMQVA927cvK95ug8TT4+Wdn2jlQ7YDSFyz3lQXPQhQzAEFril37onJLs6TxNPj5Z2dPo1k6EYK4cWhd+6JysuIXyqfBzz/PNJ7UI/f1KELHrELr2heVr9WaPBTe/LO2VwNhfYTAvrIiwKIzCUGYAYb0mpNc+1A515zNVHVoV5o3/6zvFXTXn8FubE0h0LXfm/LNQTWHRmkG+Hli2lWWvnbJtQ+U97SNnA7tSvPmn/W9gu76M3izy6qwYOzal0z5+ZC4CTPAiLue/nQpKJ82pLyDDalXoV1p5vyz619cuFfnDz5UuZxtW0FV5qJdyJx1ygtUPvLIn3/8c07sAGMzkr/QPql3SKt/ydZewF2Pf57xXUWX38HuzQ+tW8Ff/+Ofp0eHr//xz2n8c/vPP/9yiH/u686pWTC/h+t9ZD9V+e2Jf45+Jb2PTDeZZhmrfHjC9DUNAs4/pxxAdvmqqGhEnQZxTYNw88+ZqbbYD2Xwu/BlDULPPw8mF+uJfpcAEcKbtVHRYnJj+HJNcPjDqOg+7bmGeE2D2PPPenKpHk/uKA0Cw5vhdRduproRW8LlGnT4wy3V6RjImZ0x8zUNgs8/y8mFejZWoDMnHzBgM+WN+D4woD9foK2sjHhRg+Dzz2pyXA9aqjwA2Ew5uRKbzcG5FTjGZCOPm+l/QSr4/LOYXK6nrvPxMI1FTK6vLKE6ka24me4XJCPOP9sS66nWLCG40Qxu5MeHS6jNNF/WIOL8sye4SOVYqtHIG0ktkqN4VYOI88+mhHrAhx2zinAGdSPhJYpASDZzm00GjG0QY/45ILmeSHPaZqIEPfcwvFkbFS1vRAaVQwkAMSq62qm2OtnaM7ZBjPnngBT1LEfXVorQcw/Dm6Ea2Ex5IzKoHEoAiFHRvlPje8Y2CD7/7Hoefek5D16RuD/5qNWOaNA+8M9L+J7UAmv1XW25++zin9u2BfP2XxJfTmv9+p8krkoS//qfJP5NPUn81GwFPw0iwj9vjmjOnGBp8rW9QvyzbRo7/5yvJS+ouvnnSHNcJ579sdC8LWTbK8Q/G6cx888TaMlwWyiMU2McivNlUxIoXR7/7JjGyj/PoCUvqIr5Z7TBzvI/GviWu8vjnx3TxPLPsVrygiqbf4anN+N5dtXl8c+OaWL551gteUHVyz9rpjFSSNF4dfzzKxDLP0dqyUuqcv4596fc+ZjxKsU/vxRZ/LNfS15ShfPP2di+zK0layoq4tXI4p/dWvKaqpt/rqbLBUsU+V9/efyzY5pA/jlUS35TlM0/V2urMJPktPHPr0Ak/xyrJb8lquafqwXRxFt3t7xS/POoHP45Rkt+Q1TNP/su0vkY7OkozZryCvHPxmmC+edQVvoNfcpeNv9MMMe5HMJsfqn450FJ/HOElvyOYjtXwT+nelX88wg1k/LPNb2jn5HnnyV+E8c/v+Sfr//xz8tprV//459V8c9f/+Offf76bzD/TWEwv+8robyG8hTKvUsSL2Z5iSZSeg3l4YT8GMaqwS6J1+n1yS6PR9WrsWrIS+IvT6I0GG2vxqphK4nregXd9WcalMJeo5cKBq59VAQjse7LMxCDJ79X13SufaQcsoaq7dVANWwlcW2vkLv+RIMCWeuMVDBy7WNTPthoLc7A4uwu0rmmdO2rlHuK2l6NVMNWEtf2Ctp89A0KxxhWSxUWDF37wJQPEWYAPtC69mXl7HY9bCVxXa8ElA0CS7dRhAVD1z4ookMxAxBUD3bty8r3m7D+FwFaEnemnQPVDih9wXJfWeg1RDEDPcKaYte+qNzSLGm8CNCSuLOn0SydCEHcOLSufVE5WfEL5YsALYnPNJ7UI/f1KELHrELr2heVr0fY9gvAVhLX9WogrI8Q2FdWBFh0JiEIM8CQXnOSax8q55qzmaqOsR1EK4mrewXd9WewG1tTCHTt96Z8c1DNoVGaAX6emHaVoFeSax8o72kbOTUDO4hWElf3Crrrz+DNLqvCgrFrXzLl50PiJswAI+56+tOloHzakPIONo5ey8AO0pXEXf/iwr06f/ChyuVs2wqqMhdthHnOOuUFKpeOSzpIWhLPiR1gbIbytzzWUqt/ydZewF1PEp/xXUWXv6cYzL/+J4kvp7W2/5K4Kkm8/ZfEv6kniZ+areAnSPvAP1uneccg5J+t07xjoPLP02LfMhT5Z8s0bxmk/HNr7xpe/DOaePHPaELFP/MJEv9MKUj8M6Vo8s9vHpr885uHJv/85oHJP7/jHQlg+ee7R3tbN+j8843hJf+0//zzclpr+88/q+Kf23/+2eev/wbz3xQG8/u+EsprKE+h3Lsk8WKWl2gipddQHiiNX1PtkHzqSeJ1en2yyyO5fE0jubhaUz73JPGXJ1EayeVrOk087PhjTRI3vyvorj/ToBT2Gr1UMHDtoyIYiXVfnoEYPPm9uqZz7SPlkDXUC9c0sFrJfaxJ4o53hdz1JxoUyFpnpIKRax+b8sFGa3EGFmd3kXv1Ste+SrmnOLxXqoZ9rEnijnfFZTD0DQrHGFZLFRYMXfvAlA8RZgA+0Lr2ZeXsdi2FBQV+rEni5ncloGwQWLqNIiwYuvZBER2KGYCgerBrX1a+34T1v4BARNvnnCTuTDsHqh1Q+oLlvrLQa4hiBnqENcWufVG5pVnSeMldmmn7mJPEnT2NZulECOLGoXXti8r3H/GiXomB3B9zkvhM40k9cl+PInTMKrSufVH5eoRtX4DsbnP0sSaJq3s1ENZHCOwrKwIsOpMQhBlgSK85ybUPlXPN2UxVx6CVruT53ceaJH6iV9Bdfwa7sTWFQNd+b8o3B9UcGqUZ4OeJaVcJeiW59oHynraR0zFqpRcK7OmPNUn8RK+gu/4M3uyyKiwYu/YlU34+JG7CDDDirqc/XQrKpw0p72Bj6FUMW+nlKCd+uEnirn9x4V6dP/hQ5XK2bQVUiSVW3KCcdcoLVC4d13Ywl483STwnfvT9Hcpf+HgDtPqXbO0F3PUk8RnfVXT5HezefDXbCv76H/+8nNba/vPPqvjn9p9/fjjwz33dOTUL5vdwvY/spyq/O/HP4a+k95HpJtMsY5WfSJi+ciHrYmgKAwDLP+ccQHb5qqhoRJ1ErlxIZ5ZtoWUAVPnn1FRb7IdypuArF7Lz5JbzIOafB5OL9US/S4AI4c3aqGgxuTF8uSY4/GFUdJ/2XEMcsmQLtZ1M63kY8896cqkeT+4oDQLDm+F1F26muhFbwuUadPjDLdXpGMiZnTHzkCVzB9VROA9k/llOLtSzsQKdOfmAAZspb8T3gQH9+QJtZWXENoxs7Agg889qclwPWqo8ANhMObkSm83BuRU4xmQjjxf9HOsucQCU+WcxuVxPXefjYRqLnFyJzQnViWzFi36K2cQ2BET881SJ9VRrlhDcaOSNqIdLqM3iBy2nsLmNARH/PGFwkcqxVKORN5JaJEdRh/pzmTwClvxzQEI94MOOWUU4g7qR8BJFICSbuc0mqxEnI/Ev3c/Dkn8OSK4n0py2mShBzz0Mb9ZGRcsbkUHlUAJAjIqudqqtTrYqkSeDDZRr52HJPwekqGc5urZShJ57GN4M1cBmyhuRQeVQAkCMivZczZDM577xvp6HMv/sep5U1WuWB69I3J98xqrNUqz0WTjzz0v4ntQbpNV3teXus4t/btsWzL/+J4kvp7W2/5K4Kkm8/ZfEv6kniZ+areCnQZD5Z21p+vjnfC35DVE5/+ziak15rfhndcK0Ov55Ai35w2WhoFWjdqLXF4t/1idMq+OfZ9CS3xBF888tsFLoteKf9QnTg+OfY7XkN0Td/DO/e+345+4MOjj+OVZLfkPUzT8XFhj2ovHPksrB8c+RWvJbom7+ORDR9vrxz5n8dfHPfi35LVE3/1wOo8v26vHP2dgL45/dWvJ7olz+WQzmffH452psHRv/HKolvylq5Z9ll4ujV4t/ViVMD45/jtWS3xIF88/wH5rsq8U/qxKmL4t/jtGS3xBV888LBf70a8U/qxOmr4l/DtGS39Cn7GXzz20hoim29srxz9RrvCb+OUJLfkexnZXzz7n8xeOfa3pHPyPPP0v8Jo5/fsk/X//jn5fTWtt//lkV/9z+88/f1OOfT81W8H1fCeU1lKdQ7l38czHLSzSR0msoDyfkxzBWDXb+uU6vT3Z5JCfWdKwa8vzzy5MojeTEmo5Vw5Z/1vUKWqLPNCiFvUYvFQys1qgIRmLdl2cgBk9+r67prNZIOWQNVbumA9Ww5Z+1vUKW6BMNCmStM1LByGqNndRgd6w4A4uzu0jnmtJqrVLuKWp7NVINW/5Z2yvozdA3KBxjWC1VWDC0WgMnNUSYAfhAa7WWlbPb9bDln3W9ElA2CCzdRhEWDK3WoIgOxQxAUD3Yai0r32+CxosAzT87086BageUvmC5ryypGKKYgR5hTbHVWlRuaZY0XgRo/tnZ02iWToQgbhxaq7WonKz4hfJFgOafZxpP6pH7ehShY1ahtVqLytcjvvgFYMs/63o1ENZHCOwrKwIsOpMQhBlgSK85yWoNlXPN2UxVx4CVlqHln9W9gpboM9iNrSkEWq17J7U5qObQKM0AP09Mu0rQK8lqDZT3tI2cjgErLUPLP6t7BS3RZ/Bml1VhwdhqLTmp8yFxE2aAEXc9/du9oHzakPIO1mevYsBKy+jyz65/ceFeKQ+RJKy6rkEFN0ibO52zTnmByqXjkg6S5p9zYgcYm6H8LY+11OpfsrUXcNfjn2d8V9Hlt8BL/vn6H/+8nNba/vPPqvjn9p9/BsI/f/03mP+nYTC/h+t9ZD9V+e1JEo9+Jb2PTDeZZhmr/ERY+esvJFtJPOMAsstXpY4j6iTy+gvJVhJPS7XFfiwnTlavv5CQJfHB5GI90e8SIEIOuDZ1XExuDF+uCQ5/mDreB4fXEMcupDfKkrieXKrHkztKg8AccHjdhZupbsSWcLkGHf7SpuzM1tuZPHYhvWGWxOXkQj0bK9CZkw8YsJnyRnwfGNCfL9BWVkZsIxfSH2ZJXE2O60FLlQcAmyknV/i3OTi3AseYbNKi+y/SH2hJ/IdB5HrqOh8P01jk5Ar/TqhOZCtedPdFBsRVErcn1lOtWUJwo9E3Ik5CbaZ56EJGRFYS9wUX6VjfMBp5I6lFchTHLqQ/tpK4KaEe8GHHrCKcQd1IeIkiEJLN3Ga48GMW0htbSdyUXE+kOW0zUYKee5gDrk0dlzcig8qhBICYOl7tVFudbO0Zs5De0EritoR6+uV1K0XouYc54FANbKa8ERlUDiUAxNRx36nxPUMW0h1mSdz1PKmq1ywPXpG4P/mo1Y5ZSFPIJfElfE9qgbV6D7fcZZefjd2br2ZbwV//45+X01rbf/5ZFf/c/vPPvxzin/u6c2oWzI9zJZQ7jBCyPEdN3nJ2ibEcutbKJWxM3gI1niVRutOEI3PCkeslBJRA4bvt5SHMPKbQMcuKJQc1PgykfgdvEOZtIoOcCoVFxzmieiTfOKjxgaDRLJJpodSZXvoNl+6IqFomp0NKNe695g8Bi2lmgf4paw/muU2LEinVGHjNb/yDFYWHTL75CeLoIFKi7BzSCJBSjYHX/G7jQ+i+JwWMNMoU20ZZptI0tckhjfIVGXs+EPCa322sYzd4suyiHistIqbNuxaCD07gpnbPiF8lN3yYJhlrnHNmgk9PTEKkPAzHuOFPR4oSheyOpdJTyDNqaKOY6bb/RZOVWPv/f4OOak0/zUpSkQBe89tNP2oBRS9biz55oJTCRLFBoMbeSi7Re83NHaeyT85BKm2h0IkqjZnDfWky+A8GchLQa/687EjIWq/5o7RP6pcRX/8N5v9yGcz78MvnBpgO3odfPjBkl5Xp4I8Lqi3gjwsplP6b5sTg2TezABdmEBwJ/lwQKPV/7+IsM7iACzOIEAn+fKB4ICBFgj9H1FQeHqRI8LHcXYP5JUiR4E/CcQlSJPhTQeLfpqAnqJEiwR8IUMx36I3gZtpSLDAdHAaF40jwp+LIhshtHXEXYTJMB4dB4UIk+HPxk4JFnPqwqvub/3E6vv7Tfql5hVMoA4Rdx+as8xcsw40jUBog7DIiTSEsvQd54DI8E0wT9CA/PZAwtjeWtLgldSQ/r5xyqIHCEGuosnKo0buFZ0KFtnVFxBDIHbH20IPcp0aXUDRF+AiXYauKNDlLC8MeElyvZqIIhfV4ilrlndeqkxvI90Uszu3KnMvQg6xKjRbsyHAZNqpCMxunzKZulzBT7tXMVERhSXEThKVDeXVUYBHsgcIMoUqNluzIUPk+tfBIQxf782aiCNTQKgtT3ARhs+GB0gEVkVRAuUlJTQUuwz7lersnIhzxz+E4KIjCLM3nlBvXDekQnGkS0I4sLcPe7ArH5NgRRfYf8RQ0Fisi2JEx+/TLrEYrbK3W5DPKreX4IcwkItmRbxmRIr8SElhpZQOmEZbNVE8pz1zIABSp0alIduRbRrMmpm2aqkC1FFLylDTCNnInlFdjthSNbVqg8bhPjaaOhaYdaEe+Z1RPRK7AqQu9mmnTCVvIa5X3ZmJf1UDjsZwaHdgLA9qRbxnsS/6q/PS9nBLm+nxxWVhNIxen5Bb6BxnbkW/2Pqmc2HHttM3HmdiaR2jLXbXGLxNtz9DuzRpn5/NN2gjc/i+YP9IWzC9wfw/Pki5nlKZQbj2B0vAs6UTpVBGPAsos6ScF/XGrMW9055AYMdTeHg794wq21fkEY6WRfxwCreQ7p63ktwz7RreZuJnSIXs49I/LGOZAx1t+FVnS463kdwzPRnfi3hOV19xThnTCqsU2gtSfTa+0kt8w7Bvd1RwSpgm/w0H/uOqyaqNVxZVW8hv3wAA9eyrHIEk4OnWFTmEIbrraSr5FC+YG6LnQ0rypL4gbaCW/b4cFep5NpdAk5lMUJcOt5PcQC/ScyFIRgP5xka37c/2pGDHcSn4bGUPPjnwTgP5xEWYPtzhW+kSW9HRoNHor+W18MIaeV8oS0D8uEs2upuJYaZglfaWV/PY9iby9zmmFVclVLodJ5zLCSt5a01nJ9/VEiqNc5c/HsS3k2lN0BLfU9n82RwMA)

### 编译 BSP 镜像

创建 Yocto Docker 镜像并编译：

1. 运行 `docker_build.sh`，使用 Dockerfile (**Dockerfile\_22.04**) 和 Dockertag (**qcom-6.6.65-qli.1.4-ver.1.1\_22.04**) 创建 Docker 镜像。使用此 Docker 镜像创建容器环境并运行 Yocto 编译版本。

    **Dockertag**：使用小写字母表示发布文件夹，之后为 Dockerfile OS 版本，以使用 Dockerfile 识别发布编译版本。Docker 不允许在 Dockertag 中使用大写字母。

Note

要解决 Docker 问题，请参阅 [Docker 故障排除](https://docs.qualcomm.com/doc/80-70018-254Y/topic/troubleshoot_sync_build_and_flash.html#troubleshoot-docker)。

bash docker/docker_build.sh -f ./docker/dockerfiles/Dockerfile_22.04 -t qcom-6.6.65-qli.1.4-ver.1.1_22.04
        Copy to clipboard

    如果你在运行 `docker_build.sh` 时遇到任何问题，请参阅以下解决方案：

# Error 1: Cache-related issue.
           # If you are facing issues with the docker build command, try using --no-cache option. This option forces rebuilding of the layers that are already available
           bash docker/docker_build.sh -n --no-cache -f ./docker/dockerfiles/Dockerfile_22.04 -t qcom-6.6.65-qli.1.4-ver.1.1_22.04
        
        # Error2: Response from daemon: Get "https://registry-1.docker.io/v2/": http: server gave HTTP response to HTTPS client
           # Check with your IT administrator to acquire ``registry-mirrors`` URL and replace <docker-mirror-host>`` in the following solution
           # Using a tab instead of space and other invisible white-space characters may break the proper functioning of the JSON configuration files
           # and later may lead to the Docker service failing to start
        
           # Solution:
           sudo vim /etc/docker/daemon.json
           # Add an entry similar to the following in /etc/docker/daemon.json:
           {
              "registry-mirrors": ["https://<docker-mirror-host>"]
           }
           # Restart the Docker service to take the new settings
           sudo systemctl restart docker
        Copy to clipboard
2. 使用 Docker 标签和发布参数在 Docker 容器中同步并编译 Yocto 镜像：

bash docker/docker_run.sh -t qcom-6.6.65-qli.1.4-ver.1.1_22.04 -r qcom-6.6.65-QLI.1.4-Ver.1.1 -M <machine> --build-override <override> --alternate-repo true
        # Example, bash docker/docker_run.sh -t qcom-6.6.65-qli.1.4-ver.1.1_22.04 -r qcom-6.6.65-QLI.1.4-Ver.1.1 -M qcs6490-rb3gen2-vision-kit --build-override custom --alternate-repo true
        Copy to clipboard

Note

有关 `<machine>` 和 `<override>` 的不同组合，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。

    Build工作区位于 `<qcom-download-utils download path>/<release>/build-qcom-wayland`。例如，`qcom-download-utils/qcom-6.6.65-QLI.1.4-Ver.1.1/build-qcom-wayland`。

Note

- **# ERROR: error.GitError: git config (‘–replace-all’,‘color.ui’, ‘auto’): error: couldn’t write config file /home/$USER/.gitconfig: Device or resource busy**

    由于 Git 1.8.4 默认启用，因此当 gitconfig 中未设置 UI 颜色配置时，您将看到此错误。如需在您的帐户中启用彩色显示，可运行以下命令：`git config --global color.ui auto`
- 如果您看到并修复了编译错误，请运行 [Rebuild](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html#build-with-docker-rebuild) 中的命令。

### 编译 QIMP SDK 镜像

1. 使用 Docker [编译 BSP 镜像](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html#build-with-docker-bsp-image)。
2. 使用 Docker 在基础镜像之上编译 QIMP SDK：

    1. 运行 `docker run` 命令：

# Run the following commands inside the base image build location
            cd <workspace_path>/qcom-download-utils/qcom-6.6.65-QLI.1.4-Ver.1.1
            bash
            docker run -it -v "${HOME}/.gitconfig":"/home/${USER}/.gitconfig" -v "${HOME}/.netrc":"/home/${USER}/.netrc" -v $(pwd):$(pwd) -w $(pwd) qcom-6.6.65-qli.1.4-ver.1.1_22.04 /bin/bash
            Copy to clipboard
    2. 将 QIMP SDK 层克隆到工作区中：

git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b <meta-qcom-qim-product-sdk release tag> layers/meta-qcom-qim-product-sdk
            # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2
            Copy to clipboard

        编译 QIMP SDK 层：

export EXTRALAYERS="meta-qcom-qim-product-sdk"
            Copy to clipboard
    3. 搭建编译环境：

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
            # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
            # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
            # and enters into build-qcom-wayland directory.
            Copy to clipboard

Note

有关 `MACHINE` 的参数值，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
    4. 编译软件镜像：

bitbake qcom-multimedia-image
            # Build SDK image
            bitbake qcom-qim-product-sdk
            Copy to clipboard

### 重新编译

要在对软件版本进行任何修改后重新编译，请使用 Docker 对现有工作区编译：

1. 列出 Docker 镜像：

docker images
        Copy to clipboard

    此命令生成以下输出：

REPOSITORY                                               TAG                         IMAGE ID       CREATED        SIZE
qcom-6.6.65-qli.1.4-ver.1.1\_22.04                        latest                      8fcea388d8ca   2 days ago     1.47GB
2. 附加容器：

# Run the following commands outside the Docker container
        cd <workspace_path>/qcom-download-utils/qcom-6.6.65-QLI.1.4-Ver.1.1
        
        # Run the following commands inside the base image build location
        bash
        docker run -it -v "${HOME}/.gitconfig":"/home/${USER}/.gitconfig" -v "${HOME}/.netrc":"/home/${USER}/.netrc" -v $(pwd):$(pwd) -w $(pwd) qcom-6.6.65-qli.1.4-ver.1.1_22.04 /bin/bash
        
        # Example
        WORKSPACE=<workspace_path>/qcom-download-utils/qcom-6.6.65-QLI.1.4-Ver.1.1
        Copy to clipboard
3. 搭建编译环境：

# cd <release directory>
        MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=<override> source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

有关 `<machine>` 和 `<override>` 的不同组合，请参阅[发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/)。
4. 编译软件镜像：

bitbake qcom-multimedia-image
        Copy to clipboard

Note

在刷写镜像之前关闭 Docker。

### 刷写

要将软件镜像刷写到设备，请参阅[刷写软件镜像](https://docs.qualcomm.com/doc/80-70018-254Y/topic/flash_images.html#flash-images)。

Last Published: May 07, 2025

[Previous Topic
使用 GitHub 编译（未注册用户）](https://docs.qualcomm.com/bundle/publicresource/80-70018-254Y/topics/github_workflow_unregistered_users.md) [Next Topic
使用固件和附加组件的 GitHub 编译](https://docs.qualcomm.com/bundle/publicresource/80-70018-254Y/topics/build_addn_info.md)

Source: [https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html](https://docs.qualcomm.com/doc/80-70018-254Y/topic/build_from_source_github_intro.html)