# GitHub workflow for unregistered users

The following sections explain how to use GitHub and make a build using the prebuilt proprietary binaries/images.

Note

To know the hardware SoCs that are supported by this build method, see the table *Sync and build methods* in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).

## Host machine requirements

| Configuration | Configuration | Configuration | Tools | Permissions |
| --- | --- | --- | --- | --- |
| **Linux** | **Windows** | **Mac** | Tools | Permissions |
| x86 machine | x86 machine | x86/Arm^®^ machine | Git 1.8.3.1 or later versions | A `sudo` permission is required to run a few commands |
| Quad-core CPU, for example, Intel i7-2600 at 3.4 GHz<br>(equivalent or better) | 8-core CPU | 8-core CPU | Git 1.8.3.1 or later versions | A `sudo` permission is required to run a few commands |
| 300 GB free disk space (swap partition &gt; 32 GB) | 300 GB free space for the Windows Subsystem for Linux (WSL) | 300 GB free space for UTM | Python 3.10.2 or later versions | A `sudo` permission is required to run a few commands |
| 16 GB RAM | 8 GB RAM | 8 GB RAM | GCC 7.5 or later versions | A `sudo` permission is required to run a few commands |
| Ubuntu 22.04 | Microsoft Windows 11 | Apple^®^ macOS^®^ 14 | GNU Make 4.0 or later versions | A `sudo` permission is required to run a few commands |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |
|  |  |  |  |  |

Note

To set up a virtual machine (VM) running Ubuntu 22.04 on
Microsoft Windows or Apple Mac, see [Qualcomm Linux Virtual Machine
Setup Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-41/).
Code compilation on a VM is a slow process and may take a few hours.
Qualcomm recommends using an Ubuntu host machine for compilation.

## Build with standalone commands

### Ubuntu host setup

The Ubuntu host machine must be setup to ensure that the
required software tools are installed and configured for use.

1. Install the following packages to prepare your host environment for
Yocto build:

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
        Copy to clipboard
2. Set up the locales (if not set up already):

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

### Sync

