# ファームウェアおよびエクストラを使用してGitHubでビルドする

この情報を利用すると、選択した独自のソースとバイナリ/ライブラリを使用して、`meta-qcom-hwe`、`meta-qcom-extras`、`meta-qcom-qim-product-sdk`、`meta-qcom-robotics-sdk` などの、Qualcomm Linux Yocto のさまざまなレイヤーを構築できます。

注釈

この情報は承認されたユーザーのみが対象です。アクセス権をアップグレードするには [クアルコムのサポート・ページ](https://www.qualcomm.com/support/working-with-qualcomm) を参照してください。

## ホスト・コンピューターの要件

- 構成

    - x86マシン
    - クアッドコアCPU、例：Intel i7-2600 3.4GHz（同等以上）
    - 300GBのディスク空き容量（スワップパーティション32GB超）
    - 16GB RAM
    - Ubuntu 22.04
- ツール

    - Git 1.8.3.1以降のバージョン
    - Tar 1.28以降のバージョン
    - Python 3.10.2以降のバージョン
    - GCC 8.0以降のバージョン
    - GNU Make 4.0以降のバージョン
- アクセス許可

    - 一部のコマンドを実行するには、`sudo` 権限が必要です

注釈

VM 上でのコード・コンパイルは処理が遅く、数時間かかる場合があります。クアルコムでは、コンパイルにUbuntuホスト・コンピューターを使用することを推奨しています。Microsoft^®^ Windows^®^ またはApple^®^ macOS^®^ 上で Ubuntu 22.04 を実行する仮想マシン（VM）をセットアップするには、[Qualcomm Linux 仮想マシン・セットアップ・ガイド](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-41/) を参照してください。

## QSC CLIのインストール

クアルコムの E メール ID を登録するには、[クアルコムのサポート・ページ](https://www.qualcomm.com/support/working-with-qualcomm) を参照してください。

1. curlをインストールします（まだインストールされていない場合）。

sudo apt install curl
        Copy to clipboard
2. `qsc-cli` Debianパッケージをダウンロードします。

cd <workspace_path>
        # For x86
        curl -L https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/Debian/latest.deb -o qsc_installer.deb
        # For ARM64
        curl -L https://softwarecenter.qualcomm.com/api/download/software/tools/Qualcomm_Software_Center/Linux/ARM64/Debian/latest.deb -o qsc_installer.deb
        Copy to clipboard
3. `qsc-cli` Debianパッケージをインストールします。

sudo apt update
        sudo apt install ./qsc_installer.deb
        Copy to clipboard
4. 登録したEメールIDを使用して `qsc-cli` にログインします。

qsc-cli login -u <username>
        Copy to clipboard

`qsc-cli` の詳細については、[同期方法](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#howto-sync) を参照してください。

## Ubuntu ホスト・コンピューターのセットアップ

Ubuntu ホスト・コンピューターでソフトウェア・ツールをインストールして構成します。

1. 以下のパッケージをインストールします。

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 whiptail g++ libacl1
        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
        Copy to clipboard
2. クアルコムのログインIDとPATをホームディレクトリの `~/.netrc` ファイルに追加します。

# Log 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.
        Copy to clipboard

注釈

user@hostname:/local/mnt/workspace$ qsc-cli show-access-token

[Info]: Starting qsc-cli version 0.0.0.9

**5LThNlklb55mMVLB5C2KqUGU2jCF**
3. お好みのテキストエディターで `~/.netrc` ファイルを編集し、以下の項目を追加します。`~/.netrc` ファイルが存在しない場合、ファイルを作成します。

machine chipmaster2.qti.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        
        machine qpm-git.qualcomm.com
        login <your Qualcomm login id>
        password <your PAT token>
        Copy to clipboard
4. ロケールを設定します（まだ設定されていない場合）。

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
        Copy to clipboard
5. gitの構成を更新します。

# Check if your identity is configured in .gitconfig
        git config --get user.email
        git config --get user.name
        
        # Run the following commands if you don't 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
        
        # Add the following git configurations to follow remote redirects from http-alternates files or alternates
        git config --global http.https://chipmaster2.qti.qualcomm.com.followRedirects true
        git config --global http.https://qpm-git.qualcomm.com.followRedirects true
        Copy to clipboard
6. Python 3.10.2をセットアップします。

注釈

Python 3.10.2以降のバージョンを既にお持ちの場合は、以下の手順をスキップしてください。

python --version
        # Download it in a directory of your choice
        wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz
        tar -xvf Python-3.10.2.tgz
        cd Python-3.10.2
        # Use sudo if you need to access /opt
        ./configure --prefix=/opt/python3 --enable-optimizations
        make
        make install
        ln -s /opt/python3/bin/python3  /opt/python3/bin/python
        export PATH=/opt/python3/bin:$PATH
        export PYTHONPATH=/opt/python3/lib:$PYTHONPATH
        Copy to clipboard

## ファームウェアソースでビルドする

### ファームウェアの同期

以下のセクションのコマンドは、モデムと GPS を使用しないファームウェアイメージのバイナリとソースに基づいています（[ファームウェアディストリビューションを git リポジトリにマッピングする](https://docs.qualcomm.com/doc/80-70020-254J/topic/build_addn_info.html#mapping-firmware-table) のコマンドを参照）。したがって、`qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` が使用されます。他のディストリビューションを使う場合は、適宜ディレクトリを更新してください。

以下の表では、Qualcomm Yoctoのレイヤーとリリースタグについて説明しています。

| アクセスレベル | Yoctoレイヤー | リリースタグ | 例 |
| --- | --- | --- | --- |
| 一般の開発者（未登録） | `meta-qcom-hwe` | マニフェスト・リリース・タグ | qcom-6.6.90-QLI.1.5-Ver.1.1.xml |
| 一般の開発者（未登録） | `meta-qcom-qim-product-sdk` | マニフェスト・リリース・タグ | qcom-6.6.90-QLI.1.5-Ver.1.1\_qim-product-sdk-2.0.1.xml |
| 一般の開発者（未登録） | `meta-qcom-robotics-sdk` | マニフェスト・リリース・タグ | qcom-6.6.90-QLI.1.5-Ver.1.1\_robotics-product-sdk-1.1.xml |
| アクセス権限を持つライセンス付与された開発者 | `meta-qcom-extras` | meta-qcom-extrasリリースタグ | r1.0\_00097.0 |
| [ファームウェアディストリビューションへのアクセスレベルのマッピング](https://docs.qualcomm.com/doc/80-70020-254J/topic/build_addn_info.html#build-mapping-access-levels) を参照してください | NA | ファームウェア・リリース・タグ | r1.0\_00095.0 |
|  |  |  |  |
|  |  |  |  |

以下の表では、ダウンロードできるファームウェア・ディストリビューションについて説明しています。Yocto レイヤーの詳細については、[Qualcomm Linux のメタデータレイヤー](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27/qualcomm_bsp_metadata_layers.html) を参照してください。

| **アクセスレベル** | **ディストリビューション** | Yoctoレイヤー |
| --- | --- | --- |
| アクセス権限を持つライセンス付与された開発者 | BSPビルド：ハイレベルOSおよびファームウェアソース（GPSのみ）<br><br><br>`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NoModem` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| アクセス権限を持つライセンス付与された開発者 | BSP ビルド + Qualcomm IM SDK<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
| アクセス権限を持つライセンス付与された開発者 | BSP ビルド + Qualcomm IM SDK + QIR SDK<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|NM_QIRPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-robotics-extras`<br><br><br>`meta-ros`<br><br><br>`meta-qcom-robotics`<br><br><br>`meta-qcom-robotics-distro`<br><br><br>`meta-qcom-robotics-sdk`<br><br><br>`meta-qcom-qim-product-sdk` |
| ライセンス付与された開発者（アクセスについてはクアルコムにお問い合わせください） | BSPビルド：ハイレベルOSとファームウェア（GPSのみ）のソース<br><br><br>`Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| ライセンス付与された開発者（アクセスについてはクアルコムにお問い合わせください） | BSP ビルド + Qualcomm IM SDK（GPS のみ）<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AP|Standard|OEM|QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-robotics-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
| ライセンス付与された開発者（アクセスについてはクアルコムにお問い合わせください） | BSPビルド：ハイレベルOSとファームウェア（GPSおよびモデム）のソース<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras` |
| ライセンス付与された開発者（アクセスについてはクアルコムにお問い合わせください） | BSP ビルド + Qualcomm IM SDK（GPS およびモデム）<br><br><br><br>> <br>> <br>> `Qualcomm_Linux.SPF.1.0|AMSS|Standard|OEM|QIMPSDK` | `meta-qcom`<br><br><br>`meta-qcom-hwe`<br><br><br>`meta-qcom-distro`<br><br><br>`meta-qcom-extras`<br><br><br>`meta-qcom-qim-product-sdk` |
|  |  |  |
|  |  |  |
|  |  |  |

以下の表では、ファームウェアのディストリビューションを git レポジトリにマッピングしています。

ファームウェアディストリビューションをgitリポジトリにマッピングする

| ファームウェアディストリビューション | Gitコマンド | git cloneでファームウェアが同期されるディレクトリ |
| --- | --- | --- |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NoModem | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nomodem.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nomodem` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NM\_QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|NM\_QIRPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM| | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem.git` | `qualcomm-linux-spf-1-0_ap_standard_oem` |
| Qualcomm\_Linux.SPF.1.0|AP|Standard|OEM|QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_qimpsdk.git` | `qualcomm-linux-spf-1-0_ap_standard_oem_qimpsdk` |
| Qualcomm\_Linux.SPF.1.0|AMSS|Standard|OEM| | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_amss_standard_oem.git` | `qualcomm-linux-spf-1-0_amss_standard_oem` |
| Qualcomm\_Linux.SPF.1.0|AMSS|Standard|OEM|QIMPSDK | `git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_amss_standard_oem_qimpsdk.git` | `qualcomm-linux-spf-1-0_amss_standard_oem_qimpsdk` |

**Git コマンド** の列（[ファームウェア・ディストリビューションを git リポジトリにマッピングする](https://docs.qualcomm.com/doc/80-70020-254J/topic/build_addn_info.html#mapping-firmware-table) の表）には、ファームウェア・ソースが格納されている git レポジトリに関する情報が記載されています。これらのリポジトリは、Qualcommサーバー上でホストされています。アクセス・プロファイルとユース・ケースに基づいて、適切なリポジトリをクローンしてください。

次の `git clone` コマンドを使用すると、選択したソースのファームウェアコンポーネントがダウンロードされます（モデムを除く）。

mkdir -p <FIRMWARE_ROOT>
    cd <FIRMWARE_ROOT>
    git clone -b <firmware release tag> --depth 1 https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk.git
    # Example, <firmware release tag> is r1.0_00095.0
    Copy to clipboard

`git clone` コマンドを使用すると、内容が `<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` ディレクトリにクローンされます。最新の `<manifest release tag>` については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) の *ビルドクリティカル・リリース・タグ* のセクションを参照してください。

### ファームウェアのビルド

Tab QCS6490/QCS5430
Tab IQ-9075
Tab IQ-8275

前提条件

- 動作中のシェルが `bash` であることを確認します。

echo $0
        Copy to clipboard

    コマンドの期待される出力は `bash` です。そうでない場合は、bashシェルに入ります。

bash
        Copy to clipboard
- 以下のコマンドを使用して、libffi6パッケージをインストールします。これは、IDLファイルからヘッダー・ファイルとソース・ファイルを生成するQAICコンパイラーに必要です。

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- LLVM for AOP、Qualcomm ^®^ Trusted Execution Environment（TEE）、およびブートコンパイルをインストールします。

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qsc-cli and activate the license
        qsc-cli login
        qsc-cli tool activate-license --name sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qsc-cli tool install --name sdllvm_arm --required-version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for the Qualcomm TEE compilation is 16.0.7
        qsc-cli tool install --name sdllvm_arm --required-version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 変数をエクスポートし、ファームウェアのビルドをコンパイルします（`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` が最上位ディレクトリです）。

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ プロセッサーをインストールしセットアップします。環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qsc-cli` の使用時にインストール・パスを変更するには、[Hexagon ツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。

qsc-cli tool extract --name hexagon8.4 --required-version 8.4.07
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

cDSPのビルド

**必要なツール**

- コンパイラーのバージョン：Hexagon 8.4.07
- Pythonのバージョン：Python 3.10.2
- libffi6パッケージ

**ビルドの手順**

1. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/CDSP.HT.2.5.c3/cdsp_proc/build/ms
        Copy to clipboard
2. ビルドをクリーンします。

python ./build_variant.py kodiak.cdsp.prod --clean
        Copy to clipboard
3. イメージを構築します。

python ./build_variant.py kodiak.cdsp.prod
        Copy to clipboard

aDSPのビルド

**必要なツール**

- コンパイラーのバージョン：Hexagon 8.4.07
- Pythonのバージョン：Python 3.10.2
- libffi6パッケージ

**ビルドの手順**

1. Nanopb の統合（1 回限りのセットアップ）:

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/qsh_api
        curl https://jpa.kapsi.fi/nanopb/download/nanopb-0.3.9.5-linux-x86.tar.gz -o nanopb-0.3.9.5-linux-x86.tar.gz
        cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/
        python qsh_api/build/config_nanopb_dependency.py -f nanopb-0.3.9.5-linux-x86
        Copy to clipboard
2. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/ADSP.HT.5.5.c8/adsp_proc/build/ms
        Copy to clipboard
3. ビルドをクリーンします。

python ./build_variant.py kodiak.adsp.prod --clean
        Copy to clipboard
4. イメージを構築します。

python ./build_variant.py kodiak.adsp.prod
        Copy to clipboard

ブートのビルド

**必要なツール**

- コンパイラーのバージョン：LLVMのバージョンを14.0.4に更新する必要があります

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Pythonのバージョン：Python 3.10
- libffi6パッケージ

**ビルドの手順**

1. デバイス・ツリー・コンパイラーをインストールします。

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 依存関係をインストールします。

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. ビルドをクリーンします。

python -u boot_images/boot_tools/buildex.py -t kodiak,QcomToolsPkg -v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. イメージを構築します。

python -u boot_images/boot_tools/buildex.py -t kodiak,QcomToolsPkg -v LAA -r RELEASE
        Copy to clipboard

注釈

デバッグ・バリアント・ビルドの場合は `RELEASE` を `DEBUG` に置き換えます。

Qualcomm TEE ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 16.0.7
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. LLVMをインストールします。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_kodiak.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. ビルドをクリーンします。

python build_all.py -b TZ.XF.5.0 CHIPSET=kodiak --cfg=build_config_deploy_kodiak.xml --clean
        Copy to clipboard
3. イメージを構築します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=kodiak --cfg=build_config_deploy_kodiak.xml
        Copy to clipboard

AOP ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 14.0.4
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6/aop_proc/build/
        Copy to clipboard
2. ビルドをクリーンします。

./build_kodiak.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. イメージを構築します。

./build_kodiak.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCPファームウェア

CPUCPファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

CPUSYS.VMファームウェア

CPUSYS.VMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

BTFMファームウェア

BTFMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

WLANファームウェア

WLANファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

ファームウェアのプリビルドの生成（ブートクリティカルバイナリと分割ファームウェアバイナリ）

- コンパイルした個々のコンポーネントから、ファームウェアの統合ファームウェアバイナリを作成します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/build
        python build.py --imf
        Copy to clipboard
- ファームウェアのプリビルドは、`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/build/ufs/bin` ディレクトリ内に以下のzipファイルが生成されていれば成功です。

> 
> 
> - `QCM6490_bootbinaries.zip`
>     - `QCM6490_dspso.zip`
>     - `QCM6490_fw.zip`

前提条件

- 動作中のシェルが `bash` であることを確認します。

echo $0
        Copy to clipboard

    コマンドの期待される出力は `bash` です。そうでない場合は、bashシェルに入ります。

bash
        Copy to clipboard
- 以下のコマンドを使用して、libffi6パッケージをインストールします。これは、IDLファイルからヘッダー・ファイルとソース・ファイルを生成するQAICコンパイラーに必要です。

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- AOP、Qualcomm TEE、およびブートコンパイル用にLLVMをインストールします。

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qsc-cli and activate the license
        qsc-cli login
        qsc-cli tool activate-license --name sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qsc-cli tool install --name sdllvm_arm --required-version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for the Qualcomm TEE compilation is 16.0.7
        qsc-cli tool install --name sdllvm_arm --required-version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 変数をエクスポートし、ファームウェアのビルドをコンパイルします（`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` が最上位ディレクトリです）。

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ プロセッサーをインストールしセットアップします。環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qsc-cli` の使用時にインストール・パスを変更するには、[Hexagon ツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。

qsc-cli tool extract --name hexagon8.6 --required-version 8.6.05.2
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

DSPのビルド

**必要なツール**

- コンパイラーバージョン：Hexagon 8.6.05.2
- Pythonのバージョン：Python 3.8.2

**ビルドの手順**

1. デバイス・ツリー・コンパイラーをインストールします。

sudo apt-get install device-tree-compiler
        export DTC_PATH=/usr/bin
        Copy to clipboard
2. 依存関係をインストールします。

pip install ruamel.yaml==0.17.17
        pip install dtschema==2021.10
        pip install jsonschema==4.0.0
        Copy to clipboard
3. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/DSP.AT.1.0/dsp_proc/build/ms
        Copy to clipboard
4. ビルドをクリーンします。

python ./build_variant.py lemans.adsp.prod --clean
        python ./build_variant.py lemans.cdsp0.prod --clean
        python ./build_variant.py lemans.cdsp1.prod --clean
        python ./build_variant.py lemans.gpdsp0.prod --clean
        python ./build_variant.py lemans.gpdsp1.prod --clean
        Copy to clipboard
5. イメージを構築します。

python ./build_variant.py lemans.adsp.prod && python ./build_variant.py lemans.cdsp0.prod && python ./build_variant.py lemans.cdsp1.prod && python ./build_variant.py lemans.gpdsp0.prod && python ./build_variant.py lemans.gpdsp1.prod
        Copy to clipboard

ブートのビルド

**必要なツール**

- コンパイラーのバージョン：LLVMのバージョンを14.0.4に更新する必要があります

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Pythonのバージョン：Python 3.10
- libffi6パッケージ

**ビルドの手順**

1. デバイス・ツリー・コンパイラーをインストールします。

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 依存関係をインストールします。

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. ビルドをクリーンします。

python -u boot_images/boot_tools/buildex.py -t lemans,QcomToolsPkg -v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. イメージを構築します。

python -u boot_images/boot_tools/buildex.py -t lemans,QcomToolsPkg -v LAA -r RELEASE
        Copy to clipboard

注釈

デバッグ・バリアント・ビルドの場合は `RELEASE` を `DEBUG` に置き換えます。

Qualcomm TEE ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 16.0.7
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. LLVMをインストールします。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_lemans.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. ビルドをクリーンします。

python build_all.py -b TZ.XF.5.0 CHIPSET=lemans --cfg=build_config_deploy_lemans.xml --clean
        Copy to clipboard
3. イメージを構築します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=lemans --cfg=build_config_deploy_lemans.xml
        Copy to clipboard

AOP ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 14.0.4
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6.1/aop_proc/build/
        Copy to clipboard
2. ビルドをクリーンします。

./build_lemansau.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. イメージを構築します。

./build_lemansau.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCPファームウェア

CPUCPファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

CPUSYS.VMファームウェア

CPUSYS.VMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

BTFMファームウェア

BTFMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

WLANファームウェア

WLANファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

ファームウェアのプリビルドの生成（ブートクリティカルバイナリと分割ファームウェアバイナリ）

- コンパイルした個々のコンポーネントから、ファームウェアの統合ファームウェアバイナリを作成します。

注釈

[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/ReleaseNote.html#additional-information) にある *追加情報* セクションの変更をすべて適用します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS9100.LE.1.0/common/build
        python build.py --imf
        Copy to clipboard
- ファームウェアのプリビルドは、`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCM6490.LE.1.0/common/build/ufs/bin` ディレクトリ内に以下のzipファイルが生成されていれば成功です。

> 
> 
> - `QCS9100_bootbinaries.zip`
>     - `QCS9100_dspso.zip`
>     - `QCS9100_fw.zip`

前提条件

- 動作中のシェルが `bash` であることを確認します。

echo $0
        Copy to clipboard

    コマンドの期待される出力は `bash` です。そうでない場合は、bashシェルに入ります。

bash
        Copy to clipboard
- 以下のコマンドを使用して、libffi6パッケージをインストールします。これは、IDLファイルからヘッダー・ファイルとソース・ファイルを生成するQAICコンパイラーに必要です。

curl -LO http://archive.ubuntu.com/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb
        sudo dpkg -i libffi6_3.2.1-8_amd64.deb
        Copy to clipboard
- AOP、Qualcomm TEE、およびブートコンパイル用にLLVMをインストールします。

cd <FIRMWARE_ROOT>
        mkdir llvm
        
        # Log in to qsc-cli and activate the license
        qsc-cli login
        qsc-cli tool activate-license --name sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qsc-cli tool install --name sdllvm_arm --required-version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for the Qualcomm TEE compilation is 16.0.7
        qsc-cli tool install --name sdllvm_arm --required-version 16.0.7 --path <FIRMWARE_ROOT>/llvm/16.0.7
        chmod -R 777 <FIRMWARE_ROOT>/llvm/16.0.7
        Copy to clipboard
- `SECTOOLS` 変数をエクスポートし、ファームウェアのビルドをコンパイルします（`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk` が最上位ディレクトリです）。

export SECTOOLS=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/sectoolsv2/ext/Linux/sectools
        export SECTOOLS_DIR=<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/sectoolsv2/ext/Linux
        Copy to clipboard
- Qualcomm^®^ Hexagon^™^ プロセッサーをインストールしセットアップします。環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qsc-cli` の使用時にインストール・パスを変更するには、[Hexagon ツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。 .. container:: nohighlight

> 
> 
> qsc-cli tool extract --name hexagon8.6 --required-version 8.6.05.2
>         qsc-cli tool extract --name hexagon8.7 --required-version 8.7.02.1
>         export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
>         echo $HEXAGON_ROOT
>         Copy to clipboard

DSPのビルド

**必要なツール**

- コンパイラーバージョン：Hexagon 8.6.05.2 および 8.7.02.1
- Pythonのバージョン：Python 3.8.2

**ビルドの手順**

1. デバイス・ツリー・コンパイラーをインストールします。

sudo apt-get install device-tree-compiler
        export DTC_PATH=/usr/bin
        Copy to clipboard
2. 依存関係をインストールします。

pip install ruamel.yaml==0.17.17
        pip install dtschema==2021.10
        pip install jsonschema==4.0.0
        Copy to clipboard
3. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/DSP.AT.1.0/dsp_proc/build/ms
        Copy to clipboard
4. ビルドをクリーンします。

python ./build_variant.py lemans.adsp.prod --clean
        python ./build_variant.py monaco.cdsp0.prod --clean
        python ./build_variant.py lemans.gpdsp0.prod --clean
        Copy to clipboard
5. イメージを構築します。

python ./build_variant.py lemans.adsp.prod && python ./build_variant.py monaco.cdsp0.prod && python ./build_variant.py lemans.gpdsp0.prod
        Copy to clipboard

ブートのビルド

**必要なツール**

- コンパイラーのバージョン：LLVMのバージョンを14.0.4に更新する必要があります

export LLVM=<FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
- Pythonのバージョン：Python 3.10
- libffi6パッケージ

**ビルドの手順**

1. デバイス・ツリー・コンパイラーをインストールします。

sudo apt-get install device-tree-compiler
        export DTC=/usr/bin
        Copy to clipboard
2. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/BOOT.MXF.1.0.c1/
        Copy to clipboard
3. 依存関係をインストールします。

python -m pip install -r boot_images/boot_tools/dtschema_tools/oss/requirements.txt
        pip install json-schema-for-humans
        Copy to clipboard
4. ビルドをクリーンします。

python -u boot_images/boot_tools/buildex.py -t monaco,QcomToolsPkg -v LAA -r RELEASE --build_flags=cleanall
        Copy to clipboard
5. イメージを構築します。

python -u boot_images/boot_tools/buildex.py -t monaco,QcomToolsPkg -v LAA -r RELEASE
        Copy to clipboard

注釈

デバッグ・バリアント・ビルドの場合は `RELEASE` を `DEBUG` に置き換えます。

Qualcomm TEE ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 16.0.7
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. LLVMをインストールします。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        vi build_config_deploy_monaco.xml
        # Edit all the occurrences of /pkg/qct/software/llvm/release/arm/16.0.7/ to <FIRMWARE_ROOT>/llvm/16.0.7/
        Copy to clipboard
2. ビルドをクリーンします。

python build_all.py -b TZ.XF.5.0 CHIPSET=monaco --cfg=build_config_deploy_monaco.xml --clean
        Copy to clipboard
3. イメージを構築します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/TZ.XF.5.29.1/trustzone_images/build/ms/
        python build_all.py -b TZ.XF.5.0 CHIPSET=monaco --cfg=build_config_deploy_monaco.xml
        Copy to clipboard

AOP ファームウェアのビルド

**必要なツール**

- コンパイラーバージョン：LLVM 14.0.4
- Pythonのバージョン：Python 3.10

**ビルドの手順**

1. 以下のディレクトリに移動します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/AOP.HO.3.6.1/aop_proc/build/
        Copy to clipboard
2. ビルドをクリーンします。

./build_monaco.sh -c -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard
3. イメージを構築します。

./build_monaco.sh -l <FIRMWARE_ROOT>/llvm/14.0.4/
        Copy to clipboard

CPUCPファームウェア

CPUCPファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

CPUSYS.VMファームウェア

CPUSYS.VMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

BTFMファームウェア

BTFMファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

WLANファームウェア

WLANファームウェアはバイナリとしてリリースされており、ビルドのコンパイルは必要ありません。

ファームウェアのプリビルドの生成（ブートクリティカルバイナリと分割ファームウェアバイナリ）

- コンパイルした個々のコンポーネントから、ファームウェアの統合ファームウェアバイナリを作成します。

cd <FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/build
        python build.py --imf
        Copy to clipboard
- ファームウェアのプリビルドは、`<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/QCS8300.LE.1.0/common/build/ufs/bin` ディレクトリ内に以下のzipファイルが生成されていれば成功です。

    - `QCS8300_bootbinaries.zip`
    - `QCS8300_dspso.zip`
    - `QCS8300_fw.zip`

### エクストラで BSP イメージをビルドする

BSP イメージ・ビルドには、クアルコム製デバイスをサポートするソフトウェア / コンポーネントと、Qualcomm SoC に適用できるソフトウェア機能が含まれています。このビルドには、Qualcomm 開発キット用のリファレンス・ディストリビューションの構成も含まれています。`meta-qcom-extras` レイヤーを使用すると、通常はバイナリとして存在する選択したコンポーネントをソース・コンパイルすることができます。詳細については、[Qualcomm Linux メタデータレイヤー](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-27/qualcomm_bsp_metadata_layers.html) を参照してください。

1. Qualcomm Yocto、およびエクストラを含むサポートレイヤーをダウンロードします。`<manifest release tag>` および `<meta-qcom-extras release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.90-QLI.1.5-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_00097.0
        mkdir -p layers/meta-qcom-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        Copy to clipboard
2. Yoctoビルドをセットアップします。

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        Copy to clipboard
3. ビルド環境をセットアップします。

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

    `MACHINE` パラメーター値については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) を参照してください。
4. Yoctoビルドをコンパイルします。

bitbake qcom-multimedia-image
        Copy to clipboard

注釈

Yoctoビルドをクリーンします。

bitbake -fc cleansstate qcom-multimedia-image
        bitbake -fc cleanall qcom-multimedia-image
        Copy to clipboard
5. ビルドに成功したら、`<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` ディレクトリに `system.img` ファイルがあることを確認します。

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard
6. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70020-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

### エクストラで IM SDK イメージをビルドする

Qualcomm IM SDK は、Qualcomm IM SDK、Qualcomm Neural Processing SDK、Qualcomm AI Engine Direct SDK、LiteRT の 4 つのスタンドアロン機能 SDK のコレクションです。この SDK には、ユース・ケースの開発に使用できるリファレンス・アプリケーションも含まれています。`meta-qcom-extras` レイヤーを使用すると、通常はバイナリとして存在する選択したコンポーネントをソース・コンパイルすることができます。詳細については、[Qualcomm IM SDK クイック・スタート・ガイド](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-51) を参照してください。

1. Qualcomm IM SDK レイヤー、Qualcomm Yocto レイヤー、およびエクストラを含むサポートレイヤーをダウンロードします。`<manifest release tag>` および `<meta-qcom-extras release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.90-QLI.1.5-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_00097.0
        mkdir -p layers/meta-qcom-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.90-QLI.1.5-Ver.1.1_qim-product-sdk-2.0.1 layers/meta-qcom-qim-product-sdk
        Copy to clipboard
2. Yoctoビルドをセットアップします。

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras meta-qcom-qim-product-sdk"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        Copy to clipboard
3. ビルド環境をセットアップします。

MACHINE=<machine> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
        # source setup-environment: Sets the environment, creates the build directory build-qcom-wayland,
        # and enters into build-qcom-wayland directory.
        Copy to clipboard

    `MACHINE` パラメーター値については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) を参照してください。
4. Qualcomm IM SDK のビルドをコンパイルします。

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard
5. Qualcomm IM SDK のビルドをクリーンします。

bitbake -fc cleansstate qcom-multimedia-image
        bitbake -fc cleanall qcom-multimedia-image
        bitbake -fc cleansstate qcom-qim-product-sdk
        bitbake -fc cleanall qcom-qim-product-sdk
        Copy to clipboard
6. ビルドに成功したら、`<workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image` ディレクトリに `system.img` ファイルがあることを確認します。

cd <workspace_path>/build-qcom-wayland/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-multimedia-image
        ls -al system.img
        Copy to clipboard
7. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70020-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

### エクストラでQIR SDKイメージをビルドする

QIR SDK 2.0 は、Qualcomm Linux リリース上でロボット機能の開発を可能にするコンポーネントのコレクションです。`meta-qcom-extras` レイヤーを使用すると、選択したコンポーネントをソース・コンパイルすることができます。これらのコンポーネントはこれ以外の場合はバイナリとして使用されます。詳細については、[QIR SDK 2.0 ユーザーガイド](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-265) を参照してください。

注釈

開始する前に、QIR SDKのそれぞれのファームウェアをクローンします（例： `qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk`）。

1. QIR SDK レイヤー、Qualcomm Yocto、エクストラを含むサポートレイヤーをダウンロードします。`<manifest release tag>`、`<meta-qcom-extras release tag>`、および `<meta-qcom-qim-product-sdk release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。

# cd to directory where you have 300 GB of free storage space to create your workspaces
        mkdir <WORKSPACE_DIR>
        cd <WORKSPACE_DIR>
        repo init -u https://github.com/quic-yocto/qcom-manifest -b qcom-linux-scarthgap -m <manifest release tag>
        # Example, <manifest release tag> is qcom-6.6.90-QLI.1.5-Ver.1.1.xml
        repo sync
        git clone https://qpm-git.qualcomm.com/home2/git/qualcomm/qualcomm-linux-spf-1-0_hlos_oem_metadata.git -b <meta-qcom-extras release tag> --depth 1
        # Example, <meta-qcom-extras release tag> is r1.0_00097.0
        mkdir -p layers/meta-qcom-extras
        mkdir -p layers/meta-qcom-robotics-extras
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-extras/* layers/meta-qcom-extras/
        cp -rf qualcomm-linux-spf-1-0_hlos_oem_metadata/<product>/common/config/meta-qcom-robotics-extras/* layers/meta-qcom-robotics-extras/
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        
        git clone https://github.com/ros/meta-ros -b scarthgap layers/meta-ros && cd layers/meta-ros && git checkout c560699e810e60a9526f4226c2c23f8d877280c8 && cd ../../
        git clone https://github.com/quic-yocto/meta-qcom-robotics.git -b qcom-6.6.90-QLI.1.5-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.90-QLI.1.5-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.90-QLI.1.5-Ver.1.1_robotics-product-sdk-1.1 layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.90-QLI.1.5-Ver.1.1_qim-product-sdk-2.0.1 layers/meta-qcom-qim-product-sdk
        # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.90-QLI.1.5-Ver.1.1_qim-product-sdk-2.0.1
        Copy to clipboard
2. Yoctoビルドをセットアップします。

# Export additional meta layers to EXTRALAYERS. Location is assumed under <WORKSPACE DIR>/layers.
        export EXTRALAYERS="meta-qcom-extras meta-qcom-robotics-extras"
        
        # CUST_ID is used to clone the proprietary source repositories downloaded by meta-qcom-extras.
        # It allows source compilation for the corresponding binaries present in meta-qcom-hwe.
        # CUST_ID must be set to "213195" for no-modem based distributions ("qualcomm-linux-spf-1-0_ap_standard_oem_nomodem",
        # "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qimpsdk", "qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk").
        # For other modem based distributions, CUST_ID must be set based on the "Customer ID".
        # To find "Customer ID", sign in to your account at qualcomm.com.
        # Click the Profile icon, select Account Settings, and then scroll down to the Company Information section.
        # export CUST_ID using the following command.
        export CUST_ID=<Customer ID>
        
        # The firmware recipe is compiled when the Yocto build is initiated. Firmware recipe expects the
        # path of firmware. You have generated firmware prebuilts (boot-critical and split-firmware binaries)
        # using the steps described in the previous section.
        # Example, for QCM6490, the directory path must contain QCM6490_bootbinaries.zip, QCM6490_dspso.zip, and QCM6490_fw.zip.
        # Set the environment variable to pick up the prebuilts:
        export FWZIP_PATH="<FIRMWARE_ROOT>/qualcomm-linux-spf-1-0_ap_standard_oem_nm-qirpsdk/<product>/common/build/ufs/bin"
        # An example <product> is QCM6490.LE.1.0. For more information about <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/).
        Copy to clipboard
3. QIR SDKのビルドをコンパイルします。

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=<machine> DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # Example, MACHINE=qcs6490-rb3gen2-vision-kit DISTRO=qcom-robotics-ros2-humble QCOM_SELECTED_BSP=custom source setup-robotics-environment
        # source setup-robotics-environment: Sets the environment, creates the build directory build-qcom-robotics-ros2-humble,
        # and enters into build-qcom-robotics-ros2-humble directory.
        ../qirp-build qcom-robotics-full-image
        Copy to clipboard

    `MACHINE` パラメーター値については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250630224842/) を参照してください。
4. ビルドが成功したら、QIR SDKのビルドアーティファクトが以下のパスにあることを確認します。

QIR SDK artifacts: <workspace_path>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/qirpsdk_artifacts/qirp-sdk_<version>.tar.gz
        # system.img is present in the following path
        Robotics image: <workspace_path>/build-qcom-robotics-ros2-humble/tmp-glibc/deploy/images/qcs6490-rb3gen2-vision-kit/qcom-robotics-full-image
        Copy to clipboard
5. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70020-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

## 次のステップ

- [UARTシェルに接続](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#connect-uart)
- [ネットワークに接続](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#connect-to-network)
- [SSHを使ってログインする](https://docs.qualcomm.com/doc/80-70020-254J/topic/how_to.html#use-ssh)
- [同期、ビルド、フラッシュの問題のトラブルシューティング](https://docs.qualcomm.com/doc/80-70020-254J/topic/troubleshoot_sync_build_and_flash.html#troubleshoot-sync-build-and-flash)

Last Published: Dec 23, 2025

[Previous Topic
登録ユーザー向けのGitHubを使用したビルド](https://docs.qualcomm.com/bundle/publicresource/80-70020-254J/topics/build_from_source_github_intro.md) [Next Topic
ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/bundle/publicresource/80-70020-254J/topics/flash_images.md)

Source: [https://docs.qualcomm.com/doc/80-70020-254J/topic/build_addn_info.html](https://docs.qualcomm.com/doc/80-70020-254J/topic/build_addn_info.html)