# 使用 GitHub 编译

使用详细的指令来同步和编译 Qualcomm Yocto Dockerfile 的 QIRP SDK 的层，使用独立命令或 Dockerfile。

**前提条件：**

- 确保您已根据 [搭建主机环境](https://docs.qualcomm.com/doc/80-70017-265Y/topic/setup-host-env.html#setup-host-env) 配置主机。

对于 QIRP SDK，可以使用以下两种方式进行编译：

- [使用独立命令编译](https://docs.qualcomm.com/doc/80-70017-265Y/topic/download-binaries.html#download-binaries)
- [使用 Dockerfile 编译](https://docs.qualcomm.com/doc/80-70017-265Y/topic/compile_3_2_3.html#compile-3-2-3)

## 使用独立命令编译

> 
> 
> 使用独立命令下载并编译 QIRP SDK 以及机器人镜像。支持 manifest 或 `git clone` 方法。
> 
> 
> **步骤：**
> 
> 1. 使用 manifest 或 `git clone` 下载 Qualcomm Yocto 和 QIRP SDK 的层。
> 
>     - **使用 manifest 下载**：通过运行以下命令下载 QIRP SDK 的层。
> 
> 
> Note
> 
> 
> 请参阅 [Qualcomm^®^ Linux Intelligent Robotics Product SDK (QIRP SDK) 2.0 发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-260)，获取最新的 `<robotics-release-manifest>`。
> 
> 
> cd <workspace>
>             repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <robotics-release-manifest>
>             repo sync -c -j8
>             Copy to clipboard
> 
> 
>         **示例：**
> 
> 
>         以下命令 下载 manifest 为 `qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1.xml` 的发布版本：
> 
> 
> repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1.xml
>             repo sync -c -j8
>             Copy to clipboard
>     - **使用** `git clone` **下载**：
> 
>         1. 按照 [Qualcomm Repo Manifest README 文件](https://github.com/quic-yocto/qcom-manifest/blob/qcom-linux-kirkstone/README.md)的说明，搭建主机环境并同步最新 Yocto Project BSP。
>         2. 根据下载的 Yocto 项目 BSP 的 `<workspace>` 目录下载 QIRP SDK 的各层。
> 
> 
> cd <workspace>
>                 git clone https://github.com/ros/meta-ros -b kirkstone layers/meta-ros && cd layers/meta-ros && git checkout b4db6314bae1c78498158e267200a9c15a739cad
>                 git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics
>                 git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-distro
>                 git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-sdk
>                 git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.52-QLI.1.3-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
>                 Copy to clipboard
> 
> 
> 
> 
> > 
> > 
> > **结果：** 以下层已下载。
> > 
> > 
> > meta-qcom
> >             meta-qcom-hwe
> >             meta-qcom-distro
> >             meta-ros
> >             meta-qcom-robotics
> >             meta-qcom-robotics-distro
> >             meta-qcom-robotics-sdk
> >             meta-qcom-qim-product-sdk
> >             Copy to clipboard
> 2. 搭建编译环境。
> 
>     - 如果使用 manifest 下载，执行这些命令：
> 
> 
> cd <workspace>
>             MACHINE=<Machine_name> DISTRO=<Distro_name>  QCOM_SELECTED_BSP=<Build_override> source setup-robotics-environment <Build_directory>
>             Copy to clipboard
>     - 如果使用 `git clone` 下载，执行这些命令：
> 
> 
> cd <workspace>
>             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_name> DISTRO=<Distro_name>  QCOM_SELECTED_BSP=<Build_override> source setup-robotics-environment <Build_directory>
>             Copy to clipboard
> 
> 
> 
> 
> 表：编译参数
> 
> 
>     | 参数 | RB3 Gen 2 机器视觉套件 | IQ-9 Beta 评估套件 |
>     | --- | --- | --- |
>     | `Machine_name` | `qcs6490-rb3gen2-vision-kit` | `qcs9100-ride-sx` |
>     | `Distro_name` | `qcom-robotics-ros2-humble` | `qcom-robotics-ros2-humble` |
>     | `Build_override` | `custom` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">base</span></code></p></li><br></ul> |
>     | `Build_directory` | `build-qcs6490-custom` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs9100-custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs9100-base</span></code></p></li><br></ul> |
> 
> 
> 
> Note
> 
> 
> 对于 IQ-9 Beta 评估套件，编译版本还支持 `base` 和 `custom` override 覆盖参数。默认 override 为 `custom`，可以在需要时覆盖为 `base`。以下示例设置了机器 `qcs9100-ride-sx`：的 `base` 编译 override 参数
> 
> 
> MACHINE=qcs9100-ride-sx DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=base source setup-robotics-environment build-qcs9100-base
>         Copy to clipboard
> 3. 编译机器人镜像和 QIRP SDK 文件。
> 
> 
> ../qirp-build qcom-robotics-full-image
>         Copy to clipboard
> 
> 
>     **结果：**
> 
> 
> Tab RB3 Gen2 机器视觉开发套件
> Tab IQ-9 Beta 评估套件
> 
> - QIRP SDK artifacts:
> 
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs6490-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs6490-rb3gen2-vision-kit/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> 
> 
>     - 机器人镜像：
> 
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
> >         Copy to clipboard
> 
> > 
> > 
> > **使用** `custom` **override 的示例**
> 
> 
>     - QIRP SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9100-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs9100-ride-sx/qirp-sdk_<version>.tar.gz
> >             Copy to clipboard
>     - 机器人镜像：
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9100-custom/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-image
> >             Copy to clipboard
> 
> 
> 
> 
> > 
> > 
> > **使用示例** `base` **override**
> 
> 
>     - QIRP SDK artifact:
> 
> 
> 
> > 
> > 
> > 由于 QCS9100 `base` 变体中标准 SDK 的编译问题而缺失。将在下一个版本中提供 QIRP SDK。
>     - 机器人镜像：
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9100-base/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-image
> >             Copy to clipboard

## 使用 Dockerfile 编译

> 
> 
> 使用 Dockerfile 编译 QIRP SDK 以及机器人镜像，并基于 Qualcomm Linux 镜像进行编译。
> 
> 
> **步骤：**
> 
> 1. 按照[使用 Dockerfile 编译](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/build_from_source_github_intro.html#build-with-dockerfile)下的步骤编译 Qualcomm Linux 镜像。
> 
>     1. 按照 [Ubuntu 主机设置](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/build_from_source_github_intro.html#ubuntu-host-setup-2)和[检查主机的配置](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/build_from_source_github_intro.html#check-the-host-machine-configuration)。
>     2. 按照[编译 BSP 镜像](https://docs.qualcomm.com/bundle/publicresource/topics/80-70017-254/build_from_source_github_intro.html#build-bsp-image-2)中的步骤操作。
> 2. 运行 `docker run` 命令。
> 
> 
> Note
> 
> 
> 在 Qualcomm Linux 编译位置内运行以下命令。
> 
> 
> cd <workspace_path>/qcom-download-utils/qcom-6.6.52-QLI.1.3-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.38-qli.1.2-ver.1.1_22.04 /bin/bash
>         Copy to clipboard
> 3. 根据 `<workspace>` 目录下载 QIRP SDK 的层。
> 
> 
> git clone https://github.com/ros/meta-ros -b kirkstone layers/meta-ros && cd layers/meta-ros && git checkout b4db6314bae1c78498158e267200a9c15a739cad
>         git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics
>         git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-distro
>         git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.52-QLI.1.3-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-sdk
>         git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.52-QLI.1.3-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
>         Copy to clipboard
> 4. 搭建编译环境。
> 
> 
> 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_name> DISTRO=<Distro_name>  QCOM_SELECTED_BSP=<Build_override> source setup-robotics-environment <Build_directory>
>         Copy to clipboard
> 
> 
> 
> 表：编译参数
> 
> 
>     | 参数 | RB3 Gen 2 机器视觉套件 | IQ-9 Beta 评估套件 |
>     | --- | --- | --- |
>     | `Machine_name` | `qcs6490-rb3gen2-vision-kit` | `qcs9100-ride-sx` |
>     | `Distro_name` | `qcom-robotics-ros2-humble` | `qcom-robotics-ros2-humble` |
>     | `Build_override` | `custom` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">base</span></code></p></li><br></ul> |
>     | `Build_directory` | `build-qcs6490-custom` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs9100-custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs9100-base</span></code></p></li><br></ul> |
> 5. 编译机器人镜像和 QIRP SDK 文件。
> 
> 
> ../qirp-build qcom-robotics-full-image
>         Copy to clipboard
> 
> 
>     **结果：**
> 
> 
> Tab RB3 Gen2 机器视觉开发套件
> Tab IQ-9 Beta 评估套件
> 
> - QIRP SDK artifact:
> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.52-QLI.1.3-Ver.1.1/build-qcs6490-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.52-QLI.1.3-Ver.1.1/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
>             Copy to clipboard
> 
> **使用** `custom` **override 的示例**
> 
>     - QIRP SDK artifact:
> 
> 
> 
> > 
> > 
> > <workspace>/qcom-download-utils/qcom-6.6.52-QLI.1.3-Ver.1.1/build-qcs9100-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs9100-ride-sx/qirp-sdk_<version>.tar.gz
> >             Copy to clipboard
>     - 机器人镜像：
> 
> 
> 
> > 
> > 
> > <workspace>/qcom-download-utils/qcom-6.6.52-QLI.1.3-Ver.1.1/build-qcs9100-custom/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-image
> >             Copy to clipboard
> 
> 
> 
> **使用示例** `base` **override**
> 
>     - QIRP SDK artifact:
> 
> 
>         由于 QCS9100 `base` 变体中标准 SDK 的编译问题而缺失。将在下一个版本中提供 QIRP SDK。
>     - 机器人镜像：
> 
> 
> <workspace>/qcom-download-utils/qcom-6.6.52-QLI.1.3-Ver.1.1/build-qcs9100-base/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-image
>             Copy to clipboard

Last Published: Jan 24, 2025

[Previous Topic
使用 QSC CLI 编译](https://docs.qualcomm.com/bundle/publicresource/80-70017-265Y/topics/using-qsc-cli_3_1.md) [Next Topic
使用 GitHub 编译（固件和附加功能）](https://docs.qualcomm.com/bundle/publicresource/80-70017-265Y/topics/using-detailed-instructions_3_2.md)