This section uses the Repo tool installed in [Ubuntu host setup](https://docs.qualcomm.com/doc/80-70015-254/topic/github_workflow_unregistered_users.html#section-twd-1bv-xbc-vinayjk-07-02-24-2039-30-667) to download git repositories and additional attributes from the [Qualcomm manifest](https://github.com/quic-yocto/qcom-manifest). The Repo tool downloads the manifests using the `repo init` command.

The following table shows an example mapping of Yocto layers to the manifest release tags, and this mapping is used to download and build Qualcomm Linux.

Yocto layers mapped to manifest release tags

| Yocto layers | Manifest release tag | Reference distribution (`DISTRO`) |
| --- | --- | --- |
| <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br></ul> | BSP build: High-level OS and prebuilt firmware (GPS only)<br><br><br>`qcom-6.6.38-QLI.1.2-Ver.1.1.xml` | `qcom-wayland` |
| <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-qim-product-sdk</span></code></p></li><br></ul> | BSP build + QIMP SDK build:<br><br><br>`qcom-6.6.38-QLI.1.2-Ver.1.1_qim-product-sdk-1.1.2.xml` | `qcom-wayland` |
| <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-realtime</span></code></p></li><br></ul> | BSP build + Real-time kernel build:<br><br><br>`qcom-6.6.38-QLI.1.2-Ver.1.1_realtime-linux-1.0.xml` | `qcom-wayland` |
| <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-hwe</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-ros</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics-distro</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-robotics-sdk</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">meta-qcom-qim-product-sdk</span></code></p></li><br></ul> | BSP build + QIRP SDK build:<br><br><br>`qcom-6.6.38-QLI.1.2-Ver.1.1_robotics-product-sdk-1.1.xml` | `qcom-robotics-ros2-humble` |

Note

- Syntax for the manifest release tag:

    `qcom-<Linux LTS Kernel Version>-QLI.<version>-Ver.<release>.xml`

    For example, the manifest release tag `qcom-6.6.38-QLI.1.2-Ver.1.1.xml` denotes the following:

    - 6.6.38: Linux Kernel
    - QLI.1.2: Qualcomm Linux v1.2
    - 1.0: Milestone release
- Syntax for the additional productization manifest release tag:

    `qcom-<Linux LTS Kernel version>-QLI.<version>-Ver.<release>_<product/customization>-<release>.xml`

    For example, the additional productization manifest release tag `qcom-6.6.38-QLI.1.2-Ver.1.1_qim-product-sdk-1.1.2.xml` denotes the following:

    - 6.6.38: Linux Kernel
    - QLI.1.2: Qualcomm Linux v1.2
    - qim-product-sdk-1.1.1: QIMP SDK release on top of QLI.1.2

        Other product/customization examples:

        - *realtime-linux-1.0*
        - *robotics-product-sdk-1.1*
    - 1.0: Milestone release
    - 1.1.1: Patch release associated with the milestone release
- For more information on the Yocto layers, see [Qualcomm Linux metadata layers and descriptions](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-27/platform_software_features.html#qualcomm-linux-metadata-layers-overview).

### Build BSP image

BSP image build contains software components for Qualcomm device support and value-added software features applicable to Qualcomm SoCs. It includes a reference distribution configuration for Qualcomm products.

For more details, see [Qualcomm Linux metadata layers](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-27/platform_software_features.html#qualcomm-linux-metadata-layers-overview).

1. Download Qualcomm Yocto and the supporting layers:

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

For the latest `<manifest release tag>`, see the section *Build-Critical Release Tags* in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
2. Set up the build environment:

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=<override> source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
3. Build the software image:

Note

For supported image recipes, see [Image recipes supported in the GitHub workflow](https://docs.qualcomm.com/doc/80-70015-254/topic/how_to.html#section-x3c-n5l-zbc-vinayjk-07-08-24-1744-58-455).

bitbake <image recipe>
        # Example, bitbake qcom-multimedia-image
        Copy to clipboard

    After a successful build, check that the `system.img` file is in the `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` directory:

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### Build QIMP SDK image

The Qualcomm® Intelligent Multimedia Product (QIMP) SDK is a collection of four standalone function SDKs, namely, Qualcomm® Intelligent Multimedia SDK (IM SDK), Qualcomm® Neural Processing SDK, Qualcomm® AI Engine direct SDK, and the TensorFlow Lite runtime. It also includes reference applications that you can use to develop use cases.

For more details, see [QIMP SDK Quick Start Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-51).

1. Download Qualcomm Yocto and the supporting layers:

Note

    - The `<manifest release tag>` for the QIMP SDK build is the same as the BSP build. Clone the QIMP SDK layer on top of the BSP build.
    - For the latest `<manifest release tag>`, see the section *Build-Critical Release Tags* in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        repo sync
        Copy to clipboard
2. Clone the QIMP SDK layer into the workspace:

git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b <meta-qcom-qim-product-sdk release tag> layers/meta-qcom-qim-product-sdk
        # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1_qim-product-sdk-1.1.2
        Copy to clipboard

    To build a QIMP SDK layer, the following export is required:

export EXTRALAYERS="meta-qcom-qim-product-sdk"
        Copy to clipboard
3. Set up the build environment:

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

To know the `MACHINE` parameter values, see [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
4. Build the software image:

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard

    After a successful build, check that the `system.img` file is in the `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` directory:

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### Build QIRP SDK image

The Qualcomm® Intelligent Robotics Product (QIRP) SDK 2.0 is a collection of components that enable you to develop robotic features on Qualcomm platforms. This SDK is applicable to the Qualcomm Linux releases.

For more details, see [QIRP SDK 2.0 User Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-265).

1. Download Qualcomm Yocto and the supporting layers:

Note

The `<manifest release tag>` for QIRP SDK build is the same as the BSP build. Clone the QIRP SDK layers on top of the BSP build.

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

For the latest `<manifest release tag>`, see the section *Build-Critical Release Tags* in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
2. Download the QIRP SDK layers into the BSP build `<WORKSPACE DIR>` 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
3. 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> DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=<override> source setup-robotics-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # source setup-robotics-environment: Sets the environment, creates the build directory build-qcom-robotics-ros2-humble,
        # and enters into build-qcom-robotics-ros2-humble directory.
        Copy to clipboard

Note

For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
4. Build the robotics image and the QIRP SDK artifacts:

../qirp-build qcom-robotics-full-image
        Copy to clipboard

    After a successful build, check that the QIRP SDK build artifacts are at the following paths:

QIRP SDK artifacts: <WORKSPACE DIR>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz
        # system.img is present in the following path
        Robotics image: <WORKSPACE DIR>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
        Copy to clipboard

### Build real-time Linux image

The real-time layer provides recipes and configurations required to run the Linux kernel as a real-time kernel. The real-time kernel runs with preemption fully enabled through a configuration, `CONFIG_PREEMPT_RT=y`. This layer supports `linux-kernel-qcom-rt` recipe that fetches and builds the Linux kernel for the supported machine. This layer appends to kernel and the upstream `PREEMPT_RT` patches, based on the kernel version and enables real-time configurations.

For more details, see [Real-time kernel](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-3/features.html#real-time-%28rt%29-kernel-overview).

1. Download Qualcomm Yocto and the supporting layers:

Note

The `<manifest release tag>` for real-time Linux image is the same as the BSP build. Clone the real-time Linux on top of the BSP build.

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1.xml
        repo sync
        Copy to clipboard

Note

For the latest `<manifest release tag>`, see the section *Build-Critical Release Tags* in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
2. Clone the real-time Linux layer into the workspace:

git clone https://github.com/quic-yocto/meta-qcom-realtime -b <meta-qcom-realtime release tag> layers/meta-qcom-realtime
        # Example, <meta-qcom-realtime release tag> is qcom-6.6.38-QLI.1.2-Ver.1.1_realtime-linux-1.0
        Copy to clipboard

    To build a real-time layer, the following export is required:

export EXTRALAYERS="meta-qcom-realtime"
        Copy to clipboard
3. Set up the build environment:

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=<override> source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

Note

For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240929204440/).
4. Build the software image:

bitbake qcom-multimedia-image
        Copy to clipboard

    After a successful build, check that the `system.img` file is in the `<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` directory:

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard

### Flash

To flash the software images to the device, see [Flash images](https://docs.qualcomm.com/doc/80-70015-254/topic/flash_images.html).

Last Published: Feb 03, 2026

[Previous Topic
Build with QSC CLI](https://docs.qualcomm.com/bundle/publicresource/80-70015-254/topics/build_from_source_QSC_CLI.md) [Next Topic
GitHub workflow for registered users](https://docs.qualcomm.com/bundle/publicresource/80-70015-254/topics/build_from_source_github_intro.md)

Source: [https://docs.qualcomm.com/doc/80-70015-254/topic/github_workflow_unregistered_users.html](https://docs.qualcomm.com/doc/80-70015-254/topic/github_workflow_unregistered_users.html)