# Build from source 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 > 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 10.1 or later versions - GNU Make 4.0 or later versions - Kas 4.8 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-80021-41/). ## 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 build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xz-utils zstd sudo apt install pipx # This command should add the kas binary location to your PATH. # Restart your shell session after running this command for the changes to take effect. pipx ensurepath # The kas version is expected to be 4.8 or higher pipx install kas Copy to clipboard 2. (Optional) Download the `kas-container` script. The `kas` package includes this script to run **kas** inside a container. If you prefer to build images in an isolated environment, use `kas-container`. # kas-container can be run on any Linux distribution with Docker installed. wget -qO kas-container https://raw.githubusercontent.com/siemens/kas/refs/tags/5.1/kas-container chmod +x kas-container Copy to clipboard Note Qualcomm Linux uses the [kas](https://kas.readthedocs.io/en/latest/) tool to sync the meta layers, configure the environment, and execute the BitBake commands. ## Sync QLI uses the kas tool to sync and build the Yocto meta layers. For every critical release, Kas lock files record the meta-layer repository information in [meta-qcom-releases](https://github.com/qualcomm-linux/meta-qcom-releases). You can checkout the lock files for each release using the meta-qcom-release-tag. The meta-qcom release tag follows the syntax `qli-`. For example, the meta-qcom release tag can be `qli-2.0-rc2`, where `2.0-rc2` is the release version. ## Build a BSP image Create and build a Yocto image: 1. Download Qualcomm Yocto and the supporting meta layers. For the latest ``, see the section *Build-Critical Release Tags* in the [Release Notes](https://docs.qualcomm.com/doc/80-80021-300/). git clone https://github.com/qualcomm-linux/meta-qcom-releases -b # Example, git clone https://github.com/qualcomm-linux/meta-qcom-releases -b qli-2.0-rc2 kas checkout meta-qcom-releases/lock.yml Copy to clipboard 2. Copy the kas lock file from `meta-qcom-releases` to `meta-qcom`. Run this step, or the checked-out meta layers may update to a newer commit. # kas configuration files must be a part of the same repository # copy kas lock file to meta-qcom repository cp meta-qcom-releases/lock.yml meta-qcom/ci/lock.yml Copy to clipboard 3. Build the software image. You define build targets based on machine and distribution combinations. kas build meta-qcom/ci/:meta-qcom/ci/:meta-qcom/ci/linux-qcom-6.18.yml:meta-qcom/ci/lock.yml # Example, kas build meta-qcom/ci/iq-9075-evk.yml:meta-qcom/ci/qcom-distro-prop-image.yml:meta-qcom/ci/linux-qcom-6.18.yml:meta-qcom/ci/lock.yml Copy to clipboard For various `` and `` combinations, see [Release Notes](https://docs.qualcomm.com/doc/80-80021-300/). Note You can build the images in a fully isolated environment by using [kas-container](https://kas.readthedocs.io/en/latest/userguide/kas-container.html). 4. After a successful build, check if the `rootfs.img` file exists in the build artifacts. # meta-qcom uses qcomflash IMAGE_FSTYPE to create a single tarball # containing all the relevant files to perform a full clean flash, # including partition metadata, boot firmware, ESP # partition and # the rootfs. cd /build/tmp/deploy/images//-.rootfs.qcomflash/ ls -al rootfs.img Copy to clipboard Note - The machine configurations have either UFS or EMMC storage enabled by default. To change the default storage, see [Set storage](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#set-storage). - To build meta-qcom tip, see [Build meta-qcom tip](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#build-tip). - For repo manifest based builds, see [Alternative build instructions using Manifest](https://docs.qualcomm.com/doc/80-80021-254/topic/how_to.html#build-manifest). ## Flash To flash the software images to the device, see [Flash software images](https://docs.qualcomm.com/doc/80-80021-254/topic/flash_images.html#flash-images). Last Published: Apr 22, 2026 [Previous Topic Build overview](https://docs.qualcomm.com/bundle/publicresource/80-80021-254/topics/introduction.md) [Next Topic Build from source (with firmware and devtool)](https://docs.qualcomm.com/bundle/publicresource/80-80021-254/topics/build_addn_info.md)