Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion topic/k2c-qli-build-ga/acronyms_and_terms.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,4 @@ Acronyms and terms
* - UFS
- Universal flash storage
* - WSL
- Windows Subsystem for Linux
- Windows Subsystem for Linux
23 changes: 17 additions & 6 deletions topic/k2c-qli-build-ga/addn_host_setup_build_firmware.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,23 @@ Install and configure the software tools on the Ubuntu host computer.
sudo apt-get install lib32stdc++6 libncurses5 checkinstall libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev curl
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.
# This command must 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

#. Optionally download the kas-container script. kas is the tool used by Qualcomm Linux to sync and build the Yocto meta layers. The kas package also provides a kas-container script for running kas in a container. If you prefer running the image builds in an isolated environment, consider using kas-container instead.
#. (Optional) Download the ``kas-container`` script.
Kas is the tool you use to sync and build Yocto meta layers.
The kas package also includes the ``kas-container`` script, which runs kas inside a container.
If you prefer building images in an isolated environment, use ``kas-container`` instead.

.. container:: nohighlight

::

# kas-container can be run on any linux distribution with docker installed.
# 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

Expand All @@ -37,13 +40,21 @@ Install and configure the software tools on the Ubuntu host computer.

::

# Log in to qsc-cli to generate PAT
# Sign in to qsc-cli to generate PAT
qsc-cli login -u <username>
# Run the following command to generate PAT
qsc-cli show-access-token
# This command gives output as shown in the following note
# The last line in this output is the token, which can be used to access
# Qualcomm Proprietary repositories. This token expires in two weeks.

.. note::

.. container:: screenoutput

| user\@hostname:/local/mnt/workspace$ qsc-cli show-access-token
| [Info]: Starting qsc-cli version 0.0.0.9
| **5LThNlklb55mMVLB5C2KqUGU2jCF**

#. Use your preferred text editor to edit the ``~/.netrc`` file and add the following entries. Create the ``~/.netrc`` file if it doesn't exist.

Expand Down Expand Up @@ -119,4 +130,4 @@ Install and configure the software tools on the Ubuntu host computer.
export PYTHONPATH=/opt/python3/lib:$PYTHONPATH

.. note::
The `kas <https://kas.readthedocs.io/en/latest/>`__ tool is used by Qualcomm Linux to sync the meta layers, configure the environment and execute the bitbake commands.
The `kas <https://kas.readthedocs.io/en/latest/>`__ tool is used by Qualcomm Linux to sync the meta layers, configure the environment, and execute the bitbake commands.
2 changes: 1 addition & 1 deletion topic/k2c-qli-build-ga/build_default_config_cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Build the default configuration
Compile
''''''''

For information on the default configurations, see the table *Default values of MACHINE and DISTRO parameters for QSC* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.
For information on the default configurations, see the table *Default values of Machine parameters for QSC CLI* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

When the download is complete, start the compilation process. Depending on the size of the software and the host computer configuration, the compilation process can take a few hours.

Expand Down
32 changes: 18 additions & 14 deletions topic/k2c-qli-build-ga/build_from_source_github.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,32 +24,34 @@ Install and configure the required software tools on the Ubuntu host computer.
# The kas version is expected to be 4.8 or higher
pipx install kas

#. Optionally download the kas-container script. The kas package also provides a kas-container script for running kas in a container. If you prefer running the image builds in an isolated environment, consider using kas-container instead.
#. (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``.

.. container:: nohighlight

::

# kas-container can be run on any linux distribution with docker installed.
# 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

.. note::
The `kas <https://kas.readthedocs.io/en/latest/>`__ tool is used by Qualcomm Linux to sync the meta layers, configure the environment and execute the bitbake commands.
The `kas <https://kas.readthedocs.io/en/latest/>`__ tool is used by Qualcomm Linux 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. Kas lock files recording the meta layer repository information are stored in `meta-qcom-releases <https://github.com/qualcomm-linux/meta-qcom-releases>`__ for each critical release.
QLI uses the kas tool to sync and build the Yocto meta layers. Kas lock files recording the meta layer repository information are stored in `meta-qcom-releases <https://github.com/qualcomm-linux/meta-qcom-releases>`__ for every critical release.

You can checkout the lock files for each release by the `meta-qcom-release-tag`. The meta-qcom release tag follows the syntax ``qli-<version>``. For example, the meta-qcom release tag can be ``qli-2.0-rc1`` where ``2.0-rc1`` is the release version.
You can checkout the lock files for each release using the `meta-qcom-release-tag`. The meta-qcom release tag follows the syntax ``qli-<version>``. For example, the meta-qcom release tag can be ``qli-2.0-rc1``, where ``2.0-rc1`` is the release version.

Build a BSP image
-----------------

Create and build a Yocto Docker image:
Create and build a Yocto image:

