# GitHub workflow for unregistered users Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html](https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html) The following sections provide instructions to use GitHub to make a build utilizing the prebuilt proprietary binary images. ## Host machine requirements Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html](https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html) | 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 execute a few commands. | | Quad-core CPU, for example, Intel i7-2600 at 3.4 GHz
(equivalent or better) | 16-core CPU | 16-core CPU | Git 1.8.3.1 or later versions | A `sudo` permission is
required to execute a few commands. | | 300 GB free disk space (swap partition > 32 GB) | 300 GB free space for the VirtualBox VM | 300 GB free space for UTM | Python 3.10.2 or later versions | A `sudo` permission is
required to execute a few commands. | | 16 GB RAM | 16 GB RAM | 16 GB RAM | GCC 7.5 or later versions | A `sudo` permission is
required to execute a few commands. | | Ubuntu 22.04 | Microsoft Windows 11 OS | Apple^®^ Mac^®^ OS 14 | GNU Make 4.0 or later versions | A `sudo` permission is
required to execute a few commands. | | | | | | | | | | | | | | | | | | | | | | | | | Note: To set up a virtual machine (VM) running Ubuntu 22.04 OS on Microsoft Windows or Apple Mac, see [Qualcomm Linux Virtual Machine Setup Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-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 Source: [https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html](https://docs.qualcomm.com/doc/80-70014-254/topic/github_workflow_unregistered_users.html) ### Ubuntu host setup The Ubuntu host machine needs a few setup operations 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 whiptailCopy 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-8Copy 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 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 999999Copy to clipboard ### Sync This section uses the Repo tool installed in the previous section to download a list of git repositories and additional attributes from the [Qualcomm manifest](https://github.com/quic-yocto/qcom-manifest). As part of this process, it downloads the manifest used in the `repo init` command. The following table shows an example mapping of Yocto layers to the manifest release tags that are used to download and build Qualcomm Linux: | Yocto layers | Manifest release tag | Distribution (`DISTRO`) | | --- | --- | --- | | | Base build: High-level OS and prebuilt firmware (GPS only)



`qcom-6.6.28-QLI.1.1-Ver.1.1.xml` | `qcom-wayland` | | | Base build + QIMP SDK build:



`qcom-6.6.28-QLI.1.1-Ver.1.1_qim-product-sdk-1.1.3.xml` | `qcom-wayland` | | | Base build + Real-time kernel build:



`qcom-6.6.28-QLI.1.1-Ver.1.1_realtime-linux-1.0.xml` | `qcom-wayland` | | | Base build + QIRP SDK build:



`qcom-6.6.28-QLI.1.1-Ver.1.1_robotics-product-sdk-1.1.xml` | `qcom-robotics-ros2-humble` | For Yocto layer descriptions, see [Table : 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). ### Build base image 1. Download Qualcomm Yocto and supporting layers: # cd to directory where you have 300 GB of free storage space to create your workspaces mkdir cd repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1.xml repo syncCopy to clipboard Note: For the latest ``, see the Build-critical release tags section in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). 2. Set up the build environment: MACHINE=qcm6490 DISTRO=qcom-wayland source setup-environment # source setup-environment: Sets the environment settings, creates the build directory build-qcom-wayland, # and enters into build-qcom-wayland directory.Copy to clipboard 3. Build the software image: Note: For supported image recipes, see [What are the image recipes supported as part of the GitHub workflow?](https://docs.qualcomm.com/doc/80-70014-254/topic/how_to.html#howto_build__section_x3c_n5l_zbc_vinayjk_07-08-24-1744-58-455). bitbake bitbake qcom-multimedia-imageCopy to clipboard On successful build, you can check if `system.img` is present in the `/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image` directory: cd /build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image ls -al system.imgCopy to clipboard ### Build QIMP SDK image 1. Download Qualcomm Yocto and supporting layers: Note: The `` for the QIMP SDK build is the same as the base build. The QIMP SDK layer must be cloned on top of the base build. For the latest ``, see the Build-critical release tags section in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). # cd to directory where you have 300 GB of free storage space to create your workspaces mkdir cd repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1.xml repo syncCopy to clipboard 2. Clone QIMP SDK layer into the workspace: git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b layers/meta-qcom-qim-product-sdk # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1_qim-product-sdk-1.1.3Copy 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=qcm6490 DISTRO=qcom-wayland source setup-environment # source setup-environment: Sets the environment settings, creates the build directory build-qcom-wayland, # and enters into build-qcom-wayland directory.Copy to clipboard 4. Build the software image: bitbake qcom-multimedia-image # Build SDK image bitbake qim-product-sdkCopy to clipboard On successful build, you can check if `system.img` is present in the `/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image` directory: cd /build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image ls -al system.imgCopy to clipboard ### Build QIRP SDK image 1. Download Qualcomm Yocto and supporting layers: Note: The `` for QIRP SDK build is the same as the base build. QIRP SDK layers must be cloned on top of the base build. # cd to directory where you have 300 GB of free storage space to create your workspaces mkdir cd repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1.xml repo syncCopy to clipboard Note: For the latest ``, see the Build-critical release tags section in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). 2. Download the QIRP SDK layers into the base build `` directory: git clone https://git.codelinaro.org/clo/le/meta-ros.git -b ros.qclinux.1.0.r1-rel 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-sdkCopy 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=qcm6490 DISTRO=qcom-robotics-ros2-humble source setup-robotics-environment # source setup-robotics-environment: Sets the environment settings, creates the build directory build-qcom-robotics-ros2-humble, # and enters into build-qcom-robotics-ros2-humble directory.Copy to clipboard 4. Build the robotics image and QIRP SDK artifacts: ../qirp-build qcom-robotics-full-imageCopy to clipboard On a successful build, you can see the QIRP SDK build artifacts at the following paths: QIRP SDK artifacts: /build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_.tar.gz # system.img is present in the following path Robotics image: /build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcm6490/qcom-robotics-full-imageCopy to clipboard ### Build real-time Linux image 1. Download Qualcomm Yocto and supporting layers: Note: The `` for real-time Linux image is the same as the base build. Real-time Linux must be cloned on top of the base build. # cd to directory where you have 300 GB of free storage space to create your workspaces mkdir cd repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-kirkstone -m # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1.xml repo syncCopy to clipboard Note: For the latest ``, see the Build-critical release tags section in the [Release Notes](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/). 2. Clone real-time Linux layer into the workspace: git clone https://github.com/quic-yocto/meta-qcom-realtime -b layers/meta-qcom-realtime # Example, is qcom-6.6.28-QLI.1.1-Ver.1.1_realtime-linux-1.0Copy 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=qcm6490 DISTRO=qcom-wayland source setup-environment # source setup-environment: Sets the environment settings, creates the build directory build-qcom-wayland, # and enters into build-qcom-wayland directoryCopy to clipboard 4. Build the software image: bitbake qcom-multimedia-imageCopy to clipboard On successful build, you can check if `system.img` is present in the `/build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image` directory: cd /build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-multimedia-image ls -al system.imgCopy to clipboard ### Flash Flash software images to the device using [Flash images for unregistered users](https://docs.qualcomm.com/doc/80-70014-254/topic/flash_images_unregistered.html). Last Published: Aug 07, 2024 [Previous Topic Build with QSC CLI](https://docs.qualcomm.com/bundle/publicresource/80-70014-254/topics/build_from_source_QSC_CLI.md) [Next Topic GitHub workflow for registered users](https://docs.qualcomm.com/bundle/publicresource/80-70014-254/topics/build_from_source_github_intro.md)