# Build with GitHub

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

Use the detailed instructions to sync and build the Qualcomm Yocto and QIRP SDK
        layers using standalone commands or Dockerfile.

**Prerequisites:**

- Ensure that you have set up the host according to [Set up the host environment](https://docs.qualcomm.com/doc/80-70015-265/topic/setup-host-env.html).

For QIRP SDK, you can use the following two methods to build:

- [Build with standalone commands](https://docs.qualcomm.com/doc/80-70015-265/topic/build-with-github-binaries.html#download-binaries)
- [Build with Dockerfile](https://docs.qualcomm.com/doc/80-70015-265/topic/build-with-github-binaries.html#ID-task-d4319e392)

## Build with standalone commands

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

Use standalone commands to download and build the QIRP SDK along with the robotics
        image. Supports manifest or `git clone` methods.

**Steps:**

1. Download the Qualcomm Yocto and QIRP SDK layers using either manifest or
                        `git clone`.

    - **Download with manifest**: download the layers for the QIRP SDK by
                        running the following commands.
Note: To get the latest
                                `<robotics-release-manifest>`, see the [Qualcomm® Linux Intelligent Robotics Product SDK (QIRP SDK) 2.0
                    Release Notes](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

        **Example:**

        The following
                            command downloads the release with 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
    - **Download with `git                            clone`**:
        1. Set up the host environment and sync the latest Yocto project BSP as
                                described in the [Qualcomm Repo Manifest README
                                    file](https://github.com/quic-yocto/qcom-manifest/blob/qcom-linux-kirkstone/README.md).
        2. Download the layers for the QIRP SDK based on the
                                    `<workspace>` directory of the downloaded
                                Yocto project
                                BSP.

                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

    **Results:** The following layers are downloaded.

        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. Set up the build environment.
    - If you use the **Download with manifest** method, execute these
                        commands:

            cd <workspace>
            MACHINE=<Machine_name> DISTRO=<Distro_name>  QCOM_SELECTED_BSP=<Build_override> source setup-robotics-environment <Build_directory>Copy to clipboard
    - If you use the **Download with `git clone`** method,
                        execute these
                        commands:

            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 : Build parameters

    | Parameter | RB3 Gen 2 Vision Kit | IQ-9100 Beta Evaluation Kit |
    | --- | --- | --- |
    | `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: For IQ-9100 Beta Evaluation Kit, build also
                    supports `base` and `custom` build overrides. The
                    default override is `custom` and you can override to
                        `base` when required. The following example sets the
                        `base` build override for the machine
                        `qcs9100-ride-sx`:

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

For
                    various combinations of machines and build overrides, see [Qualcomm® Linux Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
3. Build the robotics image and QIRP SDK
                        artifacts.

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

    **Results                        for different machines:**

    - RB3 Gen2 Vision Development Kit
                            (`qcs6490-rb3gen2-vision-kit`)
        - QIRP SDK artifacts:

                <workspace>/build-qcs6490-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gzCopy to clipboard
        - Robotics image:

                <workspace>/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-imageCopy to clipboard
    - IQ-9100 Beta Evaluation Kit (`qcs9100-ride-sx`, using the
                            `custom`build override as an example)
        - QIRP SDK artifacts:

                <workspace>/build-qcs9100-custom/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gzCopy to clipboard
        - Robotics image:

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

## Build with Dockerfile

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

Build the QIRP SDK along with the robotic image using the Dockerfile, building upon the
    Qualcomm Linux image.

### About this task

**Steps:**

### Procedure

1. Build the Qualcomm Linux image with [Docker](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-254/build_from_source_github_intro.html#build-with-dockerfile).
2. Run the `docker run` command.
        
Note: 
            
Run the following commands inside the Qualcomm Linux build location.

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. Download the layers for the QIRP SDK based on the `<workspace>`
          directory.
        
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. Set up the build environment.
        
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 : Build parameters

    | Parameter | RB3 Gen 2 Vision Kit | IQ-9100 Beta Evaluation Kit |
    | --- | --- | --- |
    | `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. Build the robotics image and QIRP SDK artifacts.
        
../qirp-build qcom-robotics-full-imageCopy to clipboard

**Results for different machines:**

    - RB3 Gen2 Vision Development Kit
        - QIRP SDK artifacts:
                    `<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`
        - Robotics image:
                    `<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 Evaluation Kit (using the `custom`build override as an
                example)
        - QIRP SDK artifacts:
                    `<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`
        - Robotics image:
                    `<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: Oct 15, 2024

[Previous Topic
Build with QSC-CLI](https://docs.qualcomm.com/bundle/publicresource/80-70015-265/topics/using-qsc-cli_3_1.md) [Next Topic
Build with GitHub (firmware and extras)](https://docs.qualcomm.com/bundle/publicresource/80-70015-265/topics/using-detailed-instructions_3_2.md)