# Qualcomm Linuxカーネルを使い始める

ここでは、Qualcomm Linux開発キットと、それに関連するコンポーネント用に、Qualcomm^®^ Linuxカーネルをダウンロード、構成、開発し、システムイメージをビルドおよびフラッシュする方法を説明します。

Qualcomm Linuxカーネルのダウンロードと構成を始める前に、[Qualcomm Linuxビルドガイド](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) にしたがってホストコンピューターを設定してください。このガイドでは、一般的なQualcomm Linuxカーネルのワークフローについても説明しています。

## Access Qualcomm Linuxカーネルのソースコードへのアクセス

Qualcomm Linuxカーネルのソースコードにアクセスする方法については、[Qualcomm Linuxビルドガイド](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) を参照して、必要なQualcomm Linuxメタレイヤーをすべて取得してください。

Qualcomm LinuxはLTS Linuxカーネル（6.6.x）を使用しており、次の2つのソフトウェアバリアントをサポートしています。

> 
> 
> - 基本ボード・サポート・パッケージ（BSP）
> - カスタムBSP

注釈

- **基本BSP** バリアントは、アップストリームの LTS Linuxカーネル（6.6.x）と、少数のダウンストリーム・パッチの組を使用しています。カーネルのソースは [kernel/git/stable/linux.git](https://web.git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/?h=linux-6.6.y&amp;id=943e0aeece93a9c2329215d02621e634adf6d790) でホストされています。
- **カスタムBSP** バリアントは、カスタマイズされたLTS Linuxカーネル（6.6.x）を使用していて、CodeLinaro上のQualcommレポジトリでホストされています。カーネルのソースは [kernel.qclinux.1.0.r1-rel](https://git.codelinaro.org/clo/la/kernel/qcom/-/commits/LKP.QCLINUX.1.0.r1-04800-kernel.0?ref_type=tags) でホストされています。

表：バリアントのカーネルレシピのパス

| バリアント | カーネルレシピのパス |
| --- | --- |
| 基本BSP | `recipes-kernel/linux/linux-qcom-base_6.6.bb` |
| カスタムBSP | `recipes-kernel/linux/linux-qcom-custom_6.6.bb` |

注釈

基本BSPとカスタムBSPのカーネルレシピは `meta-qcom-hwe` レイヤーにあります。

カーネルのソースコードをダウンロードするためのGitのuniform resource identifier (URI) については、`recipes-kernel/linux/linux-qcom-base_6.6.bb` または `recipes-kernel/linux/linux-qcom-custom_6.6.bb` ファイルを参照してください。

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

> 
> 
> 注釈
> 
> 
> Yoctoのレシピは、[CodeLinaro](https://git.codelinaro.org/clo/la/kernel/qcom) で公開でホストされているQualcomm Linuxカーネルのソースを参照しています。

次の例は、基本BSPとカスタムBSPの、Qualcomm LinuxカーネルレシピのソースURI情報を示しています。

**基本BSP**

以下は、基本BSPバリアントのソースURIの情報です。

SECTION = "kernel"
    
    SUMMARY = "Linux kernel for QCOM devices"
    DESCRIPTION = "Recipe to build Linux kernel from 6.6 LTS branch"
    
    LICENSE = "GPL-2.0-only"
    LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
    
    inherit kernel
    
    COMPATIBLE_MACHINE = "(qcom)"
    
    SRC_URI = " git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;protocol=https;branch=linux-6.6.y \
                file://qcom.cfg \
    "
    Copy to clipboard

**カスタムBSP**

以下は、カスタムBSPバリアントのソースURIの情報です。

> 
> 
> SECTION = "kernel"
>     
>     SUMMARY = "Linux kernel for QCOM devices"
>     DESCRIPTION = "Recipe to build Linux kernel"
>     
>     LICENSE = "GPLv2.0-with-linux-syscall-note"
>     LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
>     
>     inherit kernel
>     
>     COMPATIBLE_MACHINE = "(qcom)"
>     
>     SRC_URI = "git://git.codelinaro.org/clo/la/kernel/qcom.git;protocol=https;rev=350dfd604d2ffbe0cac99bf3459b49114aad11f4;branch=kernel.qclinux.1.0.r1-rel \
>       file://QCLINUX-arm64-dts-qcom-sa8775p-ride-add-board-id-and.patch \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux.cfg', '', d)} \
>       ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux_debug.cfg', '', d)} \
>       "
>     Copy to clipboard

## サポートされているQualcommマシンを特定する

Qualcommマシン構成ファイルは `meta-qcom-hwe/conf/machine/` ディレクトリにあります。

マシン構成は `<SoC>-<board>-<variant>​.conf` という命名規則に従っています。各要素の内容は以下のとおりです。

- `SoC` ：System-on-Chip（SoC）の名前
- `board` ：ソフトウェアがビルドされているボードの種類
- `variant` ：製品の種類

例：

ファイル名が `qcs6490-rb3gen2-core-kit.conf` の場合、次のようになっています。

- `qcs6490` ：SoC
- `rb3gen2` ：ボード
- `core-kit` ：製品の種類

プラットフォーム特有のデバイスツリー・ファイルでも同じ命名規則が適用されます。

以下の例は、Yocto向けに構成されたサポート対象マシンの一覧です。

ls -l ./LE.QCLINUX.1.0/layers/meta-qcom-hwe/conf/machine/*.conf
    
    meta-qcom-hwe/conf/machine/qcs6490-rb3gen2-core-kit.conf
    meta-qcom-hwe/conf/machine/qcs6490-rb3gen2-vision-kit.conf
    meta-qcom-hwe/conf/machine/qcs9075-ride-sx.conf
    Copy to clipboard

以下の例は、Qualcommチップセットをもつ開発ボードに対するマシン構成の選択を示しています。

less meta-qcom-hwe/conf/machine/<SoC>-<board>-<variant>.conf
    
    #@TYPE: Machine
    #@NAME: <Machine name same as the machine conf file or ``<SoC>-<board>-<variant>`` >
    #@DESCRIPTION: Machine configuration for the development board, with Qualcomm qcs6490
    
    require conf/machine/include/qcom-<SoC>.inc
    Copy to clipboard

以下の例は、基本BSPとカスタムBSPのバリアントに対するカーネル構成の選択を示しています。

less meta-qcom-hwe/conf/machine/include/qcom-base.inc
    
    # Provider for linux kernel
    # qcom-base-bsp uses 'linux-qcom-base' as kernel
    PREFERRED_PROVIDER_virtual/kernel ?= "linux-qcom-custom"
    PREFERRED_PROVIDER_virtual/kernel:qcom-base-bsp ?= "linux-qcom-base"
    Copy to clipboard

注釈

- 基本BSPバリアントのコンパイル時には `linux-qcom-base` が選択されます。
- カスタムBSPのコンパイル時には `linux-qcom-custom` が選択されます。

## Yoctoイメージレシピとカーネル構成をビルドする

Qualcomm Linuxイメージレシピにアクセスすると、カーネル構成を変更できます。以下の表は、サポートされている `meta-qcom-hwe` イメージの一覧です。

表：Qualcomm Linuxでサポートされているイメージレシピ

| イメージ名 | 説明 |
| --- | --- |
| qcom-console-image<br>    Copy to clipboard | これは、すべての基本パッケージを起動するためのパッケージグループがあるシェル起動イメージです。 |
| qcom-multimedia-image<br>    Copy to clipboard | このイメージレシピには、オーディオ、Bluetooth ^®^、カメラ、コンピュータービジョン、ディスプレイ、ビデオなどのマルチメディア・ソフトウェア・コンポーネントのレシピが含まれています。 |
| qcom-multimedia-test-image<br>    Copy to clipboard | このイメージレシピにはテストが含まれています。 |

Qualcomm Linuxコードをダウンロードした後、`bitbake` コマンドを実行してイメージをビルドします。

注釈

基本BSPバリアントは `arch/arm64/configs/defconfig` カーネル構成ファイルを使用します。ローカルの変更は `meta-qcom-hwe/recipes-kernel/linux/linux-qcom-base-6.6/qcom.cfg` ファイルの `defconfig` の上にオーバーレイされます。

基本BSPバリアントのQualcomm Linuxカーネルをコンパイルするには、以下のコマンドを実行します。

# Use the filename of Machine conf file for MACHINE parameter
    $ MACHINE=<SoC>-<board>-<variant> DISTRO=qcom-wayland QCOM_SELECTED_BSP=base source setup-environment
    
    # build qcom linux console image
    $ bitbake qcom-console-image
    
    # Build Images are produced under "build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/"
    Copy to clipboard

Qualcomm Linuxでサポートされているイメージレシピ の一覧にあるイメージをビルドするため、Qualcomm Linux カーネルのカスタムBSPレシピは以下のカーネル構成フラグメントのいずれかを使用します。

注釈

ダウンストリーム・カーネル構成ファイルには `addons` があります。

表：カスタムBSPカーネル構成フラグメント

| カーネル構成フラグメント | 説明 |
| --- | --- |
| <kernel_src>/arch/arm64/configs/qcom_defconfig<br>    Copy to clipboard | 製品の基本構成をアップストリーム・カーネルと合わせることが必要 |
| <kernel_src>/arch/arm64/configs/qcom_debug.config<br>    Copy to clipboard | アップストリーム・カーネルから構成フラグメントをデバッグする |
| <kernel_src>/arch/arm64/configs/qcom_addons.config<br>    Copy to clipboard | アップストリームに合わせたベースに加えて、Qualcommのダウンストリーム拡張機能を追加 |
| <kernel_src>/arch/arm64/configs/qcom_addons_debug.config<br>    Copy to clipboard | Qualcommのダウンストリームでのデバッグを有効にする |

カスタムBSPバリアントなど、Qualcomm Linuxをビルドするには、以下のコマンドを実行する。

> 
> 
> # Use the filename of Machine conf file for MACHINE parameter
>       MACHINE=<SoC>-<board>-<variant> DISTRO=qcom-wayland QCOM_SELECTED_BSP=custom source setup-environment
>     
>     # build qcom linux console image
>       bitbake qcom-console-image
>     
>     # Build Images are produced under "build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/"
>     Copy to clipboard

カーネルのデフォルトのビルドは、`linux-qcom-base_6.6.bb` または `linux-qcom-custom_6.6.bb` ファイルで定義されます。

Qualcomm Linuxカーネルレシピは、上の表の3番目（パフォーマンス）と4番目（デバッグ）をサポートしています。デフォルトのビルド構成は3番目（パフォーマンス）です。以下のカーネル構成フラグメントは、カスタムBSPバリアントにのみ適用されます。

> 
> 
> 表：カスタムBSPカーネルのビルド構成タイプと構成
> 
> 
> | シリアル番号 | カーネルのビルド構成タイプ | defconfig/configフラグメント |
> | --- | --- | --- |
> | 1 | ベース | arch/arm64/configs/qcom_defconfig<br>    Copy to clipboard |
> | 2 | デバッグが有効なベース | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |
> | 3 | ダウンストリームの拡張があるベース | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |
> | 4 | デバッグが有効なベースとダウンストリーム | <ul><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_defconfig<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br><li><div class="highlight-pre notranslate"><div class="highlight"><pre class="pre codeblock"><code>arch/arm64/configs/qcom_addons_debug.config<br></code><span class="copyclip"><svg xmlns="http://www.w3.org/2000/svg" class="copyclipicon" width="25px" height="25px" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect><title>Copy to clipboard</title><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></span></pre></div><br></div><br></li><br></ul> |

カーネルの構成については、 カーネル構成 を参照してください。

### Qualcommデバッグビルドをコンパイルする

以下のコマンドを実行して、デバッグビルドをコンパイルします。

DEBUG_BUILD=1 bitbake qcom-console-image
    Copy to clipboard

ビルド構成を変更するには、`meta-qcom-hwe` レイヤーの `linux-qcom-base_6.6.bb` または `linux-qcom-custom_6.6.bb` カーネルレシピで、`KERNEL_CONFIG` および `KERNEL_CONFIG_FRAGMENTS` 変数を更新します。

### カーネル構成の例

以下の例は、基本BSPとカスタムBSPのカーネル構成を示しています。

**基本BSP**

以下の例は、`linux-qcom-base_6.6.bb` カーネルレシピを使用したカーネル構成を示しています。

> 
> 
> KERNEL_CONFIG_FRAGMENTS:append = " ${WORKDIR}/qcom.cfg"
>     
>     S = "${WORKDIR}/git"
>     
>     # 6.6.38
>     SRCREV = "2928631d5304b8fec48bad4c7254ebf230b6cc51"
>     PV = "6.6+git${SRCPV}"
>     
>     KERNEL_CONFIG ??= "defconfig"
>     Copy to clipboard

**カスタムBSP**

以下の例は、`linux-qcom-custom_6.6.bb` カーネルレシピを使用したカーネル構成を示しています。

> 
> 
> KERNEL_CONFIG ??= "qcom_defconfig"
>     
>     KERNEL_CONFIG_FRAGMENTS:append = " ${S}/arch/arm64/configs/qcom_addons.config"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '${S}/arch/arm64/configs/qcom_debug.config', '', d)}"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '${S}/arch/arm64/configs/qcom_addons_debug.config', '', d)}"
>     
>     # Enable selinux support
>     SELINUX_CFG = "${@oe.utils.vartrue('DEBUG_BUILD', 'selinux_debug.cfg', 'selinux.cfg', d)}"
>     KERNEL_CONFIG_FRAGMENTS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', '${WORKDIR}/${SELINUX_CFG}', '', d)}"
>     Copy to clipboard

ビルドの手順の詳細については、[Qualcomm Linuxビルドガイド](https://docs.qualcomm.com/doc/80-70020-254/topic/build_landing_page.html) の [QSC CLIでビルドする](https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-254/build_frm_source_qsc_cli.html#build-from-source-qsc-cli) を参照してください。

## プラットフォームのデバイスツリーにアクセスする

サポートされている開発キット用のQualcommのDTSIとデバイスツリーソース（DTS）ファイルは、`arch/arm64/boot/dts/qcom/` ディレクトリにあります。これらのQualcommファイルは、アップストリームに合わせた拡張機能やダウンストリームの拡張機能を分離します。

`addons` があるデバイスツリーファイルはダウンストリーム ファイルです。基本BSPバリアントソフトウェアは、ダウンストリームデバイスファイルを使用しません。

`<SoC>-<board>-<variant>​.conf` はQualcomm Linuxマシン構成ファイルで、必要なデバイスツリーブロブ（DTB）選択構成データが含まれます。

- `SoC` はサポートされているQualcomm Linux SoCです。例えば、QCS6490とIQ-9075などです。
- `board` は Dragonwing™ RB3 Gen 2 でサポートされる製品です。
- `variant` は製品の特定のタイプ（コアキットなど）です。

以下の例では、デバイス構成ファイルにDTBを追加しています。

KERNEL_DEVICETREE = " \
                         qcom/<SoC>-addons-<variant>.dtb \
                         "
    Copy to clipboard

Tab QCS6490
Tab IQ-9075
Tab IQ-8275
Tab IQ-615

以下の表は、Dragonwing™ RB3 Gen 2 開発キット用の Qualcomm^®^ デバイスツリーファイルの一覧です。

> 
> 
> 表：Qualcommデバイスツリーのソース
> 
> 
> | デバイスツリーのソース | 詳細 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/sc7280.dtsi<br>    Copy to clipboard | QCS6490 SoCはSC7280 SoCから派生しています。 |
> | arch/arm64/boot/dts/qcom/qcm6490.dtsi<br>    Copy to clipboard | 変更をホストするQCM6490/QCS6490 DTSIは、SC7280 SoCとは異なります。 |
> | arch/arm64/boot/dts/qcom/qcm6490-addons.dtsi<br>    Copy to clipboard | QCM6490/QCS6490 SoC特有のダウンストリーム拡張機能。 |
> | arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts<br>    Copy to clipboard | QCS6490 Dragonwing™ RB3 Gen 2開発キットのデバイスツリーのソース。 |
> | arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2開発キット用のQCS6490に特有のダウンストリーム拡張機能。 |
> | arch/arm64/boot/dts/qcom/qcs5430-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2開発キット用のQCS5430機能パック1特有のダウンストリーム拡張機能。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2-addons-rb3gen2.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2開発キットのQCS5430機能パック2のダウンストリーム拡張機能。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2p5-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 Vision Mezzanine開発キットのQCS5430機能パック2.5のダウンストリーム拡張機能。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp3-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | Dragonwing™ RB3 Gen 2 Vision Mezzanine開発キットのQCS5430機能パック3のダウンストリーム拡張機能。 |

以下の表は、Qualcomm Dragonwing™ IQ-9075開発キット用のQualcommデバイスツリーファイルの一覧です。デフォルトでは、addons DTBが使用されます。

> 
> 
> 表：Qualcommデバイスツリーのソース
> 
> 
> | デバイスツリーのソース | 詳細 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/sa8775p.dtsi<br>    Copy to clipboard | Dragonwing^TM^ IQ-9075 SoCはSA8775Pから派生しています。 |
> | arch/arm64/boot/dts/qcom/sa8775p-ride.dtsi<br>    Copy to clipboard | Dragonwing IQ-9075用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs9075-ride.dts<br>    Copy to clipboard | Dragonwing^TM^ IQ-9075ライド用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs9075-addons-ride.dts<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Dragonwing^TM^ IQ-9075ライド用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs9075-iq-9075-evk.dts<br>    Copy to clipboard | Qualcomm Dragonwing^TM^ IQ-9075 EVK用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs9075-addons-iq-9075-evk.dts<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Qualcomm Dragonwing^TM^ IQ-9075 EVK用のQualcomm Linux開発キット。 |

以下の表は、Dragonwing^TM^ IQ-8275開発キット用のQualcommデバイスツリーファイルの一覧です。デフォルトでは、addons DTBが使用されます。

> 
> 
> 表：Qualcommデバイスツリーのソース
> 
> 
> | デバイスツリーのソース | 詳細 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/qcs8300.dtsi<br>    Copy to clipboard | Dragonwing IQ-8275 SoCはQCS8300から派生しています。 |
> | arch/arm64/boot/dts/qcom/qcs8300-addons.dtsi<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Dragonwing IQ-8275用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs8300-ride.dts<br>    Copy to clipboard | Dragonwing IQ-8275ライド用のQualcomm Linux開発キット。 |
> | arch/arm64/boot/dts/qcom/qcs8300-addons-ride.dts<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Dragonwing IQ-8275ライド用のQualcomm Linux開発キット。 |

以下の表は、Dragonwing IQ-615開発キット用のQualcommデバイスツリーファイルの一覧です。デフォルトでは、addons DTBが使用されます。

> 
> 
> 表：Qualcommデバイスツリーのソース
> 
> 
> | デバイスツリーのソース | 詳細 |
> | --- | --- |
> | arch/arm64/boot/dts/qcom/qcs615.dtsi<br>    Copy to clipboard | Dragonwing IQ-615 SoC用の基本構成ファイル。 |
> | arch/arm64/boot/dts/qcom/qcs615-addons.dtsi<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Dragonwing IQ-615 SoC用の基本構成ファイル。 |
> | arch/arm64/boot/dts/qcom/qcs615-ride.dtsi<br>    Copy to clipboard | Dragonwing IQ-615ライドのSoC用の基本構成ファイル。 |
> | arch/arm64/boot/dts/qcom/qcs615-addons-ride.dtsi<br>    Copy to clipboard | ダウンストリーム拡張機能がある、Dragonwing IQ-615ライドのSoC用の基本構成ファイル。 |

## ツリー外のDTオーバーレイ・フラグメントを管理する

SoCマシン構成ファイルには、追加のツリー外DTBOが含まれます。

グラフィックス、カメラ、ワイヤレス・ローカル・エリア・ネットワーク（WLAN）ドライバー、デバイスツリー構成は、カーネルソースツリーの外部で維持されます。それぞれのデバイスツリー・ソース・オーバーレイ（DTSO）フラグメントは、ビルド時に基本DTBにオーバーレイされます。

DTBO構成は `conf/machine/<SoC>-<board>-<variant>.conf` ファイルで行われます。

以下の例はDTBO構成を示しています。

# OUT_OF_KERNEL_DTSO - qcs6490-rb3gen2-core-kit.conf
    # Additional list of DTBOs to be overlaid on top of base kernel devicetree files
    # Format - KERNEL_TECH_DTBOS[<base-dtb-name>] = "<dtbo1 <dtbo2> ..."
    # For example:
    
    KERNEL_TECH_DTBOS[qcs6490-addons-rb3gen2] = " \
    qcm6490-graphics.dtbo qcm6490-wlan-rb3.dtbo \
    qcm6490-display-rb3.dtbo qcm6490-bt.dtbo \
    qcm6490-video.dtbo qcm6490-wlan-upstream.dtbo \
    "
    Copy to clipboard

## ツリー外のカーネルモジュールを管理する

カーネルドライバーのほとんどは、アップストリームのカーネルソースからコンパイルされます。ただし、一部のドライバーはカーネルソースツリーの外部で維持され、Yoctoビルドシステムを使用してカーネルモジュールとしてビルドされます。

以下の例では、Bluetooth^®^ はツリー外カーネルモジュールです。`recipes-connectivity/bt_dlkm_kernel/bt-dlkm-kernel_git.bb` にあるレシピは、ドライバーをカーネルモジュールとしてコンパイルします。起動時にカーネルモジュールを自動的に読み込むには、モジュール名を `KERNEL_MODULE_AUTOLOAD` 変数に追加します。

# Example out-of-tree Kernel module recipe
    DESCRIPTION = "QCOM BT drivers"
    LICENSE = "GPL-2.0-only"
    LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=801f80980d171dd6425610833a22dbe6"
    
    inherit module
    
    SRC_URI += "git://git.codelinaro.org/clo/le/platform/vendor/qcom-opensource/bt-kernel.git;protocol=https;rev=9e5cf29625d60f78e88440c94d096a9139445c00;branch=bt-performant.qclinux.1.0.r1-rel \
             file://bt_dlkm \
             file://bt_dlkm.service \
             "
    
    S = "${WORKDIR}/git"
    
    RPROVIDES:${PN} += "kernel-module-bt-kernel"
    
    EXTRA_OEMAKE += "MACHINE='${MACHINE}'"
    MAKE_TARGETS = "modules"
    MODULES_INSTALL_TARGET = "modules_install"
    # Kernel module to be autoloaded
    KERNEL_MODULE_AUTOLOAD += "bt_fm_slim"
    Copy to clipboard

## デバイスイメージをビルドする

完全なイメージやカーネルをビルドするには、次のYoctoコマンドを実行します。

# setup the build environment
      export SHELL=/bin/bash
    
      source setup-environment
    # (select "<SoC> meta-qcom" → Enter → select "qcom-wayland meta-qcom-distro" → Enter)
    
    # build qcom linux console image
      bitbake qcom-console-image
    
    # Build kernel only
      bitbake linux-qcom-base
    
    # Build Images are produced under
    # build-qcom-wayland/tmp-glibc/deploy/images/<SoC>-<board>-<variant>/qcom-console-image/
    Copy to clipboard

SoC対応のQualcommディストリビューションの各種のイメージをビルドする方法については、カーネル構成 を参照してください。

注釈

カスタムBSPをビルドするには、`linux-qcom-custom` を使用します。

## デバイスを起動する

`efi.bin` ファイルには、systemd-boot（ブートマネージャー）、カーネル、initramfsのイメージが格納されています。Yoctoビルドはこれらのイメージを `efi.bin` にパッケージ化します。これはデバイスの起動のためにEFIシステムパーティション（ESP）にフラッシュされます。

デバイスツリーブロブは更新されるか、`conf/machine/<SoC>-<board>-<variant>.conf` ファイルの `KERNEL_DEVICETREE` 変数に追加されます。これらのデバイスツリーブロブは `dtb.bin` ファイルのコンパイルに使用されます。

以下のfastbootコマンドを使用して `efi.bin` および `dtb.bin` イメージをフラッシュします。

# Bring the device in fastboot mode
    # cd to the source root location
    $ cd build-qcom-wayland/tmp-glibc/deploy/images/<SoC>/qcom-console-image
    $ fastboot flash efi efi.bin
    $ fastboot flash dtb_a dtb.bin
    $ fastboot reboot
    Copy to clipboard

Qualcomm Linux ビルドが生成された後、カーネルビルドが完成し、カーネル関連のイメージが `tmp-glibc/deploy/images/<SoC>-<board>-<variant>/` ディレクトリで作成されます。

以下の表は、カーネルビルドのアーティファクトの一覧です。

表：カーネルビルドのアーティファクト

| イメージ | イメージ名 | ビルドのデプロイパス | 詳細 |
| --- | --- | --- | --- |
| カーネルの実行可能およびリンク形式（ELF） | vmlinux<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | デバッグ・シンボルでカーネルELFを出力します。 |
| initramfs | initramfs-qcom-image-<SoC>-<board>-<variant>.cpio.gz<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | コピーイン・コピーアウト（CPIO）ファイル形式のinitramfs。 |
| カーネルイメージ | Image<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | カーネルのロー・イメージ・バイナリ。systemd-bootは圧縮イメージをサポートしていません。 |
| カーネルモジュール | 各種のカーネルの動的に読み込み可能なカーネルモジュール（DLKM）<br><br><br>modules-<SoC>-<board>-<variant>.tgz<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | カーネルドライバーモジュール。 |
| デバイスツリーブロブ | <SoC>-addons-<VARIANT>.dtb<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 個別のデバイスツリーブロブ。 |
| ESPパーティション | efi.bin<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 必要なすべてのブートイメージ（systemd-boot、カーネル、initramfsなど）がエクステンシブル・ファームウェア・インターフェース（`efi.bin` ）バイナリにパッケージ化されます。 |
| DTBパーティション | dtb.bin<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | すべてのDTBOファイルが `dtb.bin` バイナリに統合されます。 |

Last Published: Jan 01, 2026

[Previous Topic
カーネルの概要](https://docs.qualcomm.com/bundle/publicresource/80-70020-3JA/topics/overview.md) [Next Topic
起動のフローとアーキテクチャーの概要](https://docs.qualcomm.com/bundle/publicresource/80-70020-3JA/topics/boot-flow-and-architecture-overview.md)