# 開始使用 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 核心常用工作流程的資訊。

## 存取 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) 並支援兩種軟體變體：

> 
> 
> - 基礎板級支援套件 (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` 層。

請參考 `recipes-kernel/linux/linux-qcom-base_6.6.bb` 或 `recipes-kernel/linux/linux-qcom-custom_6.6.bb` 檔案，取得 Git 一致資源識別符號 (URI) 以下載核心原始碼。

欲深入瞭解 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` 是系統單晶片 (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 變體的核心組態選擇：

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 支援的映像配方](https://docs.qualcomm.com/doc/80-70020-3TC/topic/getting_started_chapter2.html#qualcomm-linux-supported-image-recipes) 中列出的映像，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 fragments |
> | --- | --- | --- |
> | 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**

以下範例呈現使用 `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 機器組態檔，包含必要的裝置樹 blob (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 | 針對 QCS6490 Dragonwing™ RB3 Gen 2 開發套件的下游附加內容。 |
> | arch/arm64/boot/dts/qcom/qcs5430-addons-rb3gen2.dts<br>    Copy to clipboard | 針對 QCS5430 Dragonwing™ RB3 Gen 2 開發套件 QCS5430 功能組合 1 的下游附加內容。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2-addons-rb3gen2.dts<br>    Copy to clipboard | 針對 QCS5430 Dragonwing™ RB3 Gen 2 開發套件 QCS5430 功能組合 2 的下游附加內容。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp2p5-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | 針對 QCS5430 Dragonwing™ RB3 Gen 2 視覺擴充板開發套件 QCS5430 功能組合 2.5 的下游附加內容。 |
> | arch/arm64/boot/dts/qcom/qcs5430-fp3-addons-rb3gen2-vision-mezz.dts<br>    Copy to clipboard | 針對 QCS5430 Dragonwing™ RB3 Gen 2 視覺擴充板開發套件 QCS5430 功能組合 3 的下游附加內容。 |

下表列出 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 ride 的 Qualcomm Linux 開發套件。 |
> | arch/arm64/boot/dts/qcom/qcs9075-addons-ride.dts<br>    Copy to clipboard | 適用於 Dragonwing^TM^ IQ-9075 ride 的 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 ride 的 Qualcomm Linux 開發套件。 |
> | arch/arm64/boot/dts/qcom/qcs8300-addons-ride.dts<br>    Copy to clipboard | 適用於 Dragonwing IQ-8275 ride 的 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 ride SoC 的基礎組態檔。 |
> | arch/arm64/boot/dts/qcom/qcs615-addons-ride.dtsi<br>    Copy to clipboard | Dragonwing IQ-615 ride SoC 的基礎組態檔，包含下游附加內容。 |

## 管理樹外 DT 疊加片段

SoC 機器組態檔包含額外的樹外 DTBO。

在核心原始碼樹之外維護顯示卡、攝影機、無線區域網路 (WLAN) 驅動程式及其裝置樹組態。對應的裝置樹原始碼疊加 (DTSO) 片段在建置時疊加在基礎 DTB 上。

在 `conf/machine/<SoC>-<board>-<variant>.conf` 檔案中完成 DTBO 組態。

以下範例呈現 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（開機管理器）、核心（kernel）以及 initramfs 映像檔。Yocto 建構系統會將這些映像打包成 efi.bin，並燒錄到 EFI 系統分割區（ESP），以用於裝置開機。

裝置樹 blob 會更新或新增至 `conf/machine/<SoC>-<board>-<variant>.conf` 檔案中的 `KERNEL_DEVICETREE` 變數。這些裝置樹 blob 用來編譯 `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 | 核心驅動程式模組。 |
| 裝置樹 blob | <SoC>-addons-<VARIANT>.dtb<br>    Copy to clipboard | tmp-glibc/deploy/images/<SoC>-<board>-<variant>/<br>    Copy to clipboard | 個別裝置樹 blob。 |
| 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-3TC/topics/overview.md) [Next Topic
啟動流程和架構概覽](https://docs.qualcomm.com/bundle/publicresource/80-70020-3TC/topics/boot-flow-and-architecture-overview.md)