# 入门指南

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

本信息说明如何下载、配置和开发适用于 Qualcomm 平台及其相关组件的 Qualcomm Linux 内核，以编译和刷写系统镜像。

开始之前，请按照 [Qualcomm Linux 编译指南](bundle/publicresource/topics/80-70014-254)所述配置主机。本指南还提供 Qualcomm Linux 常见工作流程的相关信息。

## 获取 Qualcomm Linux 内核源代码

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

### About this task

如需获取 Qualcomm Linux 内核源代码，参见 [Qualcomm Linux 编译指南](bundle/publicresource/topics/80-70014-254)并获取所有必要的元数据层。

Qualcomm Linux 支持 6.6 LTS 内核，该内核可通过 `meta-qcom-hwe` 层下 `recipes-kernel/linux/linux-kernel-qcom_6.6.bb` 文件中的内核 recipe 获得。

Qualcomm Linux 中的 Linux 内核 recipe 称为 `linux-kernel-qcom` 。如需获得用于下载内核源代码的 Git 统一资源标识 (URI)，参见 `recipes-kernel/linux/linux-kernel-qcom_6.6.bb` 文件。

有关 Qualcomm Linux 层的详细信息，参见 [Qualcomm BSP 元数据层](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-27Y/platform_software_features.html#sub$qualcomm_bsp_metadata_layers)。

Note: Yocto recipe 是指在 [Codelinaro](https://git.codelinaro.org/clo/la/kernel/qcom) 公开托管的 Qualcomm 内核源代码。

以下示例展示了 Qualcomm Linux 内核 recipe：

    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=aea6160f0ba1c279fcdeded51e68a0da090f5ed9;branch=kernel.qclinux.1.0.r1-rel \
               ${@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 机器

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

Qualcomm 机器配置文件位于 `meta-qcom-hwe/conf/machine/` 目录中。

以下示例展示了可配置为 Yocto 机器配置的受支持机器列表：

    $ ls -l meta-qcom-hwe/conf/machine/includeqcm6490.confCopy to clipboard

以下示例展示了适用于 QCM6490 的机器配置和内核选项：

    $ less meta-qcom-hwe/conf/machine/qcm6490.conf
     
    SOC_FAMILY:prepend = "qcom:"
    require conf/machine/include/soc-family.inc
     
    PREFERRED_PROVIDER_virtual/kernel = "linux-kernel-qcom"Copy to clipboard

QCM6490 选择 `linux-kernel-qcom` 内核 recipe 来编译内核。

Note: QCM5430 是 QCM6490 的变体，采用与 QCM6490 相同的配置。有关 QCM5430 设备树的详细信息，参见[访问平台设备树](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html#platform_device_tree)章节。

## 编译 Yocto 镜像 recipe 和内核配置

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

用户可以访问 Qualcomm Linux 镜像 recipe 以修改内核配置。下表列出了支持的 `meta-qcom-hwe` 镜像：

Table : Qualcomm Linux 支持的镜像 recipe

| 镜像名称 | 说明 |
| --- | --- |
| qcom-minimal-imageCopy to clipboard | 这是用于启动至 shell 的最小 rootfs 镜像。 |
| qcom-console-imageCopy to clipboard | 这是一个用于启动至 shell 的镜像，其中包含用于引入所有基本软件包的软件包组。 |
| qcom-multimedia-imageCopy to clipboard | 此镜像 recipe 包含多媒体软件组件（例如音频、Bluetooth®、摄像头、计算机视觉、显示和视频）的 recipe。 |
| qcom-multimedia-test-imageCopy to clipboard | 此镜像 recipe 包含测试镜像。 |

下载 Qualcomm Linux 代码后，使用 `bitbake` 命令编译镜像。

若要编译[Table : Qualcomm Linux 支持的镜像 recipe](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html#kernel-configuration1__table_prb_xtm_l1c_barnchak_02-16-24-2034-27-125) 中列出的镜像，Qualcomm Linux 内核 recipe 使用以下任一种内核配置文件：

Table : 内核配置文件

| 内核配置文件 | 说明 |
| --- | --- |
| <kernel_src>/arch/arm64/configs/qcom_defconfigCopy to clipboard | 必须与上游内核一致的基本产品配置。 |
| <kernel_src>/arch/arm64/configs/qcom_debug.configCopy to clipboard | 来自上游内核的调试配置文件。 |
| <kernel_src>/arch/arm64/configs/qcom_addons.configCopy to clipboard | 在与上游一致的基本配置之上增加的 Qualcomm 下游配置。 |
| <kernel_src>/arch/arm64/configs/qcom_addons_debug.configCopy to clipboard | 启用 Qualcomm 下游调试。 |

若要编译包含内核的 Qualcomm Linux，可运行以下命令：

    $ MACHINE=qcm6490 DISTRO=qcom-wayland source setup-environment
     
    # build qcom linux console image
    $ bitbake qcom-console-image
     
    # Build Images are produced under build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-console-image/Copy to clipboard

Linux 内核 recipe `linux-kernel-qcom_6.6.bb`
 中定义的默认内核编译版本，支持下表中提及的 #3 (perf) 和 #4 (debug) 编译版本配置。默认编译版本配置为 #3 (perf)。

Table : 内核编译版本配置类型和配置

| 序列号 | 内核编译版本配置类型 | Defconfig/config 文件 |
| --- | --- | --- |
| 1 | 基本配置 | arch/arm64/configs/qcom_defconfigCopy to clipboard |
| 2 | 启用调试的基本配置 | <ul class="ul" id="kernel-configuration1__ul_lqw_yqm_j1c_barnchak_02-09-24-1634-56-387"><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_wtw_ltk_zbc"><code>arch/arm64/configs/qcom_defconfig</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><br>                                </li><br><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_pn5_mtk_zbc"><code>arch/arm64/configs/qcom_debug.config</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><br>                                </li><br><br>                            </ul> |
| 3 | 增加下游配置的基本配置 | <ul class="ul" id="kernel-configuration1__ul_a2f_zqm_j1c_barnchak_02-09-24-1635-2-148"><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_esf_ttk_zbc"><code>arch/arm64/configs/qcom_defconfig</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><br>                                </li><br><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_vkd_5tk_zbc"><code>arch/arm64/configs/qcom_addons.config</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><br>                                </li><br><br>                            </ul> |
| 4 | 包含下游配置且启用调试的基本配置 | <ul class="ul" id="kernel-configuration1__ul_xhm_zqm_j1c_barnchak_02-09-24-1635-6-981"><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_ukq_5tk_zbc"><code>arch/arm64/configs/qcom_defconfig</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><br>                                </li><br><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_j1d_vtk_zbc"><code>arch/arm64/configs/qcom_debug.config</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><br>                                </li><br><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_kwp_vtk_zbc"><code>arch/arm64/configs/qcom_addons.config</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><br>                                </li><br><br>                                <li class="li"><br>                                    <pre class="pre codeblock" id="kernel-configuration1__codeblock_npb_wtk_zbc"><code>arch/arm64/configs/qcom_addons_debug.config</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><br>                                </li><br><br>                            </ul> |

有关配置内核的详细信息，参见[内核配置](https://docs.qualcomm.com/doc/80-70014-3Y/topic/customize.html#kernel-configuration1)章节。

### Qualcomm 调试编译版本

使用以下命令编译调试编译版本：

    $ DEBUG_BUILD=1 bitbake qcom-console-imageCopy to clipboard

若要修改编译版本配置，可更新
 `meta-qcom-hwe` 层
中 `linux-kernel-qcom_6.6.bb` 内核 recipe 中的 `KERNEL_DEFCONFIG` 和
 `KERNEL_CONFIG_FRAGMENTS` 变量

### 内核配置示例

以下示例展示了使用 `linux-kernel-qcom_6.6.bb` 内核 recipe 的内核配置：

    KERNEL_DEFCONFIG = "${S}/arch/arm64/configs/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)}"Copy to clipboard

有关编译指令的详细信息，参见 [Qualcomm Linux 编译指南](bundle/publicresource/topics/80-70014-254)中的[使用 QSC CLI 编译](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-254Y/build_from_source_QSC_CLI.html)部分。

## 访问平台设备树

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

受支持开发套件特定的 Qualcomm 设备树源包含文件 (DTSI) 和设备树源文件 (DTS) 位于 `arch/arm64/boot/dts/qcom/` 目录中的内核源文件下。这些 Qualcomm 文件将与上游一致的配置和增加的 Qualcomm 下游配置区分开。

下表列出了适用于 RB3 Gen 2 开发套件的 Qualcomm 设备树文件。默认情况下，使用扩展设备树 blob (DTB)。

Table : Qualcomm 设备树源文件

| 设备树源文件 | 详细信息 |
| --- | --- |
| arch/arm64/boot/dts/qcom/sc7280.dtsiCopy to clipboard | QCS6490 SoC 源自 SC7280。 |
| arch/arm64/boot/dts/qcom/qcm6490.dtsiCopy to clipboard | QCS6490 DTSI，其中包含不同于 SC7280 SoC 的所有更改。 |
| arch/arm64/boot/dts/qcom/qcm6490-addons.dtsiCopy to clipboard | 增加的 QCS6490 SoC 特定的下游配置。 |
| arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtsCopy to clipboard | QCS6490 RB3 Gen 2 开发套件设备树源文件。 |
| arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsCopy to clipboard | 增加的 QCS6490 RB3 Gen 2 开发套件特定的下游配置。 |
| arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsCopy to clipboard | 增加的 QCS5430 pack-1 RB3 Gen 2 开发套件特定的下游配置。 |
| arch/arm64/boot/dts/qcom/qcs5430-fp2-addons-rb3gen2.dtsCopy to clipboard | 增加的 QCS5430 pack-2 RB3 Gen 2 开发套件的下游配置。 |

Qualcomm Linux 机器配置文件 `conf/machine/qcm6490.conf` 包含与选择必要的 DTB 相关的配置数据。

以下示例展示了纳入设备配置文件中的 DTB 包含文件：

    KERNEL_DEVICETREE = " \ 
                          qcom/qcs6490-addons-rb3gen2.dtb \
                          "Copy to clipboard

## 查看树外 DT overlay 文件

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

QCM6490 机器配置文件 `conf/machine/qcm6490.conf` 包含附加的树外 DTB overlay (DTBO) 文件。

图形、摄像头、无线局域网 (WLAN) 驱动程序及其设备树配置在内核源代码树之外维护。其各自的设备树源代码 overlay (DTSO) 文件在编译时被叠加在基础 DTB 之上。

DTBO 配置在 `conf/machine/qcm6490.conf` 文件中完成。

以下示例展示了 DTBO 配置：

# OUT_OF_KERNEL_DTSO - qcm6490.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-rb3gen2.dtbo qcm6490-display-rb3gen2.dtbo qcm6490-bt.dtbo"Copy to clipboard

## 查看树外内核模块

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

大多数内核驱动程序都是从上游内核源代码编译的。但是，有些驱动程序是在内核源代码树之外进行维护，并使用 Yocto 编译系统编译为内核模块。

在以下示例中，蓝牙模块是树外内核模块，其 recipe 位于 `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

## 编译设备镜像

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

使用以下 Yocto 命令编译整个镜像和内核：

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

有关如何面向 QCM6490 支持的 Qualcomm
 发行版编译不同镜像的详细信息，参见[编译 Yocto 镜像 recipe 和内核配置](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html#kernel-configuration1)章节。

## 调通设备

Source: [https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html](https://docs.qualcomm.com/doc/80-70014-3Y/topic/getting_started_chapter2.html)

`efi.bin` 文件中包含 systemd-boot（启动管理器）、内核、DTB 和 initramfs 镜像。Yocto 编译版本将这些镜像打包至 `efi.bin` 中，该文件可以刷入 EFI 系统分区 (ESP) 以启动设备。

默认情况下，使用以下设备树 blob 来编译 `efi.bin` 文件：

- `qcs6490-addons-rb3gen2.dtb`

设备树 blob 已更新或已添加到 `conf/machine/qcm6490.conf` 文件中的 `KERNEL_DEVICETREE` 变量中。

`efi.bin` 镜像可使用以下 `fastboot` 命令刷写： 

    # Bring the device in fastboot mode
    # cd to the source root location
    $ cd build-qcom-wayland/tmp-glibc/deploy/images/qcm6490/qcom-console-image
    $ fastboot flash efi efi.bin
    $ fastboot rebootCopy to clipboard

Qualcomm Linux 内核编译完成后，
会在 `tmp-glibc/deploy/images/qcm6490/` 目录中创建内核相关镜像。

下表列出了与内核相关的编译文件：

Table : 内核编译文件

| 镜像 | 镜像名称 | 编译版本部署路径 | 详细信息 |
| --- | --- | --- | --- |
| 内核的可执行和可链接的格式 (ELF) 文件 | vmlinuxCopy to clipboard | temp-glibc/deploy/images/qcm6490/Copy to clipboard | 输出带有调试符号的内核 ELF 文件。 |
| Initramfs | initramfs-qcom-image-qcm6490.cpio.gzCopy to clipboard | tmp-glibc/deploy/images/qcm6490/Copy to clipboard | 拷贝输入/输出 (CPIO) 文件格式的 Initramfs。 |
| 内核镜像 | ImageCopy to clipboard | tmp-glibc/deploy/images/qcm6490/Copy to clipboard | 原始二进制文件格式的内核镜像，systemd-boot 不支持压缩镜像。 |
| 内核模块 | 不同的内核动态可加载内核模块 (DLKM)<br><br>    modules-qcm6490.tgzCopy to clipboard | tmp-glibc/deploy/images/qcm6490/Copy to clipboard | 内核驱动程序模块。 |
| 设备树 blob | qcm6490-addons-rb3gen2.dtbCopy to clipboard | tmp-glibc/deploy/images/qcm6490/Copy to clipboard | 各个设备树 blob。 |
| ESP 分区 | efi.binCopy to clipboard | tmp-glibc/deploy/images/qcm6490/Copy to clipboard | 所有必需的启动镜像，包括 systemd-boot、内核、DTB 和 initramfs，都打包至可扩展固件接口 (`efi.bin`) 二进制文件中。 |

Last Published: Aug 22, 2024

[Previous Topic
概述](https://docs.qualcomm.com/bundle/publicresource/80-70014-3Y/topics/overview.md) [Next Topic
功能](https://docs.qualcomm.com/bundle/publicresource/80-70014-3Y/topics/features.md)