# Build with GitHub workflow

Follow the detailed instructions to synchronize the Qualcomm Yocto and QIR SDK layers, and build the robotics image along with the QIR SDK artifacts.

1. [Set up the host machine for build](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-host-machine-setup)
2. [Sync the latest Yocto project](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-sync-yocto-project)
3. [Sync the Qualcomm Linux firmware (optional)](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-sync-qualcomm-linux-firmware)
4. [Set up the build environment](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-set-up-build-environment)
5. [Build the robotics image and QIR SDK artifacts](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-build-robotics-image-and-qirp-sdk-artifacts)

## Set up the host machine for build

Prepare your host computer for the build and install operations, ensuring it meets the [Host computer requirements](https://docs.qualcomm.com/doc/80-70020-265/topic/qirp_sdk_build.html#section-host-machine-requirements).

1. Install the required packages.

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++ libgtest-dev
        Copy to clipboard
2. Set up the locales.

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
3. Update git configurations.

# Check if your identity is configured in .gitconfig
        git config --get user.email
        git config --get user.name
        
        # Run the following commands if you do not 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
        Copy to clipboard
4. Change the `/bin/sh` symlink to point to `/bin/bash` by default.

sudo ln -sf /bin/bash /bin/sh
        Copy to clipboard
5. Install the repo tool according to steps in [install-the-repo-utility](https://github.com/qualcomm-linux/qcom-manifest/blob/qcom-linux-scarthgap/README.md#install-the-repo-utility).

## Sync the Qualcomm Yocto and QIR SDK layers

Download the Qualcomm Yocto and QIR SDK layers using `robotics-release-manifest`.

Note

To get the `robotics-release-manifest`, see [Qualcomm^®^ Intelligent Robotics Product SDK (QIR SDK) 2.0 Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-260).

cd <workspace>
    repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m qcom-6.6.90-QLI.1.5-Ver.1.1_robotics-product-sdk-1.1.xml
    repo sync -c -j8
    Copy to clipboard

When the sync is complete, run `tree -L 2 <workspace>`. You can see the following output:

> 
> 
> (shell) tree -L 2
> 
> 
> .
> 
> 
> ├── layers
> 
> 
> │   ├── meta-openembedded
> 
> 
> │   ├── meta-qcom
> 
> 
> │   ├── meta-qcom-distro
> 
> 
> │   ├── meta-qcom-hwe
> 
> 
> │   ├── meta-qcom-qim-product-sdk
> 
> 
> │   ├── meta-qcom-robotics
> 
> 
> │   ├── meta-qcom-robotics-distro
> 
> 
> │   ├── meta-qcom-robotics-sdk
> 
> 
> │   ├── meta-ros
> 
> 
> │   ├── meta-security
> 
> 
> │   ├── meta-selinux
> 
> 
> │   ├── meta-tensorflow
> 
> 
> │   ├── meta-updater
> 
> 
> │   ├── meta-virtualization
> 
> 
> │   └── poky
> 
> 
> ├── qirp-build
> 
> 
> ├── setup-environment -&gt; layers/meta-qcom-distro/set\_bb\_env.sh
> 
> 
> └── setup-robotics-environment -&gt; layers/meta-qcom-robotics-distro/set\_bb\_env.sh
> 
> 
> 16 directories, 3 files

## Sync the Qualcomm® Linux firmware (optional)

<details class="sd-sphinx-override sd-dropdown sd-card sd-mb-3">
<summary class="sd-summary-title sd-card-header">
Show me the content<div class="sd-summary-down docutils">
<span class="svg-1 sd-octicon sd-octicon-chevron-down"><svg version="1.1" width="1.5em" height="1.5em" class="sd-octicon sd-octicon-chevron-down" viewbox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M5.22 8.72a.75.75 0 000 1.06l6.25 6.25a.75.75 0 001.06 0l6.25-6.25a.75.75 0 00-1.06-1.06L12 14.44 6.28 8.72a.75.75 0 00-1.06 0z"></path></svg></span></div>
<div class="sd-summary-up docutils">
<span class="svg-2 sd-octicon sd-octicon-chevron-up"><svg version="1.1" width="1.5em" height="1.5em" class="sd-octicon sd-octicon-chevron-up" viewbox="0 0 24 24" aria-hidden="true"><path fill-rule="evenodd" d="M18.78 15.28a.75.75 0 000-1.06l-6.25-6.25a.75.75 0 00-1.06 0l-6.25 6.25a.75.75 0 101.06 1.06L12 9.56l5.72 5.72a.75.75 0 001.06 0z"></path></svg></span></div>
</summary><div class="sd-summary-content sd-card-body docutils">
<div class="admonition warning">
<p class="admonition-title">Warning</p><ul class="simple">
<li><p class="sd-card-text">This information is intended for authorized users. Skip this section if you are not authorized.</p></li>
<li><p class="sd-card-text">This information is optional and will not affect your build of the QIR SDK.</p></li>
<li><p class="sd-card-text">This information includes Qualcomm's proprietary firmware, such as <code class="docutils literal notranslate"><span class="pre">AOP</span></code> firmware, <code class="docutils literal notranslate"><span class="pre">BOOT</span></code> firmware, and <code class="docutils literal notranslate"><span class="pre">DSP</span></code> firmware.</p></li>
<li><p class="sd-card-text">This information includes Qualcomm's proprietary sample applications, such as <code class="docutils literal notranslate"><span class="pre">Follow</span> <span class="pre">Me</span></code>.</p></li>
</ul>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p class="sd-card-text">For information about access levels, including <code class="docutils literal notranslate"><span class="pre">public</span></code> and <code class="docutils literal notranslate"><span class="pre">authorized</span></code>, see <a href="https://www.qualcomm.com/support/working-with-qualcomm" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://www.qualcomm.com/support/working-with-qualcomm')">Working with Qualcomm</a>.</p>
</div><ol class="arabic">
<li><p class="sd-card-text">Follow the instructions in <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#install-qsc-cli" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#install-qsc-cli')">Qualcomm Linux Build Guide</a> under “​Install QSC CLI”​ and ​“Set up the Ubuntu host computer”​​ to obtain authorization and configure the environment.</p></li>
<li><p class="sd-card-text">Sync the Qualcomm Linux firmware with the steps in <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#sync-firmware" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#sync-firmware')">Qualcomm Linux Build Guide: Sync firmware</a>, using the <code class="docutils literal notranslate"><span class="pre">firmware</span> <span class="pre">release</span> <span class="pre">tag</span></code> in <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-260" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-260')">Qualcomm<sup>®</sup> Intelligent Robotics Product SDK (QIR SDK) 2.0 Release Notes</a>. In most cases, you only need to run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>git clone -b r1.0_00095.0 --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk.git
</code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div>
</div>
<p class="sd-card-text">If you need other firmware versions, see the provided link for configuration.</p>
</li>
<li><p class="sd-card-text">Build the Qualcomm Linux firmware with the steps in <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#build-firmware" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_addn_info.html#build-firmware')">Qualcomm Linux Build Guide: Build firmware</a>.</p>
<p class="sd-card-text"><img alt="ico-bd-fw" style="width: 240.0px; height: 44.800000000000004px;" aria-label="ico-bd-fw" src="data:image/png;base64,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"></p>
<p class="sd-card-text">For the preceding build, the firmware prebuild is successful if the following zip files appear:</p>
<blockquote>
<div><table class="docutils align-default" id="id1">
<caption><span class="caption-text"><strong>Firmware files</strong></span></caption>
<thead>
<tr class="row-odd"><th class="head"><p class="sd-card-text">Development kit</p></th>
<th class="head"><p class="sd-card-text">File path</p></th>
<th class="head"><p class="sd-card-text">Firmware files</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p class="sd-card-text">Qualcomm Dragonwing<sup>TM</sup> RB3 Gen 2 Vision Development Kit</p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">&lt;FIRMWARE_ROOT&gt;/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem/QCM6490.LE.1.0/common/build/ufs/bin</span></code></p></td>
<td><ul class="simple">
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCM6490_bootbinaries.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCM6490_dspso.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCM6490_fw.zip</span></code></p></li>
</ul>
</td>
</tr>
<tr class="row-odd"><td><p class="sd-card-text">Qualcomm Dragonwing<sup>TM</sup> IQ-9075 Evaluation Kit</p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">&lt;FIRMWARE_ROOT&gt;/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/build/ufs/bin</span></code></p></td>
<td><ul class="simple">
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS9100_bootbinaries.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS9100_dspso.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS9100_fw.zip</span></code></p></li>
</ul>
</td>
</tr>
<tr class="row-even"><td><p class="sd-card-text">IQ-8 Beta Evaluation Kit</p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">&lt;FIRMWARE_ROOT&gt;/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/build/ufs/bin</span></code></p></td>
<td><ul class="simple">
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS8300_bootbinaries.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS8300_dspso.zip</span></code></p></li>
<li><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS8300_fw.zip</span></code></p></li>
</ul>
</td>
</tr>
</tbody>
</table>
</div></blockquote>
</li>
<li><p class="sd-card-text">Fetch the <code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics-extras</span></code> and <code class="docutils literal notranslate"><span class="pre">meta-qcom-extras</span></code> layers.</p>
<blockquote>
<div><div class="admonition note">
<p class="admonition-title">Note</p><ul class="simple">
<li><p class="sd-card-text">The <code class="docutils literal notranslate"><span class="pre">-b</span></code> parameter indicates the <code class="docutils literal notranslate"><span class="pre">&lt;meta-qcom-robotics-extras-release-tag&gt;</span></code>. To get the <code class="docutils literal notranslate"><span class="pre">&lt;meta-qcom-robotics-extras-release-tag&gt;</span></code>, see <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-260" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-260')">Qualcomm<sup>®</sup> Intelligent Robotics Product SDK (QIR SDK) 2.0 Release Notes</a>. For example, <code class="docutils literal notranslate"><span class="pre">r1.0_00097.0</span></code>.</p></li>
<li><p class="sd-card-text">To get the <code class="docutils literal notranslate"><span class="pre">&lt;product&gt;</span></code> value, see the following table.</p></li>
</ul>
</div>
<table class="longtable docutils align-default" id="id2">
<caption><span class="caption-text"><strong>Table:</strong> <code class="docutils literal notranslate"><span class="pre">product</span></code> <strong>value for extra layers</strong></span></caption>
<thead>
<tr class="row-odd"><th class="head"><p class="sd-card-text">Parameter</p></th>
<th class="head"><p class="sd-card-text">RB3 Gen 2 Vision Development Kit</p></th>
<th class="head"><p class="sd-card-text">IQ-9075 Evaluation Kit</p></th>
<th class="head"><p class="sd-card-text">IQ-8 Beta Evaluation Kit</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">product</span></code></p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCM6490.LE.1.0</span></code></p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS9100.LE.1.0</span></code></p></td>
<td><p class="sd-card-text"><code class="docutils literal notranslate"><span class="pre">QCS8300.LE.1.0</span></code></p></td>
</tr>
</tbody>
</table>
<div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>git clone -b r1.0_00097.0 --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git
mkdir -p layers/meta-qcom-robotics-extras
mkdir -p layers/meta-qcom-extras
cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/&lt;product&gt;/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/&lt;product&gt;/common/config/meta-qcom-robotics-extras/* layers/meta-qcom-robotics-extras/
</code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div>
</div>
</div></blockquote>
</li>
<li><p class="sd-card-text">Configure the firmware variables.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>cd &lt;workspace&gt;
export CUST_ID=&quot;213195&quot;
export FWZIP_PATH=&quot;&lt;FIRMWARE_ROOT&gt;/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem/&lt;product&gt;/common/build/ufs/bin&quot;
</code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div>
</div>
</li>
<li><p class="sd-card-text">Set up the build environment with the steps in <a href="https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-set-up-build-environment"><span class="std std-ref">Set up the build environment</span></a>,</p></li>
<li><p class="sd-card-text">Configure the <code class="docutils literal notranslate"><span class="pre">EXTRALAYERS</span></code> variable to add firmware layers to the build.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre class="pre codeblock"><code>cat &gt;&gt; conf/bblayers.conf &lt;&lt;EOF
EXTRALAYERS = &quot; \\
\${WORKSPACE}/layers/meta-qcom-robotics-extras \\
\${WORKSPACE}/layers/meta-qcom-extras \\
&quot;
EOF
</code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div>
</div>
</li>
<li><p class="sd-card-text">Run the build commands in <a href="https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-build-robotics-image-and-qirp-sdk-artifacts"><span class="std std-ref">Build the robotics image and QIR SDK artifacts</span></a>.</p></li>
</ol>
</div>
</details>

## Set up the build environment

Run the following command to set up the build environment:

> 
> 
> cd <workspace>
>     MACHINE=<Machine_name> DISTRO=<Distro_name> QCOM_SELECTED_BSP=<Build_override> source setup-robotics-environment <Build_directory>
>     Copy to clipboard
> 
> 
> Note
> 
> 
> If you are building the QIR SDK on the Ubuntu Server VM of an Arm64 Mac, run the following setup command:
> 
> 
> The Arm64 Host ​only supports​​ the `custom` build variant.
> 
> 
> MACHINE=<Machine_name> DISTRO=<Distro_name>  SDKMACHINE=aarch64 QCOM_SELECTED_BSP=custom source setup-robotics-environment <Build_directory>
>     Copy to clipboard

> 
> 
> Table: Build parameters
> 
> 
> | **Parameter** | **Qualcomm Dragonwing™ RB3 Gen 2 Vision Kit** | **Qualcomm Dragonwing™ IQ-9 Beta Evaluation Kit** | **IQ-8 Beta Evaluation Kit** |
> | --- | --- | --- | --- |
> | **Machine\_name** | `qcs6490-rb3gen2-vision-kit` | `qcs9075-iq-9075-evk` | `qcs8300-ride-sx` |
> | **Distro\_name** | `qcom-robotics-ros2-jazzy` | `qcom-robotics-ros2-jazzy` | `qcom-robotics-ros2-jazzy` |
> | **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> | <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-qcs9075-custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs9075-base</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs8300-custom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">build-qcs8300-base</span></code></p></li><br></ul> |
> 
> 
> 
> Note
> 
> - The Base version is intended for developers who want a purely upstream and open-source software stack without Qualcomm proprietary software and power/performance value adds.
> - The Custom version provides a richer set of functionalities and includes Qualcomm’s value adds like SDKs and power performance improvements. It's suited for developers who rely on Qualcomm’s value adds and proprietary/downstream software in their products.
> - For more details, see [Software overview](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-252/qualcomm-linux-sw-overview.html).

## Build the robotics image and QIR SDK artifacts

Run the following command to build the QIR SDK:

> 
> 
> cd <workspace>
>     ../qirp-build qcom-robotics-full-image
>     Copy to clipboard
> 
> 
> Note
> 
> 
> This command takes a long time to run. Depending on the network and machine performance, it may take 3–5 hours.
> 
> 
> **Results:**
> 
> 
> Tab RB3 Gen 2 Vision Development Kit
> Tab IQ-9075 Evaluation Kit
> Tab IQ-8 Beta Evaluation Kit
> 
> - QIR SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs6490-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs6490-rb3gen2-vision-kit/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> - Robotics image:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs6490-custom/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
> >         Copy to clipboard
> 
> **Example using** `custom` **build override**
> 
> - QIR SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9075-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs9075-iq-9075-evk/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> - Robotics image:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9075-custom/tmp-glibc/deploy/images/qcs9075-iq-9075-evk/qcom-robotics-full-image
> >         Copy to clipboard
> 
> 
> 
> **Example using** `base` **build override**
> 
> - QIR SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9075-base/tmp-glibc/deploy/qirpsdk_artifacts/qcs9075-iq-9075-evk/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> - Robotics image:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs9075-base/tmp-glibc/deploy/images/qcs9075-iq-9075-evk/qcom-robotics-full-image
> >         Copy to clipboard
> 
> **Example using** `custom` **build override**
> 
> - QIR SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs8300-custom/tmp-glibc/deploy/qirpsdk_artifacts/qcs8300-ride-sx/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> - Robotics image:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs8300-custom/tmp-glibc/deploy/images/qcs8300-ride-sx/qcom-robotics-full-image
> >         Copy to clipboard
> 
> 
> 
> **Example using** `base` **build override**
> 
> - QIR SDK artifacts:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs8300-base/tmp-glibc/deploy/qirpsdk_artifacts/qcs8300-ride-sx/qirp-sdk_<version>.tar.gz
> >         Copy to clipboard
> - Robotics image:
> 
> 
> 
> > 
> > 
> > <workspace>/build-qcs8300-base/tmp-glibc/deploy/images/qcs8300-ride-sx/qcom-robotics-full-image
> >         Copy to clipboard

## Flash the robotics image to devices

To flash the robotics image to the device, see [Flash the robotics image](https://docs.qualcomm.com/doc/80-70020-265/topic/flash_the_robotics_image.html#flash-and-install), using the `qcom-robotics-full-image` generated in [Build the robotics image and QIR SDK artifacts](https://docs.qualcomm.com/doc/80-70020-265/topic/github_workflow.html#section-build-robotics-image-and-qirp-sdk-artifacts).

Last Published: Oct 10, 2025

[Previous Topic
Build with QSC-CLI](https://docs.qualcomm.com/bundle/publicresource/80-70020-265/topics/qsc_cli.md) [Next Topic
Build with Docker](https://docs.qualcomm.com/bundle/publicresource/80-70020-265/topics/docker_workflow.md)