# Build with QSC CLI Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html](https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html) The following sections provide instructions to build Qualcomm Linux using the QSC CLI. ## Host machine requirements Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html](https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html) | Configuration | Tools | Permissions | | --- | --- | --- | | x86 machine | Git 1.8.3.1 or later versions | A `sudo` permission is
required to execute a few commands. | | Quad-core CPU, for example, Intel i7-2600 at 3.4 GHz
(equivalent or better) | Tar 1.28 or later versions | A `sudo` permission is
required to execute a few commands. | | 300 GB free disk space (swap partition >
32 GB) | Python 3.10.2 or later versions | A `sudo` permission is
required to execute a few commands. | | 16 GB RAM | GCC 7.5 or later versions | A `sudo` permission is
required to execute a few commands. | | Ubuntu 22.04 | GNU Make 4.0 or later versions | A `sudo` permission is
required to execute a few commands. | | | | | | | | | | | | | | | | | ## Install QSC CLI Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html](https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html) Set up `qsc-cli`: 1. Install curl (if not already installed): sudo apt install curlCopy to clipboard 2. Download the Debian package for `qsc-cli`: cd curl -L https://softwarecenter.qualcomm.com/api/download/software/qsc/linux/latest.deb -o qsc_installer.debCopy to clipboard 3. Install the `qsc-cli` Debian package: sudo dpkg -i qsc_installer.debCopy to clipboard 4. Log in to `qsc-cli`: qsc-cli login -u Copy to clipboard Note: A one-time login into [chipcode.qti.qualcomm.com](http://chipcode.qti.qualcomm.com/) is required to download Qualcomm proprietary git repositories. Use your Qualcomm login credentials to complete this step. For more details, see `qsc-cli` related topics in [How to](https://docs.qualcomm.com/doc/80-70014-254/topic/how_to.html). ## Use QSC CLI Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html](https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_QSC_CLI.html) This section provides instructions on how to download, compile, and recompile Qualcomm Linux using QSC CLI. ### Download Note: If you are building a distribution with access level "Registered developer from a verified organization" or "Licensed customers with additional access", then you must log in to `qpm-cli` before you compile: # Run the following command to login qpm-cli --login # Run the following command to verify if qpm-cli login is successful qpm-cli --product-listCopy to clipboard This command prompts for your username and password. After successfully logging in, the system fetches and refreshes the product list. - Download a particular software release by specifying the product ID, build ID, distribution, and the absolute/full workspace path as shown in the following example: # qsc-cli download --workspace-path '' --product '' --build '' --distribution ''Copy to clipboard - Select Product\_ID and Build\_ID values from the **QSC-CLI Input Parameters** table in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). Example: For QCM6490 with Linux embedded (LE) build, the input parameters are shown in the following table: | **Product\_ID (--product)** | QCM6490.LE.1.0Copy to clipboard | | --- | --- | | **Build\_ID (--build)** | QCM6490.LE.1.0-00218-STD.PROD-1Copy to clipboard | - Select the appropriate distribution to download. Distribution access is controlled by access levels as listed in the following table: Note: For more details on the available distributions, see **Access Controlled Distribution** table in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). | **Access level** | **Distribution** | Yocto layers | | --- | --- | --- | | Unregistered/community
developer | Base build: High-level operating system (OS)
and prebuilt firmware (GPS
only)
`Qualcomm_Linux.SPF.1.0|TEST|DEVICE|PUBLIC` | `meta-qcom`



`meta-qcom-hwe` | | Unregistered/community
developer | Base build + Qualcomm Intelligent Multimedia
Product (QIMP)
SDK
`Qualcomm_Linux.SPF.1.0|TEST|DEVICE|PB_QIMPSDK` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-qim-product-sdk` | | Unregistered/community
developer | Base build + QIMP SDK + Qualcomm Intelligent
Robotics Product (QIRP)
SDK
`Qualcomm_Linux.SPF.1.0|TEST|DEVICE|RoboApiLnx` | `meta-qcom`



`meta-qcom-hwe`



`meta-ros`



`meta-qcom-robotics`



`meta-qcom-robotics-distro`



`meta-qcom-robotics-sdk`



`meta-qcom-qim-product-sdk` | | Registered developer from a
verified organization | Base build: High-level OS and firmware source
(GPS
only)
`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NoModem` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras` | | Registered developer from a
verified organization | Base build + QIMP
SDK
`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIMPSDK` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras`



`meta-qcom-qim-product-sdk` | | Registered developer from a
verified organization | Base build + QIMP SDK + QIRP
SDK
`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIRPSDK` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras`



