# 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)