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

注釈

この情報は、許可ユーザーのみに適用されます。アクセス権をアップグレードするには [http://www.qualcomm.com/support/working-with-qualcomm](http://www.qualcomm.com/support/working-with-qualcomm) を参照してください。

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

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

| 構成 | ツール | アクセス許可 |
| --- | --- | --- |
| x86マシン | Git 1.8.3.1以降のバージョン | 一部のコマンドを実行するには、`sudo` 権限が必要です |
| クアッドコアCPU、例：Intel i7-2600 3.4GHz（同等以上） | Tar 1.28以降のバージョン | 一部のコマンドを実行するには、`sudo` 権限が必要です |
| 300GBのディスク空き容量（スワップパーティション32GB超） | Python 3.10.2以降のバージョン | 一部のコマンドを実行するには、`sudo` 権限が必要です |
| 16GB RAM | GCC 8.0以降のバージョン | 一部のコマンドを実行するには、`sudo` 権限が必要です |
| Ubuntu 22.04 | GNU Make 4.0以降のバージョン | 一部のコマンドを実行するには、`sudo` 権限が必要です |
|  |  |  |
|  |  |  |
|  |  |  |
|  |  |  |

注釈

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

## QSC CLIのインストール

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

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

cd <workspace_path>
        curl -L https://softwarecenter.qualcomm.com/api/download/software/qsc/linux/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` にログインします。

注釈

登録するには、[https://www.qualcomm.com/support/working-with-qualcomm](https://www.qualcomm.com/support/working-with-qualcomm) にアクセスしてください。

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

注釈

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

## 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 pat --get
        # 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 pat --get

[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

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

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

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

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

以下の表では、必要性と資格に応じてダウンロードすることができるファームウェア・ディストリビューションについて説明しています。

| **アクセスレベル** | **ディストリビューション** | 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ビルド＋QIMP 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ビルド＋QIMP SDK＋QIRP 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ビルド＋QIMP 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ビルド＋QIMP 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` |
|  |  |  |
|  |  |  |
|  |  |  |

注釈

Yoctoレイヤーの詳細については、[Qualcomm Linuxのメタデータレイヤー](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-27/qualcomm_linux_metadata_layers_overview.html#qualcomm-linux-metadata-layers) を参照してください。

ファームウェアディストリビューションを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` |

注釈

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

**Gitコマンド** の列（[ファームウェア・ディストリビューションをgitリポジトリにマッピングする](https://docs.qualcomm.com/doc/80-70018-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_00075.0
    Copy to clipboard

注釈

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

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

Tab QCS6490/QCS5430
Tab QCS9075
Tab QCS8275

前提条件

- 動作中のシェルが `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 qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --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^™^ プロセッサーをインストールしセットアップします。

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

注釈

環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qpm-cli` の使用時にインストール・パスを変更するには、[Hexagonツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70018-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。

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パッケージ

**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

**ビルドの手順**

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

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
2. ビルドをクリーンします。

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

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 qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --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^™^ プロセッサーをインストールしセットアップします。

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

注釈

環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qpm-cli` の使用時にインストール・パスを変更するには、[Hexagonツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70018-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。

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-250403001134/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/QCS9100.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 qpm-cli and activate the license
        qpm-cli --login
        qpm-cli --license-activate sdllvm_arm
        
        # LLVM requirement for boot compilation is 14.0.4
        qpm-cli --install sdllvm_arm --version 14.0.4 --path <FIRMWARE_ROOT>/llvm/14.0.4
        chmod -R 777 <FIRMWARE_ROOT>/llvm/14.0.4
        
        # LLVM requirement for Qualcomm TEE compilation is 16.0.7
        qpm-cli --install sdllvm_arm --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^™^ プロセッサーをインストールしセットアップします。

qpm-cli --extract hexagon8.6 --version 8.6.05.2
        qpm-cli --extract hexagon8.7 --version 8.7.02.1
        export HEXAGON_ROOT=$HOME/Qualcomm/HEXAGON_Tools
        echo $HEXAGON_ROOT
        Copy to clipboard

注釈

環境変数HEXAGON\_ROOTに、Hexagon SDKがインストールされているパスを設定します。`qpm-cli` の使用時にインストール・パスを変更するには、[Hexagonツールのインストール・パスを変更する](https://docs.qualcomm.com/doc/80-70018-254J/topic/how_to.html#change-hex-tool-install-path) を参照してください。

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-70018-27/qualcomm_linux_metadata_layers_overview.html#qualcomm-linux-metadata-layers) を参照してください。

1. Qualcomm Yocto、およびエクストラを含むサポートレイヤーをダウンロードします：

# 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.65-QLI.1.4-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_00077.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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard

注釈

`<manifest release tag>` および `<meta-qcom-extras release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。
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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        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-250403001134/) を参照してください。
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

    ビルドに成功したら、`<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
5. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70018-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

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

QIMP SDKは、Qualcomm IM SDK、Qualcomm Neural Processing SDK、Qualcomm AI Engine direct SDK、およびLiteRTという4つのスタンドアロン機能SDKのコレクションです。また、ユース・ケースの開発に使用できるリファレンス・アプリケーションも含まれています。`meta-qcom-extras` レイヤーを使用すると、通常はバイナリとして存在する選択したコンポーネントをソース・コンパイルすることができます。

詳細については、[QIMP SDKクイック・スタート・ガイド](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-51) を参照してください。

1. QIMP SDKレイヤー、Qualcomm Yoctoレイヤー、およびエクストラを含むサポートレイヤーをダウンロードします。

# 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.65-QLI.1.4-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_0005.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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
        Copy to clipboard

注釈

`<manifest release tag>` および `<meta-qcom-extras release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。
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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        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-250403001134/) を参照してください。
4. QIMP SDKビルドをコンパイルします。

bitbake qcom-multimedia-image
        # Build SDK image
        bitbake qcom-qim-product-sdk
        Copy to clipboard

注釈

QIMP 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

    ビルドに成功したら、`<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
5. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70018-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

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

QIRP SDK 2.0は、Qualcomm Linuxリリース上でロボット機能の開発を可能にするコンポーネントのコレクションです。`meta-qcom-extras` レイヤーを使用すると、バイナリとして利用可能な選択したコンポーネントをソースコンパイルすることができます。

詳細については、[QIRP SDK 2.0ユーザーガイド](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265) を参照してください。

注釈

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

1. QIRP SDKレイヤー、Qualcomm Yocto、エクストラを含むサポートレイヤーをダウンロードします。

# 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.65-QLI.1.4-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_00077.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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        
        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.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics
        git clone https://github.com/quic-yocto/meta-qcom-robotics-distro.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-distro
        git clone https://github.com/quic-yocto/meta-qcom-robotics-sdk.git -b qcom-6.6.65-QLI.1.4-Ver.1.0_robotics-product-sdk-1.0 layers/meta-qcom-robotics-sdk
        git clone https://github.com/quic-yocto/meta-qcom-qim-product-sdk -b qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2 layers/meta-qcom-qim-product-sdk
        # Example, <meta-qcom-qim-product-sdk release tag> is qcom-6.6.65-QLI.1.4-Ver.1.1_qim-product-sdk-1.1.2
        Copy to clipboard

注釈

`<manifest release tag>`、`<meta-qcom-extras release tag>`、および `<meta-qcom-qim-product-sdk release tag>` の詳細については、[リリースノート](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-240626095531/) の *ビルドクリティカル・リリース・タグ* セクションを参照してください。
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 on <product>, see the latest Release Notes (https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134/).
        Copy to clipboard
3. QIRP 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-250403001134/) を参照してください。

    ビルドが成功したら、QIRP SDKのビルドアーティファクトが以下のパスにあることを確認します。

QIRP 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
4. [ソフトウェアイメージのフラッシュ](https://docs.qualcomm.com/doc/80-70018-254J/topic/flash_images.html) を使用して、生成されたビルドをフラッシュします。

Last Published: Sep 17, 2025

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

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