1. Download Qualcomm Yocto and the supporting meta-layers. For the latest ``<meta-qcom-release-tag>``, see the section *Build-Critical Release Tags* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.
1. Download Qualcomm Yocto and the supporting meta layers. For the latest ``<meta-qcom-release-tag>``, see the section *Build-Critical Release Tags* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

.. container:: nohighlight

Expand All @@ -58,17 +60,19 @@ Create and build a Yocto Docker image:
git clone https://github.com/qualcomm-linux/meta-qcom-releases -b <meta-qcom-release-tag>
kas checkout meta-qcom-releases/lock.yml

#. Copy the kas lock file from meta-qcom-releases to meta-qcom. Make sure to run this step, otherwise the checked out meta layers may get updated to a newer commit.
#. 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.

.. container:: nohighlight

::

# kas configuration files need to be part of same repository
# 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

#. Build the software image. Build targets are defined based on machine and distro combinations.
#. Build the software image.
You define build targets based on machine and distribution combinations.

.. container:: nohighlight

Expand All @@ -80,9 +84,9 @@ Create and build a Yocto Docker image:

For various ``<machine>`` and ``<distro>`` combinations, see `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

.. note:: To build the images in a fully isolated environment, you can try out `kas-container <https://kas.readthedocs.io/en/latest/userguide/kas-container.html>`__ instead.
.. 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>`__.

#. After a successful build, check that the ``rootfs.img`` file is in the build artifacts:
#. After a successful build, check if the ``rootfs.img`` file exists in the build artifacts.

.. container:: nohighlight

Expand All @@ -96,11 +100,11 @@ Create and build a Yocto Docker image:
ls -al rootfs.img

.. note::
* The machine configurations have either UFS or EMMC storage enabled by default. To change the default storage, see :ref:`Setting storage <set_storage>`.
* The machine configurations have either UFS or EMMC storage enabled by default. To change the default storage, see :ref:`Set storage <set_storage>`.
* To build meta-qcom tip, see :ref:`Build meta-qcom tip <build_tip>`.
* For repo manifest based builds, see :ref:`Alternative build instructions using Manifest <build_manifest>`.

Flash
-----

To flash the software images to the device, see :ref:`Flash software images <flash_images>`.
To flash the software images to the device, see :ref:`Flash software images <flash_images>`.
2 changes: 1 addition & 1 deletion topic/k2c-qli-build-ga/build_from_source_github_intro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ Create a build using the prebuilt proprietary binaries/images available on GitHu

.. include:: host_machine_requirements_reg_unreg.rst

.. include:: build_from_source_github.rst
.. include:: build_from_source_github.rst
6 changes: 3 additions & 3 deletions topic/k2c-qli-build-ga/build_landing_page.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Build Qualcomm Linux Software
:link: build_from_source_github_intro
:link-type: ref

The build workflow provides a set of instructions to setup the host computer environment, sync, and compile. Firmware components are available as prebuilt binaries.
The build workflow provides a set of instructions to set up the host computer environment, sync, and compile. Firmware components are available as prebuilt binaries.

.. grid-item-card:: |icn-book-blue| Build from source (with firmware and extras)
:class-card: card-base-line
Expand All @@ -47,7 +47,7 @@ Build Qualcomm Linux Software
:link: build_addn_info
:link-type: ref

The build workflow (firmware and extras) for registered users provide a set of instructions to setup the host computer environment, sync, and compile. A few of the firmware components are available as source.
The build workflow (firmware and extras) for registered users provide a set of instructions to set up the host computer environment, sync, and compile. A few of the firmware components are available as source.

.. grid-item-card:: |icn-book-blue| Build with QSC CLI
:class-card: card-base-line
Expand Down Expand Up @@ -88,7 +88,7 @@ Troubleshoot
:link: troubleshoot_sync_build_and_flash
:link-type: ref

Provides steps to troubleshoot docker, sync, build, and flash issues.
Provides steps to troubleshoot Docker, sync, build, and flash issues.

How to
-------------
Expand Down
8 changes: 4 additions & 4 deletions topic/k2c-qli-build-ga/build_own_config_cli.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Build your own configuration
-----------------------------
To build your own configuration, you must compile the build with the default machine configuration and then compile the software product with your own machine and distro configuration files.
To build your own configuration, you must compile the build with the default machine configuration and then compile the software product with your own machine and distribution configuration files.

When compiling a software image, ensure that you also compile the software product. For example, if you compile ``BOOT.MXF.1.0.c1``, ensure that you also compile the software product (such as ``QCS9100.LE.2.0``).

Expand All @@ -12,9 +12,9 @@ When compiling a software image, ensure that you also compile the software produ

#. :ref:`Compile the default build <compile_qsc_cli>`.

2. Compile the software product with your own machine and distro configuration files.
2. Compile the software product with your own machine and distribution configuration files.

For information on the supported machine configurations of the development kit, see the table *Default values of <machine.yml> and <distro.yml> parameters for QSC* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.
For information on the supported machine configurations of the development kit, see the table *Default values of Machine parameters for QSC CLI* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

a. Run the build commands for a specific configuration:

Expand All @@ -35,7 +35,7 @@ When compiling a software image, ensure that you also compile the software produ

For example, to build qcom-multimedia-proprietary-image, change the value of <distro.yml> to ``qcom-distro-prop-image.yml``.

c. After a successful build, check that the ``rootfs.img`` file is in the build artifacts:
c. After a successful build, check if the ``rootfs.img`` file exists in the build artifacts:

.. container:: nohighlight

Expand Down
29 changes: 14 additions & 15 deletions topic/k2c-qli-build-ga/build_with_firmware.rst
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ Build firmware
cd <FIRMWARE_ROOT>
mkdir llvm

# Log in to qsc-cli and activate the license
# Sign in to qsc-cli and activate the license
qsc-cli login
qsc-cli tool activate-license --name sdllvm_arm

Expand Down Expand Up @@ -519,7 +519,7 @@ Build firmware
cd <FIRMWARE_ROOT>
mkdir llvm

# Log in to qsc-cli and activate the license
# Sign in to qsc-cli and activate the license
qsc-cli login
qsc-cli tool activate-license --name sdllvm_arm

Expand Down Expand Up @@ -811,7 +811,7 @@ Build firmware
cd <FIRMWARE_ROOT>
mkdir llvm

# Log in to qsc-cli and activate the license
# Sign in to qsc-cli and activate the license
qsc-cli login
qsc-cli tool activate-license --name sdllvm_arm

Expand Down Expand Up @@ -1061,10 +1061,9 @@ Build firmware
- ``QCS8300_dspso.zip``
- ``QCS8300_fw.zip``


Build a BSP image
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The BSP image build has software components for the Qualcomm device support and software features applicable to the Qualcomm SoCs. This build includes a reference distribution configuration for the Qualcomm development kits.
The BSP image build has software components to support the Qualcomm device and software features applicable to the Qualcomm SoCs. This build includes a reference distribution configuration for the Qualcomm development kits.

1. Download Qualcomm Yocto and the supporting layers. For the ``<meta-qcom-release-tag>`` information, see the section *Build-critical release tags* in the `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

