# 使用 Docker 编译

使用 Dockerfile 编译 QIR SDK 以及机器人镜像，并基于 Qualcomm Linux 镜像进行编译。

Warning

不建议重新编译 QIR SDK，因为编译过程对于非专业人士来说比较复杂。仅当您了解流程并有以下需求时，才编译 QIR SDK：

- 为没有预编译镜像的设备编译镜像，例如 Qualcomm^®^ IQ-8 Beta 评估套件。更多详细信息，参见 [支持的平台](https://docs.qualcomm.com/doc/80-70022-265Y/topic/introduction.html#section-amr-ck3-5bc)。
- 向 QIR SDK 添加新功能。
- 更改目标镜像的内容。
- 修复 QIR SDK 中的错误。
- 优化 QIR SDK 的性能。
- 更改某些组件的版本。

1. [设置主机](https://docs.qualcomm.com/doc/80-70022-265Y/topic/docker_workflow.html#section-host-machine-setup-docker)
2. [编译机器人镜像和 QIR SDK artifact](https://docs.qualcomm.com/doc/80-70022-265Y/topic/docker_workflow.html#section-build-robotics-image-and-qirp-sdk-artifacts-docker)

## 设置主机

**前提条件**

确保您的 Ubuntu 主机满足 [主机要求](https://docs.qualcomm.com/doc/80-70022-265Y/topic/qirp_sdk_build.html#section-host-machine-requirements) 中的要求，已设置完成，并已安装和配置必要的软件工具以供使用。

要设置主机以在 Docker 中编译 QIR SDK，请按照下列步骤操作：

1. 安装所需的软件包。

sudo apt-get install -y git
        Copy to clipboard
2. 克隆 `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
3. 检查您的主机是否配置正确并已安装 Docker。

bash utils/check_config.sh qcom-robotics-full-image
        bash docker/docker_setup.sh
        Copy to clipboard
4. 创建 Yocto Docker 镜像。

bash docker/docker_build.sh -f ./docker/dockerfiles/Dockerfile_22.04 -t qcom-6.6.97-qli.1.6-Ver.1.2.1_robotics-sdk-1.2_22.04
        Copy to clipboard

Note

- 如果您遇到 Docker 问题，请参阅 [Docker 问题排查](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-254/troubleshoot_sync_build_and_flash.html#docker)。
- 如果您在编译过程中遇到 `apt install` 错误，请检查是否使用了过时的 Ubuntu 22.04 镜像。在确保数据安全后，运行 `docker rmi ubuntu:22.04` 或通过其他方式更新镜像；然后重新运行上述命令。

## 编译机器人镜像和 QIR SDK artifact

使用 Dockerfile 编译机器人镜像和 QIR SDK artifact。

bash docker/docker_run.sh \
    -M <Machine_name> \
    --release="qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2" \
    --build-override="<Build_override>" \
    --alternate-repo="true"
    Copy to clipboard

**示例**

bash docker/docker_run.sh \
    -M qcs6490-rb3gen2-vision-kit \
    --release="qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2" \
    --build-override="custom" \
    --alternate-repo="true"
    Copy to clipboard

| **参数** | **Dragonwing RB3 Gen 2 机器视觉套件** | **Dragonwing IQ-9075 评估套件** | **IQ-8 Beta 评估套件** |
| --- | --- | --- | --- |
| `Machine_name` | `qcs6490-rb3gen2-vision-kit` | `qcs9075-iq-9075-evk` | `qcs8300-ride-sx` |
| `Build_override` | `custom` | `custom`<br><br><br>`base` | `custom`<br><br><br>`base` |

## 在 Docker 中调试

如果您熟悉 Yocto，可以使用交互式终端通过执行以下步骤在 Docker 中进行调试：

1. 运行上述命令在 Docker 环境中设置和编译，然后运行以下命令：

cd <workspace_path>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2
        bash
        docker run -it -v "${HOME}/.gitconfig":"/home/${USER}/.gitconfig" -v "${HOME}/.netrc":"/home/${USER}/.netrc" -v $(pwd):$(pwd) -w $(pwd) qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2_22.04 /bin/bash
        Copy to clipboard
2. 根据 [搭建编译环境](https://docs.qualcomm.com/doc/80-70022-265Y/topic/github_workflow.html#section-set-up-build-environment) 中的步骤设置环境变量并进行编译。

Note

- 基础版本适用于需要纯上游和开源软件协议栈且不需要 Qualcomm 专有软件和电源/性能附加软件的开发者。
- 自定义版本提供丰富的功能，包含 Qualcomm 的附加值，例如 SDK 和功耗性能改进。它适合那些在其产品中依赖 Qualcomm 增值软件和专有/下游软件的开发者。
- 有关更多详情，请参阅[软件概述](https://docs.qualcomm.com/bundle/publicresource/topics/80-70022-252/qualcomm-linux-sw-overview.html)。

**结果：**

Tab RB3 Gen 2 机器视觉开发套件
Tab IQ-9075 评估套件
Tab IQ-8 Beta 评估套件

- QIR SDK artifact：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs6490-rb3gen2-vision-kit_custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs6490-rb3gen2-vision-kit/qirp-sdk_<version>.tar.gz
>     Copy to clipboard

- 机器人镜像：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs6490-rb3gen2-vision-kit_custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
>     Copy to clipboard

> 
> 
> **使用** `custom` **override 的示例**

- QIR SDK artifact：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs9075-iq-9075-evk_custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs9075-iq-9075-evk/qirp-sdk_<version>.tar.gz
>         Copy to clipboard
- 机器人镜像：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs9075-iq-9075-evk_custom/tmp-glibc/deploy/images/qcs9075-iq-9075-evk/qcom-robotics-full-image
>         Copy to clipboard

> 
> 
> **使用** `base` **override 的示例**

- QIR SDK artifact

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs9075-iq-9075-evk_base/tmp-glibc/deploy/qirpsdk_artifacts/qcs9075-iq-9075-evk/qirp-sdk_<version>.tar.gz
>         Copy to clipboard
- 机器人镜像：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs9075-iq-9075-evk_base/tmp-glibc/deploy/images/qcs9075-iq-9075-evk/qcom-robotics-full-image
>         Copy to clipboard

**使用** `custom` **override 的示例**

- QIR SDK artifact：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs8300-ride-sx_custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs8300-ride-sx/qirp-sdk_<version>.tar.gz
>         Copy to clipboard
- 机器人镜像：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs8300-ride-sx_custom/tmp-glibc/deploy/images/qcs8300-ride-sx/qcom-robotics-full-image
>         Copy to clipboard

**使用** `base` **override 的示例**

- QIR SDK artifact：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs8300-ride-sx_base/tmp-glibc/deploy/qirpsdk_artifacts/qcs8300-ride-sx/qirp-sdk_<version>.tar.gz
>         Copy to clipboard
- 机器人镜像：

> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.97-QLI.1.6-Ver.1.2.1_robotics-sdk-1.2/build_qcs8300-ride-sx_base/tmp-glibc/deploy/images/qcs8300-ride-sx/qcom-robotics-full-image
>         Copy to clipboard

## 将机器人镜像刷写到设备

参阅[刷写机器人镜像](https://docs.qualcomm.com/doc/80-70022-265Y/topic/quick_start.html#flash-img-qs)，使用 [编译机器人镜像和 QIR SDK artifact](https://docs.qualcomm.com/doc/80-70022-265Y/topic/docker_workflow.html#section-build-robotics-image-and-qirp-sdk-artifacts-docker) 中生成的 `qcom-robotics-full-image` 将机器人镜像刷写到设备。

Last Published: Nov 11, 2025

[Previous Topic
使用 GitHub 工作流进行编译](https://docs.qualcomm.com/bundle/publicresource/80-70022-265Y/topics/github_workflow.md) [Next Topic
使用预编译的机器人 eSDK 编译机器人镜像](https://docs.qualcomm.com/bundle/publicresource/80-70022-265Y/topics/esdk_gen_image.md)