# Build with GitHub for registered users

Create a build using the prebuilt proprietary binaries/images available on GitHub.

## Host computer requirements

- Configuration

    - x86 machine
    - Quad-core CPU, for example, Intel i7-2600 at 3.4 GHz (equivalent or better)
    - 300 GB free disk space (swap partition &gt; 32 GB)
    - 16 GB RAM
    - Ubuntu 22.04
- Tools

    - Git 1.8.3.1 or later versions
    - Tar 1.28 or later versions
    - Python 3.10.2 or later versions
    - GCC 8.0 or later versions
    - GNU Make 4.0 or later versions
- Permissions

    - A `sudo` permission is required to run a few commands

Note

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

## Install QSC CLI

To register your Qualcomm email ID, go to [Qualcomm support page](https://www.qualcomm.com/support/working-with-qualcomm).

1. Install curl (if not installed already):

sudo apt install curl
        Copy to clipboard
2. Download the Debian package for `qsc-cli`:

cd <workspace_path>
        # For x86
        curl -L https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/Debian/latest.deb -o qsc_installer.deb
        # For ARM64
        curl -L https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/ARM64/Debian/latest.deb -o qsc_installer.deb
        Copy to clipboard
3. Install the `qsc-cli` Debian package:

sudo apt update
        sudo apt install ./qsc_installer.deb
        Copy to clipboard
4. Sign in to `qsc-cli` using your registered email ID:

qsc-cli login -u <username>
        Copy to clipboard

For more information about `qsc-cli`, see [How to Sync](https://docs.qualcomm.com/doc/80-70029-254/topic/how_to.html#howto-sync).

## Workflow options

The two workflows for registered users to set up, sync, and build Qualcomm Linux with GitHub are described in the following table:

| ![../../_images/Updated-Icons_Text_50-05.png](data:image/png;base64,UklGRp4DAABXRUJQVlA4TJEDAAAv8kAPEJDgtpEkSfz/szsdR3X3IPcEIqTUtiRIUkgICSEhJYSEgQUbJlwYsGHChQkHJhyYsCSEhJAQDp4Dt20cSdnrTc7MNtwPyL9ixfd1LwyFfWk/l4JpPCrjTvgFpO+2vIC/OyEBulaiCrgTgHzg5L0X3ltjeL3GdeGANm4L02e57dPGWa77Fl8At8UHgLztx86F3vdjkl73Y76+9NZHfT7eKP9vCkcp/2565TeR9MqnM/8DIwG6R90Kv4CXb8vftf4yMPCsOLlT+XnyZ5j2Ibcq6uO7LR9K/lUuKhzHsd6+5zeEMcEFez/sI4E/0J0dZjkekGFF34YFaz5gFm8fYRs18BdjwVrhAaTgpgOAEaLAfwxUnsBCnMD8pyHh5tyTNiEEPwgJePJrJGD8LCi6Fv0sRJeQKrg/7ApwupVLaNhCnFE3LNcRudnhgp0tq0UTZjmOGfR6DaFoELLzdS2jovq4yl4am2cL98RlyP2gOyWxzTtswDWLX92OESJSwD6qEnZsWfXLtjcaJCoeHSoW2frW0WbTNF4bu0yGi7l0GXI/6o4HUW730A0pi/dXJiCF6QAJtOCWhqakN2olGjjgvkxm38hrG4aIFqUfa9kYS+E5eWB7hALYzmXI/ag7GoIxU8l+WF0dT7B8up3uZkGzPKE3B6NOojAIs9G3TD5oWqAtC2N1rLLvhGoIsnIZcj/pDiujOubklgQ0Dfqxl4kVEi6s1miQSFphBTH7cuOUBg+mvcPGuHdxYZOVy5B73Z28UoLT3ZEQIIJ0IIGTiCrRGdm9hFMxoaqJPfrWSmhds0KC06WxUaagBYesXIbcT7pDeG57jM2i4FQ80Ik70hoNEskkPPpClGJFRrVbbjUYv411yrEhuQtSAFiBOnZBww7a7TjVI63RIJEMwp7ZdxpdA7ALHFMGz9sYcj/oTs2pIQom4LI40g69I0QZcaGM2InMdEaDRFmHWxO18JWnRUJ7SmBR5ji1ADkZv40h95PuUDdWXdVAbADKdTVg5YZYaUWYBqSroWY6o1nCAaSHMAUoCYBvfLVrS3SBBY6iAuBSQlrj9zHkftCdPHkRLjTtttESp5RJSA5IhHABaGHlUJkNndEswSSOH3NiR2uQpS+Up33RbQPPxhP2zmXI/ag7pmoCtVtqzlmVYEaOAuOcvpTCq/qRwWih1wi/Uk2+rdA28NaY0qKxcJlzP+2OcRL/4S4CAA==) | ![../../_images/Updated-Icons_Text_50-04.png](data:image/png;base64,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) |
| --- | --- |
| Build public Qualcomm Yocto layers with standalone commands. | Build public Qualcomm Yocto layers with Dockerfile. |
| <br>**[Build with standalone commands](https://docs.qualcomm.com/doc/80-70029-254/topic/build_from_source_github_intro.html#build-from-source-github)** | <br>**[Build with Dockerfile](https://docs.qualcomm.com/doc/80-70029-254/topic/build_from_source_github_intro.html#build-with-dockerfile)** |

## Build with standalone commands

### Set up the Ubuntu host computer

Install and configure the required software tools on the Ubuntu host computer.

1. Install the following packages to prepare your host environment for the 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 g++ libacl1
        Copy to clipboard
2. Add your Qualcomm Log in ID with Personalized Access Token (PAT) to the `~/.netrc` file in your home directory:

# Log in to qsc-cli to generate PAT
        qsc-cli login -u <username>
        # Run the following command to generate PAT
        qsc-cli show-access-token
        # This command gives output as shown in the following note
        # The last line in this output is the token, which can be used to access
        # Qualcomm Proprietary repositories. This token expires in two weeks.
        Copy to clipboard

Note

user@hostname:/local/mnt/workspace$ qsc-cli show-access-token

[Info]: Starting qsc-cli version 0.0.0.9

**5LThNlklb55mMVLB5C2KqUGU2jCF**
3. Use your preferred text editor to edit the `~/.netrc` file and add the following entries. Create the `~/.netrc` file if it doesn’t exist.

machine chipmaster2.qti.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        
        machine qpm-git.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        Copy to clipboard
4. 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
5. 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 don't 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
        
        # Add the following git configurations to follow remote redirects from http-alternates files or alternates
        git config --global http.https://chipmaster2.qti.qualcomm.com.followRedirects true
        git config --global http.https://qpm-git.qualcomm.com.followRedirects true
        Copy to clipboard

### Sync

Use the Repo tool that was installed during the [Ubuntu host setup](https://docs.qualcomm.com/doc/80-70029-254/topic/build_from_source_github_intro.html#ubuntu-host-setup) to download a list of 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 the Yocto layers to the manifest release tags. Use this mapping to download and build Qualcomm Linux:

> 
> 
> Mapping Yocto layers 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.119-QLI.1.8-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 + Qualcomm IM SDK build:<br><br><br>`qcom-6.6.119-QLI.1.8-Ver.1.1_qim-product-sdk-2.3.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-realtime</span></code></p></li><br></ul> | BSP build + Real-time kernel build:<br><br><br>`qcom-6.6.119-QLI.1.8-Ver.1.1_realtime-linux-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-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 + QIR SDK build:<br><br><br>`qcom-6.6.119-QLI.1.8-Ver.1.1_robotics-sdk-1.1.xml` | `qcom-robotics-ros2-humble` |

For more information about the Yocto layers, see [Qualcomm Linux metadata layers](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-27/qualcomm_linux_metadata_layers.html).

For information on building the `meta-qcom-extras` add-on layer and select firmware sources, see [Build with GitHub using firmware and extras](https://docs.qualcomm.com/doc/80-70029-254/topic/build_addn_info.html).

### Build a BSP image

The BSP image build has software components for the Qualcomm device support and software features applicable to the Qualcomm SoCs. This build includes a reference distribution configuration for the Qualcomm development kits. For more details, see [Qualcomm Linux metadata layers](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-27/qualcomm_linux_metadata_layers.html).

1. Download Qualcomm Yocto and the supporting layers. For the latest `<manifest release tag>`, see the section *Build-critical release tags* in the [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).

# 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-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.119-QLI.1.8-Ver.1.1.xml
        repo sync
        Copy to clipboard
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

    For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
3. Build the software image. For supported image recipes, see [Image recipes supported in the GitHub workflow](https://docs.qualcomm.com/doc/80-70029-254/topic/how_to.html#image-recipes-github-workflow).

bitbake <image recipe>
        # Example, bitbake qcom-multimedia-image
        Copy to clipboard
4. After a successful build, you can verify if `system.img` is present 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 Qualcomm IM SDK image

The Qualcomm IM SDK is a collection of four standalone function SDKs: Qualcomm IM SDK, Qualcomm Neural Processing SDK, Qualcomm AI Engine direct SDK, and LiteRT. This SDK also includes reference applications that you can use to develop use cases. For more details, see [Qualcomm IM SDK quickstart](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-51).

1. Download Qualcomm Yocto and the supporting layers. The `<manifest release tag>` for the Qualcomm IM SDK build is the same as the BSP build. Clone the Qualcomm IM 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/doc/80-70029-300/).

# 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-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.119-QLI.1.8-Ver.1.1.xml
        repo sync
        Copy to clipboard
2. Clone the Qualcomm IM 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.119-QLI.1.8-Ver.1.1_qim-product-sdk-2.3.1
        Copy to clipboard
3. Export the Qualcomm IM SDK layer:

export EXTRALAYERS="meta-qcom-qim-product-sdk"
        Copy to clipboard
4. 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

    For information about the `MACHINE` parameter values, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
5. Build the software image:

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard
6. After a successful build, you can verify if `system.img` is present 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 QIR SDK image

The Qualcomm® Intelligent Robotics (QIR) SDK 2.0 is a collection of components that let you develop robotic features on Qualcomm Linux releases. For more details, see [QIR SDK 2.0 User Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70029-265).

1. Download Qualcomm Yocto and the supporting layers. The `<manifest release tag>` for QIR SDK build is the same as the BSP build. Clone the QIR 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/doc/80-70029-300/).

# 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-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.119-QLI.1.8-Ver.1.1.xml
        repo sync
        Copy to clipboard
2. Download the QIR SDK layers into the BSP build `<WORKSPACE DIR>`
directory:

git clone https://github.com/ros/meta-ros -b scarthgap layers/meta-ros && cd layers/meta-ros && git checkout c560699e810e60a9526f4226c2c23f8d877280c8 && cd ../../
        git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.119-QLI.1.8-Ver.1.1_robotics-sdk-1.1 layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.119-QLI.1.8-Ver.1.1_robotics-sdk-1.1 layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.119-QLI.1.8-Ver.1.1_robotics-sdk-1.1 layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.119-QLI.1.8-Ver.1.1_qim-product-sdk-2.3.1 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

    For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
4. Build the robotics image and the QIR SDK artifacts:

../qirp-build qcom-robotics-full-image
        Copy to clipboard
5. After a successful build, you can see the QIR SDK build artifacts at the following paths:

QIR 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 Qualcomm 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 Qualcomm Linux kernel for the supported machine. This layer appends to the 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-70029-3/real_time_kernel_overview.html).

1. Download Qualcomm Yocto and the supporting layers. 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. For the latest `<manifest release tag>`, see the section *Build-critical release tags* in the [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).

# 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-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.119-QLI.1.8-Ver.1.1.xml
        repo sync
        Copy to clipboard
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.119-QLI.1.8-Ver.1.1_realtime-linux-1.1
        Copy to clipboard
3. Export the real-time layer:

export EXTRALAYERS="meta-qcom-realtime"
        Copy to clipboard
4. 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

    For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
5. Build the software image:

bitbake qcom-multimedia-image
        Copy to clipboard
6. 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 software images](https://docs.qualcomm.com/doc/80-70029-254/topic/flash_images.html#flash-images).

## Build with Dockerfile

### Set up the Ubuntu host computer

Install and configure the required software tools on the Ubuntu host computer.

1. Install git:

# Install git if you haven't already installed
        sudo apt install git
        Copy to clipboard
2. Clone the `qcom-download-utils` git repository, which provides a Dockerfile for the Qualcomm public Yocto layers and a few helper scripts:

mkdir <workspace_path>
        cd <workspace_path>
        git clone https://git.codelinaro.org/clo/le/qcom-download-utils.git
        cd qcom-download-utils
        Copy to clipboard
3. Add the user to the Docker group:

sudo groupadd docker
        sudo usermod -aG docker $USER
        newgrp docker
        # To check if you are part of a Docker group, run the following command:
        sudo grep /etc/group -e "docker"
        Copy to clipboard
4. Configure your host computer:

bash utils/check_config.sh
        # Resolve the errors and run this command until no errors show up
        Copy to clipboard
5. Install Docker:

bash docker/docker_setup.sh
        Copy to clipboard

Note

The following sample figure shows the directory structure of `qcom-download-utils` in relation to the Docker setup:

![../../_images/qcom-download-utils-folder.png](data:image/png;base64,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)

### Build a BSP image

Dockertag uses lowercase letters for the release folder followed by the Dockerfile OS version, to identify the release build with the Dockerfile. Docker doesn’t allow uppercase letters in the Dockertag. To troubleshoot Docker issues, see [Troubleshoot Docker](https://docs.qualcomm.com/doc/80-70029-254/topic/troubleshoot_sync_build_and_flash.html#troubleshoot-docker).

Create and build a Yocto Docker image:

1. Run `docker_build.sh` to create the Docker image with Dockerfile (`Dockerfile_22.04`) and Dockertag (`qcom-6.6.119-qli.1.8-ver.1.1_22.04`). Use this Docker image to create the container environment and run the Yocto build.

bash docker/docker_build.sh -f ./docker/dockerfiles/Dockerfile_22.04 -t qcom-6.6.119-qli.1.8-ver.1.1_22.04
        Copy to clipboard

    If you face any issues while running `docker_build.sh`, see the
following solution:

# Error 1: Cache-related issue.
           # If you are facing issues with the docker build command, try using --no-cache option. This option forces rebuilding of the layers that are already available
           bash docker/docker_build.sh -n --no-cache -f ./docker/dockerfiles/Dockerfile_22.04 -t qcom-6.6.119-qli.1.8-ver.1.1_22.04
        
        # Error2: Response from daemon: Get "https://registry-1.docker.io/v2/": http: server gave HTTP response to HTTPS client
           # Check with your IT administrator to acquire ``registry-mirrors`` URL and replace <docker-mirror-host>`` in the following solution
           # Using a tab instead of space and other invisible white-space characters may break the proper functioning of the JSON configuration files
           # and later may lead to the Docker service failing to start
        
           # Solution:
           sudo vim /etc/docker/daemon.json
           # Add an entry similar to the following in /etc/docker/daemon.json:
           {
              "registry-mirrors": ["https://<docker-mirror-host>"]
           }
           # Restart the Docker service to take the new settings
           sudo systemctl restart docker
        Copy to clipboard
2. Sync and build the Yocto image in a Docker container with the Docker
tag and release parameters:

bash docker/docker_run.sh -t qcom-6.6.119-qli.1.8-ver.1.1_22.04 -r qcom-6.6.119-QLI.1.8-Ver.1.1 -M <machine> --build-override <override> --alternate-repo true
        # Example, bash docker/docker_run.sh -t qcom-6.6.119-qli.1.8-ver.1.1_22.04 -r qcom-6.6.119-QLI.1.8-Ver.1.1 -M qcs6490-rb3gen2-vision-kit --build-override custom --alternate-repo true
        Copy to clipboard

    For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).

    The build workspace is available in
`<qcom-download-utils download path>/<release>/build-qcom-wayland`.
For example,
`qcom-download-utils/qcom-6.6.119-QLI.1.8-Ver.1.1/build-qcom-wayland`.

Note

- **# ERROR: error.GitError: git config (‘–replace-all’,‘color.ui’, ‘auto’): error: couldn’t write config file /home/$USER/.gitconfig: Device or resource busy**

    As Git 1.8.4 is enabled by default, you will see this error when the UI color configuration is not set in gitconfig. To enable color display in your account, run the following command: `git config --global color.ui auto`.
- If you see and fix a build error, run the commands in [Rebuild](https://docs.qualcomm.com/doc/80-70029-254/topic/build_from_source_github_intro.html#build-with-docker-rebuild).

### Build Qualcomm IM SDK image

1. [Build a BSP image](https://docs.qualcomm.com/doc/80-70029-254/topic/build_from_source_github_intro.html#build-with-docker-bsp-image) using Docker.
2. Build Qualcomm IM SDK on top of the base image using Docker:

    1. Run the following commands inside the base image build location:

cd <workspace_path>/qcom-download-utils/qcom-6.6.119-QLI.1.8-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.119-qli.1.8-ver.1.1_22.04 /bin/bash
            Copy to clipboard
    2. Clone the Qualcomm IM 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.119-QLI.1.8-Ver.1.1_qim-product-sdk-2.3.1
            Copy to clipboard
    3. Export the Qualcomm IM SDK layer:

export EXTRALAYERS="meta-qcom-qim-product-sdk"
            Copy to clipboard
    4. 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

        For the `MACHINE` parameter values, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
    5. Build the software image:

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

### Rebuild

To rebuild after any modifications to the software release, use your existing workspace built using Docker:

1. List the Docker images:

docker images
        Copy to clipboard

    This command generates the following output:

REPOSITORY                                               TAG                         IMAGE ID       CREATED        SIZE
qcom-6.6.119-qli.1.8-ver.1.1\_22.04                        latest                      8fcea388d8ca   2 days ago     1.47GB
2. Run the following commands outside the Docker container:

cd <workspace_path>/qcom-download-utils/qcom-6.6.119-QLI.1.8-Ver.1.1
        
        # Run the following commands inside the base image build location
        bash
        docker run -it -v "${HOME}/.gitconfig":"/home/${USER}/.gitconfig" -v "${HOME}/.netrc":"/home/${USER}/.netrc" -v $(pwd):$(pwd) -w $(pwd) qcom-6.6.119-qli.1.8-ver.1.1_22.04 /bin/bash
        
        # Example
        WORKSPACE=<workspace_path>/qcom-download-utils/qcom-6.6.119-QLI.1.8-Ver.1.1
        Copy to clipboard
3. Set up the build environment:

# cd <release directory>
        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

    For various `<machine>` and `<override>` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-70029-300/).
4. Build the software image:

bitbake qcom-multimedia-image
        Copy to clipboard
5. Close Docker before you flash the images.

### Flash

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

## Related topics

- [Connect to UART shell](https://docs.qualcomm.com/doc/80-70029-254/topic/how_to.html#connect-uart)
- [Connect to network](https://docs.qualcomm.com/doc/80-70029-254/topic/how_to.html#connect-to-network)
- [Sign in using SSH](https://docs.qualcomm.com/doc/80-70029-254/topic/how_to.html#use-ssh)
- [Troubleshoot sync, build, and flash issues](https://docs.qualcomm.com/doc/80-70029-254/topic/troubleshoot_sync_build_and_flash.html#troubleshoot-sync-build-and-flash)

Last Published: Apr 02, 2026

[Previous Topic
Build with GitHub for unregistered users](https://docs.qualcomm.com/bundle/publicresource/80-70029-254/topics/github_workflow_unregistered_users.md) [Next Topic
Build with GitHub using firmware and extras](https://docs.qualcomm.com/bundle/publicresource/80-70029-254/topics/build_addn_info.md)