Skip to main content
Follow the detailed instructions to synchronize the Qualcomm Yocto and QIR SDK layers, and build the robotics image along with the QIR SDK artifacts.
WarningIt’s not recommended to rebuild the QIR SDK, as the build process is complex for non-professionals. Build the QIR SDK ONLY if you understand the process and have the following needs:
  • Build an image for the device which doesn’t have a prebuilt image, for example, the Qualcomm® IQ-8 Evaluation Kit. For details, see Supported platforms.
  • Add new features to the QIR SDK.
  • Change the content of the target image.
  • Fix bugs in the QIR SDK.
  • Optimize the performance of the QIR SDK.
  • Change the version of certain components.
  1. Set up the host computer for build
  2. Build the robotics image
  3. Generate QIR SDK artifacts
  4. Flash the robotics image to devices

Set up the host computer for build

Prepare your host computer for the build and install operations, ensuring it meets the Host computer requirements.
  1. Install the required packages.
       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 gfortran
    
  2. Set up the locales.
    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
    
  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 <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
    
  4. Change the /bin/sh symlink to point to /bin/bash by default.
    sudo ln -sf /bin/bash /bin/sh
    
  5. Install the repo tool according to steps in install-the-repo-utility.

Build the robotics image

The following steps set up a KAS-based compile environment on top of the Yocto Project and build the robotics image with the KAS tool.
  1. Set up your Yocto Project build environment by referring to the steps in Yocto Project Reference Manual.
  2. The KAS tool offers an easy way to set up bitbake based projects. For more details, see KAS documentation. Install the KAS tool using the following commands.
 sudo apt install pipx

 # Restart your shell session after running this command to ensure
 # path changes take effect
 pipx ensurepath

 # The kas version is expected to be 4.8 or higher
 pipx install kas
  1. Build using the KAS configuration for one of the supported boards.
    1. Download Qualcomm’s Yocto layer meta-qcom-robotics-sdk using the latest <meta-qcom-robotics-sdk-release-tag>. The following table describes the build tags for the current release.
      Release tagIdentifier
      meta-qcom-robotics-sdk-release-tagqli-2.0
      Download Qualcomm’s Yocto layer meta-qcom-robotics-sdk by the latest <meta-qcom-robotics-sdk-release-tag>.
        git clone https://github.com/qualcomm-linux/meta-qcom-robotics-sdk \
        -b qli-2.0
      
    2. Build the software image using kas.
      kas build meta-qcom-robotics-sdk/ci/<MACHINE>.yml:meta-qcom-robotics-sdk/ci/<DISTRO>.yml:meta-qcom-robotics-sdk/ci/<TARGET>.yml:meta-qcom-robotics-sdk/ci/<KERNEL>.yml
      
      The following table lists the supported <MACHINE>, <DISTRO>, <TARGET>, and <KERNEL> combinations. Select one item from each column to replace the corresponding placeholder in the command. For more details about these KAS configuration fragments, see the Robotics OpenEmbedded layer changes and the meta-qcom and meta-qcom-distro sections of the Qualcomm Linux Yocto Guide.
      MACHINE configuration
      DISTRO configuration
      TARGET image recipe
      KERNEL provider
      • iq-8275-evk
      • iq-9075-evk
      • qcom-robotics-distro
      • qcom-robotics-distro-catchall
      • qcom-robotics-image
      • qcom-robotics-proprietary-image
      • linux-qcom-6.18
      • linux-qcom-rt-6.18
      Examples:
      • To build the robotics image based on open-source components, use the qcom-robotics-image recipe:
      kas build meta-qcom-robotics-sdk/ci/iq-9075-evk.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-distro.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-image.yml:meta-qcom-robotics-sdk/ci/linux-qcom-6.18.yml
      
      kas build meta-qcom-robotics-sdk/ci/iq-9075-evk.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-distro.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-proprietary-image.yml:meta-qcom-robotics-sdk/ci/linux-qcom-6.18.yml
      
  2. (Optional) Build a debug or performance image. To build a debug or performance image, append the corresponding yaml fragment file to the end of the kas build command:

    Yaml file for debug or performance images

    Image typeYaml file
    Debug builddebug.yml
    Performance buildperformance.yml
    Example (machine: iq-9075-evk, performance build):
    kas build meta-qcom-robotics-sdk/ci/iq-9075-evk.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-distro.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-proprietary-image.yml:meta-qcom-robotics-sdk/ci/linux-qcom-6.18.yml:meta-qcom-robotics-sdk/ci/performance.yml
    
  3. The kas build generates the image in the following path:
    build/tmp/deploy/images/<MACHINE NAME>/*.rootfs.qcomflash
    

Generate QIR SDK artifacts

To generate the QIR SDK, run the generate_qirp_sdk task after the image build completes:
kas build meta-qcom-robotics-sdk/ci/<MACHINE>.yml:meta-qcom-robotics-sdk/ci/<DISTRO>.yml:meta-qcom-robotics-sdk/ci/<TARGET>.yml:meta-qcom-robotics-sdk/ci/<KERNEL>.yml -c generate_qirp_sdk
Example (machine: iq-9075-evk,kernel: linux-qcom-6.18):
kas build meta-qcom-robotics-sdk/ci/iq-9075-evk.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-distro.yml:meta-qcom-robotics-sdk/ci/qcom-robotics-image.yml:meta-qcom-robotics-sdk/ci/linux-qcom-6.18.yml -c generate_qirp_sdk
The kas build generates the QIR SDK artifacts in the following path:
build/tmp/deploy/qirpsdk_artifacts/<MACHINE NAME>/qirp_sdk.tar.gz

Flash the robotics image to devices

To flash the robotics image to the device, see Flash the robotics image, using the qcom-robotics-image or qcom-robotics-proprietary-image generated in Build the robotics image.