Expand All @@ -1082,19 +1081,21 @@ The BSP image build has software components for the Qualcomm device support and

kas checkout meta-qcom-releases/lock.yml

#. Copy the kas lock file from meta-qcom-releases to meta-qcom. Make sure to run this step, otherwise the checked out meta layers may get updated to a newer commit.
#. Copy the kas lock file from ``meta-qcom-releases`` to ``meta-qcom``. You must run this step; otherwise, the checkedout meta layers may update to a newer commit.

.. container:: nohighlight

::

# kas configuration files need to be part of the same repository
# kas configuration files must be a part of the same repository
# copy the kas lock file to meta-qcom repository
cp meta-qcom-releases/lock.yml meta-qcom/ci/lock.yml

#. To use the locally compiled firmware in your Yocto build, refer to :doc:`Setting up local firmware <setup_local_firmware>`.
#. :ref:`Set up local firmware binaries <setup_local_firmware>` in your Yocto build.

.. _step4_build_software_image:

#. Build the software image. Build targets are defined based on machine and distro combinations:
#. Build the software image. Build targets are defined based on machine and distribution combinations:

.. container:: nohighlight

Expand All @@ -1106,19 +1107,17 @@ The BSP image build has software components for the Qualcomm device support and

For various ``<machine>`` and ``<distro>`` combinations, see `Release Notes <https://docs.qualcomm.com/doc/80-80020-300/>`__.

.. note::
To build the images in a fully isolated environment, you can try out `kas-container <https://kas.readthedocs.io/en/latest/userguide/kas-container.html>`__ instead.
.. note:: To build images in a fully isolated environment, you can try using `kas-container <https://kas.readthedocs.io/en/latest/userguide/kas-container.html>`__.

#. After a successful build, check that the ``rootfs.img`` file is in the build artifacts:
#. After a successful build, check if the ``rootfs.img`` file exists in the build artifacts:

.. container:: nohighlight

::

# 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.
# including partition metadata, boot firmware, ESP partition, and rootfs.
cd <workspace-dir>/build/tmp/deploy/images/<MACHINE>/<IMAGE>-<MACHINE>.rootfs.qcomflash/
ls -al rootfs.img

Expand All @@ -1132,4 +1131,4 @@ Next steps
- :ref:`Connect to UART shell <connect_uart>`
- :ref:`Connect to network <connect_to_network>`
- :ref:`Sign in using SSH <use-ssh>`
- :ref:`Troubleshoot sync, build, and flash issues <troubleshoot_sync_build_and_flash>`
- :ref:`Troubleshoot sync, build, and flash issues <troubleshoot_sync_build_and_flash>`
Loading
Loading