`meta-qcom-robotics-extras`



`meta-ros`



`meta-qcom-robotics`



`meta-qcom-robotics-distro`



`meta-qcom-robotics-sdk`



`meta-qcom-qim-product-sdk` | | Licensed developer with
additional access | Base build: High-level OS and firmware (GPS
only)
source
`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras` | | Licensed developer with
additional access | Base build + QIMP SDK (GPS
only)
`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|QIMPSDK` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras`



`meta-qcom-qim-product-sdk` | | Licensed developer with
additional access | Base build: High-level OS and firmware (GPS
and modem)
source
`Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras` | | Licensed developer with
additional access | Base build + QIMP SDK (GPS and
modem)
`Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|QIMPSDK` | `meta-qcom`



`meta-qcom-hwe`



`meta-qcom-extras`



`meta-qcom-qim-product-sdk` | | | | | | | | | | | | | For Yocto layer descriptions, see [Table : 1. Qualcomm Linux Yocto layers](https://docs.qualcomm.com/doc/80-70014-254/topic/build_from_source_qsc_gui_intro.html#concept_n2t_tjn_w1c__Yocto_layer_descriptions). - Start the download: # cd to directory where you have 300 GB of free storage space to create your workspaces mkdir cd # WORKSPACE_DIR=/local/mnt/workspace/Qworkspace_QIMPSDK # Example qsc-cli download --workspace-path '/local/mnt/workspace/Qworkspace_QIMPSDK' --product 'QCM6490.LE.1.0' --build 'QCM6490.LE.1.0-00218-STD.PROD-1' --distribution 'Qualcomm_Linux.SPF.1.0|TEST|DEVICE|PB_QIMPSDK'Copy to clipboard When the process is completed successfully, the software product is available in the user-provided workspace directory. Note: A new workspace is required for each distribution if you are downloading more than one distribution. ### Compile Start the compilation after the download completes: Note: Depending on the size of the software and host machine configuration, compilation may take a few hours. qsc-cli compile --workspace-path '' # Example qsc-cli compile --workspace-path '/local/mnt/workspace/Qworkspace_QIMPSDK'Copy to clipboard This process builds the Qualcomm firmware as needed and also completes the build for the Qualcomm Linux. Note: If you see a BitBake fetcher error, retry compilation to work around this error. If the issue persists, see [BitBake Fetcher Error](https://docs.qualcomm.com/doc/80-70014-254/topic/troubleshoot_sync_build_and_flash.html#troubleshoot_sync_build_and_flash__do_fetch_error) for a solution. On a successful build of the `qcom-wayland` distributions, you can see the images at the following path: # system.img is present at the following path /DEV/LE.QCLINUX.1.0.r1/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image/*Copy to clipboard On a successful build of the `qcom-robotics-ros2-humble` (QIRP) distribution, you can see the QIRP SDK build artifacts at the following paths: QIRP SDK artifacts: /DEV/LE.QCROBOTICS.1.0.r1/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_.tar.gz # system.img is present at the following path Robotics image: /DEV/LE.QCROBOTICS.1.0.r1/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-image/*Copy to clipboard ### Recompile Recompile your workspace if you already have a workspace built using QSC CLI: # qsc-cli compile --image '' --workspace-path '' # Example qsc-cli compile --image LE.QCLINUX.1.0.r1 --workspace-path '/local/mnt/workspace/Qworkspace_QIMPSDK'Copy to clipboard Note: For more information on software image names (`--image`), see QSC-CLI input parameters table in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). ### Flash For the steps to flash software images to the device, see [Flash images for registered users](https://docs.qualcomm.com/doc/80-70014-254/topic/flash_images.html). Last Published: Aug 07, 2024 [Previous Topic Build with QSC Launcher](https://docs.qualcomm.com/bundle/publicresource/80-70014-254/topics/build_from_source_qsc_gui_intro.md) [Next Topic GitHub workflow for unregistered users](https://docs.qualcomm.com/bundle/publicresource/80-70014-254/topics/github_workflow_unregistered_users.md)