# 使用 GitHub 编译

Source: [https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html](https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html)

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

**前提条件：**

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

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

- [使用独立命令编译](https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html#download-binaries)
- [使用 Docker 文件编译](https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html#ID-task-d4319e392)

## 使用独立命令编译

Source: [https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html](https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html)

使用独立命令下载并编译 QIRP SDK 以及机器人镜像。支持 manifest 或 `git clone` 方法。

**步骤：**

1. 使用 manifest 或 `git clone` 下载 Qualcomm Yocto 和 QIRP SDK 的层。

    - **使用 manifest 下载**：通过运行以下命令下载 QIRP SDK 的层。
Note: 要获取最新 `<robotics-release-manifest>`，参见 [Qualcomm® Linux Intelligent Robotics Product SDK (QIRP SDK) 2.0 发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-260)。

            cd <workspace>
            repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <robotics-release-manifest>
            repo sync -c -j8Copy to clipboard

        **示例：**

        以下命令使用 manifest `qcom-6.6.38-QLI.1.2-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.38-QLI.1.2-Ver.1.1_robotics-product-sdk-1.1.xml
            repo sync -c -j8Copy 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 Project BSP 的 `<workspace>` 目录，下载 QIRP SDK 的各层。

                cd <workspace>
                git clone https://github.com/ros/meta-ros -b kirkstone
                layers/meta-ros
                git clone https://github.com/quic-yocto/meta-qcom-robotics.git layers/meta-qcom-robotics
                git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git layers/meta-qcom-robotics-distro
                git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git layers/meta-qcom-robotics-sdk
                git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk layers/meta-qcom-qim-product-sdkCopy 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-sdkCopy 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

Table : 编译参数

    | 参数 | RB3 Gen 2 视觉套件 | IQ-9100 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="ul" id="download-binaries__ul_em3_1h3_rcc"><br>                                        <li class="li"><code class="ph codeph">custom</code></li><br><br>                                        <li class="li"><code class="ph codeph">base</code></li><br><br>                                    </ul> |
    | `Build_directory` | `build-qcs6490-custom` | <ul class="ul" id="download-binaries__ul_fm3_1h3_rcc"><br>                                        <li class="li"><code class="ph codeph">build-qcs9100-custom</code></li><br><br>                                        <li class="li"><code class="ph codeph">build-qcs9100-base</code></li><br><br>                                    </ul> |

Note: 对于 IQ-9100 Beta 评估套件，编译还支持 `base` 和 `custom` 编译覆盖参数。默认覆盖参数为 `custom`，可以在需要时覆盖为 `base`。以下示例设置了机器 `qcs9100-ride-sx` 的 `base` 编译覆盖：

        MACHINE=qcs9100-ride-sx DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=base source setup-robotics-environment build-qcs9100-baseCopy to clipboard

有关各种机器和编译覆盖的组合，参见 [Qualcomm® Linux 发布说明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/)。
3. 编译机器人镜像和 QIRP SDK 文件。

        ../qirp-build qcom-robotics-full-imageCopy to clipboard

    **不同机器的结果：**

    - RB3 Gen2 视觉开发套件 (`qcs6490-rb3gen2-vision-kit`)
        - QIRP SDK 文件：

                <workspace>/build-qcs6490-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gzCopy to clipboard
        - 机器人镜像：

                <workspace>/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-imageCopy to clipboard
    - IQ-9100 Beta 评估套件 （`qcs9100-ride-sx`，以 `custom`编译覆盖为例）
        - QIRP SDK 文件：

                <workspace>/build-qcs9100-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gzCopy to clipboard
        - 机器人镜像：

                <workspace>/build-qcs9100-custom/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-imageCopy to clipboard

## 使用 Docker 文件编译

Source: [https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html](https://docs.qualcomm.com/doc/80-70015-265Y/topic/build-with-github-binaries.html)

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

### 关于此任务

**步骤：**

### 过程

1. 使用 [Docker](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/build_from_source_github_intro.html#build-with-dockerfile) 编译 Qualcomm Linux 镜像。
2. 运行 `docker run` 命令。
        
注释： 
            
在 Qualcomm Linux 编译位置内运行以下命令。

cd <workspace_path>/qcom-download-utils/qcom-6.6.38-QLI.1.2-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/bashCopy to clipboard
3. 根据 `<workspace>` 目录下载 QIRP SDK 的层。
        
git clone https://github.com/ros/meta-ros -b kirkstone
        layers/meta-ros
        git clone https://github.com/quic-yocto/meta-qcom-robotics.git layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk 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

Table : 编译参数

    | 参数 | RB3 Gen 2 视觉套件 | IQ-9100 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="ul" id="ID-task-d4319e392__d7e190"><br>                                        <li class="li"><code class="ph codeph">custom</code></li><br><br>                                        <li class="li"><code class="ph codeph">base</code></li><br><br>                                    </ul> |
    | `Build_directory` | `build-qcs6490-custom` | <ul class="ul" id="ID-task-d4319e392__d7e215"><br>                                        <li class="li"><code class="ph codeph">build-qcs9100-custom</code></li><br><br>                                        <li class="li"><code class="ph codeph">build-qcs9100-base</code></li><br><br>                                    </ul> |
5. 编译机器人镜像和 QIRP SDK 文件。
        
../qirp-build qcom-robotics-full-imageCopy to clipboard

**不同机器的结果：**

    - RB3 Gen2 视觉开发套件
        - QIRP SDK 文件： `<workspace>/qcom-download-utils/qcom-6.6.38-QLI.1.2-Ver.1.1/build-qcs6490-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz`
        - 机器人镜像： `<workspace>/qcom-download-utils/qcom-6.6.38-QLI.1.2-Ver.1.1/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image`
    - IQ-9100 Beta 评估套件 （以 `custom`编译覆盖为例）
        - QIRP SDK 文件： `<workspace>/qcom-download-utils/qcom-6.6.38-QLI.1.2-Ver.1.1/build-qcs9100-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz`
        - 机器人镜像： `<workspace>/qcom-download-utils/qcom-6.6.38-QLI.1.2-Ver.1.1/build-qcs9100-custom/tmp-glibc/deploy/images/qcs9100-ride-sx/qcom-robotics-full-image`

Last Published: Dec 05, 2024

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