# Qualcomm Linux 中繼資料層概覽

本節介紹 [Qualcomm manifest](https://github.com/qualcomm-linux/qcom-manifest) 中包含的層。該 manifest 包含重現參考建置所需的所有層。後續章節將介紹 Yocto Project 維護的層。Qualcomm 維護特定於其開發套件的層，這些層依賴社群層以實現完整功能。

下圖顯示 Qualcomm Linux 發行版中包含的層：

![../../_images/qualcomm_linux_metadata_layers.png](data:image/png;base64,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a3wglhvQHspdeRT6eV8t6AEHg0nuGexd7srzrK3sIyGRDtiq4z55vwLFqcS9AZCzb6spLn0HRnEeceyGjZz3pSglgPSwVWpCrJATtLqnlwWFDAp/kP+eyMT2TBmwlbpMoX2RK3IehD922JGG8wASxUmoFd3h6x79cMRTNciin/dVE0YY5GU5xa7qgc67Ka6c26+nqNPkn/EUS9WRXdRJ/OifDzbgbIrzYm4YTbKDwW0cZwwOhHZJnNxgDJ6zheFm3gPapECRqF5nk6ciTZmgqdmUVCyBOlbC02JJeuzKV55sREsHxv6YVCPIpilXcokmZEkR0AY6OZAUx0+y5WybuO7W5A14XgiDbY5jcpo6LUuzq/o8Ug5IZ1ab7/OOPmlVn0oWkkyjxjXTtHbJDfv8ZGM4fTC2JAcbbqZAg7pYhHBLVv3kiEChpeGsIeGQpcOQ9A3yeuqBIo3rLZBL0tV874FONkrStFiy/+ERz332sFdUPg3Ux3K4DWxCHtzG0CVwuA4OEWo+lRamirRxAEJ0GMCQChI14eM04brQaF3gMM+hwiLta4V5G553y4T4DysLMym7Gvd5SSYclaxWyKiMDYOrO/TOE6pbRcovC8dEpXeBrovSY76qPk9g8GHQLWopD3vyAA6REK4jRChTAZ/hT3CgKQgXFaUrwoMm9BJFkZ4vk/wZXpgvnchILsjk87JMIqofJiaiuEBOTimLTu8C2S9PL1JXZHl0CddTwuYNb/ZC/l49DzNjDUay+QrjeeODZfw9JB59OWTnYwdfdbn+wyEW/fKf7/rr8sSjL+Z1eZju2briAvqosndKj0V/+cO3/F6HirqPSX/nL6VMzPwV/+vgw8Yl/hrK+wyJ+x339av3cfSN/2j/feM/2n/af+cDlAkOoDwniMVs7SsYkaH2E2s/fxCHkUWZz0QGA+p9XlcCsb5skRmRwQB1Wz4tECu3kBmxwYBQ1eKwCpQZ0cHAZCQOm3UwozamJxLf0piRU346r5gD7yuCagRUeX8QFko/UZFMfAkbttzlM/XILHetDa13vraK0QZbe9dbG/5J1yJTijZkaN0ynra2di6HzaAM1VnkztfW2uU8y7U1LClCWdStc1vWLm/zzrdbk1oJarLVeud7u9yq1jvnFaGc821lR1C11Za+VIDyZbtV21F1L5Sg7rXKVdp/2n9JyQIAWE1QIHEBAAA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj48dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCjw/eHBhY2tldCBlbmQ9J3cnPz4A)

**圖：Qualcomm Linux 中繼資料層**

表：Qualcomm Linux 中繼資料層與說明

| 中繼資料層 | 描述 |
| --- | --- |
| `meta-qcom-hwe` | 包含為 Qualcomm 開發套件建置軟體元件的配方，並提供適用於 Qualcomm SoC 的增值軟體功能。 |
| `meta-qcom-distro` | 為 Qualcomm 開發套件提供參考發行版設定。此層中定義了映像配方與套件群組。 |
| `meta-qcom-extras` | 提供給註冊用戶的選用中繼資料層。此層允許對某些元件進行原始碼編譯，這些元件在 `meta-qcom-hwe` 中通常以二進位形式提供。 |
| `meta-qcom-qim-product-sdk` | 提供基於 GStreamer 架構的 Qualcomm® 智慧多媒體 SDK（IM SDK）與 AI SDK。包括一組 GStreamer 外掛程式、多媒體與 AI 應用範例。 |
| `meta-qcom-realtime` | 提供 Qualcomm Linux 核心的修補與設定，以支援即時作業。 |
| `meta-qcom` | 包含 Qualcomm 裝置支援與上游開源軟體（OSS）元件。 |
| `meta-virtualization`<br><br><br>如需更多資訊，請參閱 [meta-virtualization](https://git.yoctoproject.org/meta-virtualization)。 | 包含建構 OpenEmbedded 虛擬化解決方案與虛擬化堆疊（如 Docker 與 Kubernetes）的套件。 |
| `meta-selinux`<br><br><br>如需更多資訊，請參閱 [meta-selinux](https://git.yoctoproject.org/meta-selinux)。 | 啟用 SELinux 支援。此層包含參考 SELinux 原則並提供必要工具。若要在 Qualcomm Linux 中啟用 SELinux，請在 `meta-qcom-distro/conf/distro/include/qcom-base.inc` 中將變數 `DEFAULT_ENFORCING` 設為 `enforcing`。 |
| `poky/meta`<br><br><br>如需更多資訊，請參閱 [poky/meta](https://git.yoctoproject.org/poky)。 | 提供建構工具與配方檔案，以提供嵌入式作業系統發行版所需的各種軟體元件。 |
| `meta-openembedded`<br><br><br>欲了解更多資訊，請參閱 [meta-openembedded](https://git.openembedded.org/meta-openembedded)。 | OpenEmbedded 建構系統的圖層集合。 |
| `meta-security`<br><br><br>欲了解更多資訊，請參閱 [meta-security](https://git.yoctoproject.org/meta-security/tree/README.md?h=scarthgap)。 | 為 Qualcomm Linux 核心與函式庫提供安全工具與強化工具，以實作安全機制。 |
| `meta-updater`<br><br><br>欲了解更多資訊，請參閱 [meta-updater](https://github.com/uptane/meta-updater/blob/scarthgap/README.adoc)。 | 透過 OSTree 啟用無線更新（OTA）。OSTree 是一種具備回滾功能的原子性完整檔案系統升級工具。 |

關於機器人圖層的資訊，請參閱 [Qualcomm Intelligent Robotics Product (QIRP) SDK layers](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-265/architecture.html#component-layers-of-the-qirp-sdk)。

## Qualcomm Linux 元數據層

以下層表示 Qualcomm BSP 元數據：

- [meta-qcom](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-section)
- [meta-qcom-hwe](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-hwe-section)
- [meta-qcom-realtime](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-realtime-section)

以下層定義了 `qcom-wayland` 參考分發：

- [meta-qcom-distro](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-distro-section)

以下層定義了可選的 Qualcomm IM SDK：

- [meta-qcom-qim-product-sdk](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-qim-product-sdk-section)

以下元數據層定義了可選的 BSP：

- [meta-qcom-extras](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#meta-qcom-extras-section)

### 在 Qualcomm Linux 元數據層中使用 BitBake OVERRIDES

Qualcomm Linux 元數據層使用 BitBake 的 OVERRIDES 機制來實現稱為 `base` 和 `custom` 的兩個不同的 BSP 變體。

在啟動 Qualcomm Linux 構建時，將 `QCOM_SELECTED_BSP` 變量設置為 `custom` 或 `base`。該變量在 `conf/machine/include/qcom-base.inc` 中定義，默認設置為 `custom`，如下所示：

QCOM_SELECTED_BSP ??= "custom"
    Copy to clipboard

為 `QCOM_SELECTED_BSP` 設置的值轉換為兩個 BitBake OVERRIDES。以下是 `QCOM_SELECTED_BSP` 與相應 BitBake OVERRIDE 的映射表：

| `QCOM_SELECTED_BSP` 值 | 對應的 BitBake OVERRIDE |
| --- | --- |
| `base` | `qcom-base-bsp` |
| `custom` | `qcom-custom-bsp` |

BitBake OVERRIDE 的有效值會選擇性地設定變數，從而將套件包含在映像中。

備註

若要熟悉 BitBake OVERRIDES，請參閱 [Conditional syntax (Overrides)](https://docs.yoctoproject.org/bitbake/2.8/bitbake-user-manual/bitbake-user-manual-metadata.html#conditional-syntax-overrides) 和 [Yocto Project documentation](https://docs.yoctoproject.org/singleindex.html#term-OVERRIDES)。

若要使用 BSP 的 `base` 變體並在建置時設定 `QCOM_SELECTED_BSP`，請參閱 [Build base image](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/github_workflow_unregistered_users.html#build-base-image)。

備註

在此版本中，`base` BSP 支援使用 `qcs8300-ride-sx.conf`、`qcs9075-ride-sx.conf`、`qcs9100-ride-sx.conf` 建置的 Qualcomm 參考裝置。

最終映像的組成取決於您為 `QCOM_SELECTED_BSP` 變數選擇 `base` 或 `custom` 值，請參閱 [Overview](https://docs.qualcomm.com/doc/80-70018-27TC/topic/overview.html#yocto-overview)。

若要查找這些 OVERRIDES 如何選擇要建置的軟體元件的範例，請在 `meta-qcom-hwe` 程式碼庫中搜尋 `qcom-base-bsp` 和 `qcom-custom-bsp`。

### meta-qcom

`meta-qcom` metadata 層託管於 [git.yoctoproject.org](http://git.yoctoproject.org)，並提供建置 Qualcomm OSS 的配方。請使用 `meta-qcom` 層中的下列配方建置軟體映像。

| `recipes-devtools/qdl/qdl_git.bb` | Qualcomm Download (QDL) 閃存工具與顯示 ID 為 05c6:9008 的 USB 裝置通訊以上傳閃存載入器，並使用此配方來燒錄映像。 |
| --- | --- |
| `recipes-support/pd-mapper/pd-mapper_git.bb` | Qualcomm pd-mapper 是保護域映射器服務的實作。此服務配置並管理保護域，確保應用程式與各種遠端處理器之間的安全通訊。 |
| `recipes-support/qrtr/qrtr_git.bb` | Qualcomm Router (QRTR) 是用於 Qualcomm SoC 的進程間通訊機制。它允許系統中不同處理器（如應用處理器與數據機）之間使用使用者空間中的 socket 風格程式介面進行通訊。 |
| `recipes-support/initrdscripts/initramfs-module-copy-modules_1.0.bb` | `initramfs-framework` 模組用於將核心模組從 `initramfs` 複製到 `rootfs`。 |

### meta-qcom-hwe

`meta-qcom-hwe` metadata 層可在 [GitHub](https://github.com/qualcomm-linux/meta-qcom-hwe/tree/scarthgap) 上取得。它提供額外的軟體支援以啟用 Qualcomm 裝置。

> 
> 
> - **BitBake classes**
> 
> 
>     若要瞭解 BitBake 類別，請參閱 [Classes](https://github.com/qualcomm-linux/meta-qcom-hwe/tree/scarthgap/classes)。
> 
> 
> 
> 
> 
> 
>     | 檔案 | 描述 |
>     | --- | --- |
>     | `classes/qprebuilt.bbclass` | 實作邏輯以使用預建套件，而非擷取與編譯原始碼。對於繼承 **qprebuilt** 的任何配方，此類別會解壓縮 <cite>tar.gz</cite> 壓縮檔中的二進位檔，並透過 BitBake 任務提供這些二進位檔以供打包。 |
>     | `classes/qmodule.bbclass` | 預設情況下，Qualcomm BSP 透過在核心中啟用 `CONFIG_MODULE_SIG_FORCE` 來強制簽署核心模組。然而，一些非內建模組可能未被簽署。為避免模組載入問題，`qmodule.bbclass` 會檢查所有提供核心模組的套件，並在尚未簽署時為其簽署。 |
>     | `classes/image_types_ota_sdboot.bbclass` | 此 BitBake 類別根據 OSTree OTA 升級系統的需求實作映像建立。 |
> - **機器組態**
> 
> 
>     Qualcomm Linux 機器組態檔可在 [GitHub](https://github.com/qualcomm-linux/meta-qcom-hwe/tree/scarthgap/conf/machine) 上取得。
> 
> 
>     位於 `meta-qcom-hwe/conf/machine/include` 目錄中的檔案定義並設定 BitBake 所需的變數，這些變數可供 Qualcomm BSP 定義的機器組態共用。下表提供這些檔案的概覽。
> 
> 
> 
> 
> 
> 
>     | 檔案 | 描述 |
>     | --- | --- |
>     | `meta-qcom-hwe/conf/machine/include/qcom-base.inc` | 此檔案設定 Qualcomm BSP 所有機器組態共用的 BitBake 變數，例如 `SOC_ARCH`、`PREFERRED_PROVIDER` 和 `IMAGE_FSTYPES`。 |
>     | `meta-qcom-hwe/conf/machine/include/qcom-qcs6490.inc` | 此檔案將 `SOC_FAMILY` 變數設定為 `qcm6490`。這允許 Qualcomm Linux 配方使用 `qcm6490` OVERRIDE 來實作特定於 Qualcomm BSP 的變更。此檔案也定義所有基於 QCS6490 的 Qualcomm 開發套件共用的組態變數。 |
>     | `meta-qcom-hwe/conf/machine/include/qcom-qcs9100.inc` | 此檔案將 `SOC_FAMILY` 變數設定為 `qcs9100`。這允許 Qualcomm Linux 配方使用 `qcs9100` OVERRIDE 來實作特定於 Qualcomm BSP 的變更。此檔案也定義所有基於 QCS9100 的 Qualcomm 開發套件共用的組態變數。 |
>     | `meta-qcom-hwe/conf/machine/include/qcom-qcs8300.inc` | 此檔案將 `SOC_FAMILY` 變數設定為 `qcs8300`。這允許 Qualcomm Linux 配方使用 `qcs8300` OVERRIDE 來實作特定於 Qualcomm BSP 的變更。此檔案也定義所有基於 QCS8300 的 Qualcomm 開發套件共用的組態變數。 |
>     | `meta-qcom-hwe/conf/machine/include/qcom-qcs615.inc` | 此檔案將 `SOC_FAMILY` 變數設為 `qcs615`。這使得 Qualcomm Linux 配方可以使用 `qcs615` OVERRIDE 來實作特定於 Qualcomm BSP 的變更。此檔案也定義了所有基於 QCS615 的 Qualcomm 開發套件共用的設定變數。 |
> 
> 
> 
>     **基於 QCS6490 的開發套件的機器設定檔**
> 
> 
> 備註
> 
> 
> 從 Qualcomm Linux 1.2 版本起，您必須使用下表中列出的新機器設定檔。Qualcomm Linux 1.2 已取代 Qualcomm Linux 1.1 中的舊設定檔 `qcm6490.conf`。
> 
> 
> 
> 
> 
> 
>     | 設定檔 | 描述 |
>     | --- | --- |
>     | `conf/machine/qcm6490-idp.conf` | 此檔案適用於搭載 QCM6490 的整合開發平台（IDP）。 |
>     | `conf/machine/qcs6490-rb3gen2-core-kit.conf` | 此檔案適用於基於 QCS6490 的 Qualcomm^®^ RB3 Gen 2 Core 開發套件。 |
>     | `conf/machine/qcs6490-rb3gen2-vision-kit.conf` | 此檔案適用於基於 QCS6490 並搭載低/高解析度 CSI 相機的 Qualcomm^®^ RB3 Gen 2 Vision 開發套件。 |
>     | `conf/machine/qcs6490-rb3gen2-industrial-kit.conf` | 此檔案適用於基於 QCS6490 的 Qualcomm^®^ RB3 Gen 2 工業開發套件。 |
> 
> 
> 
>     **基於 QCS9075 和 QCS9100 的開發套件的機器設定檔**
> 
> 
> 
> 
> 
> 
>     | 設定檔 | 描述 |
>     | --- | --- |
>     | `conf/machine/qcs9100-ride-sx.conf` | 此檔案適用於基於 QCS9100 的 Qualcomm^®^ IQ9 Beta 評估套件（EVK）。 |
>     | `conf/machine/qcs9075-ride-sx.conf` | 此檔案適用於基於 QCS9075 的 Qualcomm IQ9 Beta EVK。 |
>     | `conf/machine/qcs9075-rb8-core-kit.conf` | 此檔案適用於基於 QCS9075 的 Qualcomm Dragonwing™ IQ-9075 EVK。 |
>     | `conf/machine/qcs9075-rb8-core-kit-interface-plus-mezz.conf` | 此檔案適用於基於 QCS9075 的 Dragonwing IQ-9075 EVK。 |
> 
> 
> 
>     **基於 QCS8300 的開發套件的機器設定檔**
> 
> 
> 
> 
> 
> 
>     | 設定檔 | 描述 |
>     | --- | --- |
>     | `conf/machine/qcs8300-ride-sx.conf` | 此檔案適用於基於 QCS8300 的 Qualcomm^®^ IQ8 Beta EVK。 |
> 
> 
> 
>     **基於 QCS615 的開發套件的機器設定檔**
> 
> 
> 
> 
> 
> 
>     | 設定檔 | 描述 |
>     | --- | --- |
>     | `conf/machine/qcs615-adp-air.conf` | 此檔案適用於基於 QCS615 的 Qualcomm^®^ IQ6 Beta EVK。 |
> 
> 
> 
>     **在** `meta-qcom-hwe` **中使用 OVERRIDES**
> 
> 
>     Qualcomm BSP 使用 BitBake OVERRIDES 來定義兩種不同的 BSP 建構方式。
> 
> 
>     中繼資料層從 `meta-qcom-hwe/conf/machine/include/qcom-base.inc` 檔案中的 `QCOM_SELECTED_BSP` 派生出 `MACHINEOVERRIDES`：
> 
> 
> MACHINEOVERRIDES =. "qcom-${QCOM_SELECTED_BSP}-bsp:"
>         Copy to clipboard
> 
> 
>     `meta-qcom-hwe` 中的兩個 MACHINEOVERRIDES 為 `qcom-custom-bsp` 和 `qcom-base-bsp`。這些 OVERRIDES 被機器設定檔、配方及其他設定檔使用，並且在 `meta-qcom-hwe` 元數據層中使用這些 OVERRIDE 構造來有條件地設置變量和附加任務。
> 
> 
>     配方與設定檔使用 MACHINEOVERRIDES 來判斷最終映像是否由 Qualcomm 自訂 BSP 軟體元件或上游軟體元件組成，這取決於建構時的有效 OVERRIDE。
> 
> 
>     例如，`egl`、`libgl`、`libgles1` 和 `libgles2` 的 PREFERRED\_PROVIDER 設定如下：
> 
> 
> 
> 
> 
> 
>     | 有效 OVERRIDE | `egl`、`libgl`、`libgles1`、`libgles2` 的 PREFERRED\_PROVIDER |
>     | --- | --- |
>     | `qcom-custom-bsp` | `adreno` |
>     | `qcom-base-bsp` | `mesa` |
> 
> 
> 
>     在 BitBake 程式碼片段中，OVERRIDES 會條件式地設定變數如下：
> 
> 
> # Provider for Graphics Library.
>         # qcom-base-bsp uses 'mesa' as GL provider
>         GL_PROVIDER ?= "adreno"
>         GL_PROVIDER:qcom-base-bsp ?= "mesa"
>         
>         PREFERRED_PROVIDER_virtual/egl      = "${GL_PROVIDER}"
>         PREFERRED_PROVIDER_virtual/libgl    = "${GL_PROVIDER}"
>         PREFERRED_PROVIDER_virtual/libgles1 = "${GL_PROVIDER}"
>         PREFERRED_PROVIDER_virtual/libgles2 = "${GL_PROVIDER}"
>         
>         PREFERRED_PROVIDER_virtual/egl-native      = "mesa-native"
>         PREFERRED_PROVIDER_virtual/libgl-native    = "mesa-native"
>         PREFERRED_PROVIDER_virtual/libgles1-native = "mesa-native"
>         PREFERRED_PROVIDER_virtual/libgles2-native = "mesa-native"
>         Copy to clipboard
> 
> 
> 備註
> 
> 
> 在此版本中，`qcom-base-bsp` OVERRIDE 僅適用於 `qcs9100-ride-sx.conf` 和 `qcs8300-ride-sx.conf`。
> 
>     - **Kernel cmdline**
> 
> 
>         `meta-qcom-hwe/conf/machine/include/qcom-qcs6490.inc`、`meta-qcom-hwe/conf/machine/include/qcom-qcs9100.inc` 和 `meta-qcom-hwe/conf/machine/include/qcom-qcs8300.inc` 檔案使用 `KERNEL_CMDLINE_EXTRA` 變數來設定核心命令列參數如下：
> 
> 
> Tab qcom-qcs6490.inc
> Tab qcom-qcs9100.inc
> Tab qcom-qcs8300.inc
> 
> 以下片段來自 `qcom-qcs6490.inc` 檔案：
> 
> 
> # Additional Kernel cmdline parameters for debug builds
>             DBG_CMDLINE = "${@oe.utils.conditional('DEBUG_BUILD','1','earlycon page_owner=on qcom_scm.download_mode=1 slub_debug=FZP,zs_handle,zspage;FZPU','',d)}"
>             
>             KERNEL_CMDLINE_EXTRA ?= "pcie_pme=nomsi kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 kpti=off kasan=off kasan.stacktrace=off no-steal-acc ${DBG_CMDLINE} swiotlb=128 mitigations=auto net.ifnames=0"
>             Copy to clipboard
> 
> 以下片段來自 `qcom-qcs9100.inc` 檔案：
> 
> 
> # Additional Kernel cmdline parameters for debug builds
>             DBG_CMDLINE = "${@oe.utils.conditional('DEBUG_BUILD','1','earlycon reboot=panic_warm page_owner=on qcom_scm.download_mode=1 slub_debug=FZP,zs_handle,zspage;FZPU','',d)}"
>             
>             KERNEL_CMDLINE_EXTRA ?= "pcie_pme=nomsi net.ifnames=0 pci=noaer kpti=off kasan=off kasan.stacktrace=off swiotlb=128 ${DBG_CMDLINE} mitigations=auto kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 no-steal-acc vfio_iommu_type1.allow_unsafe_interrupts=1 fw_devlink.strict=1"
>             Copy to clipboard
> 
> 以下片段來自 `qcom-qcs8300.inc` 檔案：
> 
> 
> # Additional Kernel cmdline parameters for debug builds
>             DBG_CMDLINE = "${@oe.utils.conditional('DEBUG_BUILD','1','earlycon reboot=panic_warm page_owner=on qcom_scm.download_mode=1 slub_debug=FZP,zs_handle,zspage;FZPU','',d)}"
>             
>             KERNEL_CMDLINE_EXTRA ?= "pcie_pme=nomsi net.ifnames=0 pci=noaer kpti=off kasan=off kasan.stacktrace=off swiotlb=128 ${DBG_CMDLINE} mitigations=auto kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 no-steal-acc arm64.nopauth  fw_devlink.strict=1"
>             Copy to clipboard
>     - **包含 DTB**
> 
> 
>         使用 OVERRIDES 機制條件式地設定 `KERNEL_DEVICETREE` 變數，以確保包含正確的裝置樹二進位檔（DTB）。這在 `meta-qcom-hwe/conf/machine` 中的各個機器設定檔中管理。
> 
> 
> 
> 
> > 
> > 
> > 在機器設定檔中，針對 `custom` 和 `base` 變體分別設定 `KERNEL_DEVICETREE` 變數。以下來自 `conf/machine/qcs9100-ride-sx.conf` 的範例顯示如何選擇 DTB。
> > 
> > 
> > 
> > > 
> > > 
> > > Tab linux-qcom-base
> > > Tab linux-qcom-custom
> > > 
> > > 以下程式碼區塊顯示如何為 `linux-qcom-base` 設定 `KERNEL_DEVICETREE`，使 `base` 變體使用上游的 DTB。
> > > 
> > > 
> > > KERNEL_DEVICETREE:pn-linux-qcom-base = " \
> > >                              qcom/qcs9100-ride.dtb \
> > >                              qcom/qcs9100-ride-r3.dtb \
> > >                              qcom/sa8775p-ride.dtb \
> > >                              qcom/sa8775p-ride-r3.dtb \
> > >                              "
> > >         Copy to clipboard
> > > 
> > > 以下程式碼區塊顯示如何為 `linux-qcom-custom` 設定 `KERNEL_DEVICETREE`，使 `custom` 變體使用上游的 DTB。
> > > 
> > > 
> > > KERNEL_DEVICETREE:pn-linux-qcom-custom = " \
> > >                              qcom/qcs9100-addons-ride.dtb \
> > >                              qcom/qcs9100-addons-ride-r3.dtb \
> > >                              qcom/sa8775p-addons-ride.dtb \
> > >                              qcom/sa8775p-addons-ride-r3.dtb \
> > >                              "
> > >         Copy to clipboard
> 
> 
>     - **包含額外的 DTBOs**
> 
> 
>         若要包含額外的裝置樹覆蓋（DTBO）以覆蓋在核心裝置樹上，請使用 `KERNEL_TECH_DTBOS` 變數列出 DTBO 名稱。
> 
> 
> 備註
> 
> 
> Qualcomm Linux 僅在 `custom` 變體中支援裝置樹二進位覆蓋。
> 
> 
>         以下來自 `qcs9100-ride-sx.conf` 的範例顯示如何使用 DTBO。
> 
> 
> KERNEL_TECH_DTBOS[sa8775p-addons-ride] = " \
>                sa8775p-video.dtbo qcs9100-graphics.dtbo \
>                qcs9100-ride-sx-camera.dtbo \
>                "
>             KERNEL_TECH_DTBOS[sa8775p-addons-ride-r3] = " \
>                sa8775p-video.dtbo qcs9100-graphics.dtbo \
>                qcs9100-ride-sx-camera.dtbo \
>                "
>             
>             KERNEL_TECH_DTBOS[qcs9100-addons-ride] = " \
>                sa8775p-video.dtbo qcs9100-graphics.dtbo \
>                qcs9100-ride-sx-camera.dtbo \
>                "
>             
>             KERNEL_TECH_DTBOS[qcs9100-addons-ride-r3] = " \
>                sa8775p-video.dtbo qcs9100-graphics.dtbo \
>                qcs9100-ride-sx-camera.dtbo \
>                "
>             
>             KERNEL_TECH_DTBO_PROVIDERS = "\
>                qcom-graphicsdevicetree \
>                qcom-videodtb \
>                cameradtb \
>                "
>             Copy to clipboard
> - **韌體配方**
> 
> 
>     Qualcomm Linux 的韌體配方檔案可在 [GitHub](https://github.com/qualcomm-linux/meta-qcom-hwe/tree/scarthgap/recipes-firmware) 上取得。當 Qualcomm Linux 原始碼同步後，韌體配方將位於以下目錄：`<workspace>/layers/meta-qcom-hwe/recipes-firmware/firmware`。
> 
>     - **關鍵開機韌體**
> 
> 
>         開機裝置核心所需的關鍵開機韌體映像。以下韌體配方提供特定硬體 SoC 的開機韌體。
> 
> 
> 
> 
> 
> 
>         | `firmware-qcom-bootbins_1.0.bb` | 處理相容目標的關鍵開機韌體二進位檔案的擷取、解壓與部署。`QCM6490_bootbinaries.zip`、`QCS9100_bootbinaries.zip` 和 `QCS8300_bootbinaries.zip` 檔案提供 QCS6490、QCS9075 和 QCS8300 機器所需的開機韌體。 |
>         | --- | --- |
> 
> 
> 
>         產生建置後，這些 zip 檔中的韌體二進位檔可在以下目錄中進行燒錄：
> 
> 
>         `<workspace>/build-qcom-wayland/tmp-glibc/deploy/images/<machine-name>/<image-name>/`
>     - **子系統韌體二進位檔**
> 
> 
>         Qualcomm Linux 包含在對應子系統上載入並執行的韌體二進位檔。當 Qualcomm 硬體 SoC 開機時，各子系統會在重置後執行韌體。
> 
> 
> 
> 
> 
> 
>         | `firmware-qcom-hlosfw_1.0.bb` | 處理子系統韌體二進位檔（如 aDSP、cDSP、modem 和 WLAN）的擷取、解壓與安裝。`QCM6490_fw.zip`、`QCS9100_fw.zip` 和 `QCS8300_fw.zip` 檔案包含 QCM6490、QCS9075 和 QCS8300 機器的韌體檔案。 |
>         | --- | --- |
> 
> 
> 
>         `firmware-qcom-hlosfw_1.0.bb` 配方執行以下操作：
> 
> 
> 
> > 
> > 
> > 1. 根據 SRC\_URI 從遠端伺服器擷取子系統韌體二進位檔。
> >         2. 解壓 zip 檔。
> >         3. 將韌體安裝至 `rootfs`。
>     - **DSP 函式庫**
> 
> 
>         使用者空間工具會參考 DSP 函式庫，這些函式庫必須存在於 `rootfs` 映像中。以下韌體配方提供特定硬體 SoC 的 DSP 函式庫：
> 
> 
> 
> 
> 
> 
>         | `firmware-qcom-dspso_1.0.bb` | 處理 DSP 函式庫的擷取、解壓與安裝。`QCM6490_dspso.zip`、`QCS9100_dspso.zip` 和 `QCS8300_dspso.zip` zip 檔案包含 QCM6490、QCS9075 和 QCS8300 機器的函式庫。 |
>         | --- | --- |
> 
> 
> 
>         `firmware-qcom-dspso_1.0.bb` 配方執行以下操作：
> 
> 
> 
> > 
> > 
> > 1. 根據 SRC\_URI 從遠端伺服器擷取 DSP 函式庫。
> >         2. 解壓 zip 檔。
> >         3. 將 DSP 函式庫安裝至 `rootfs`。
>     - **安裝 boot、subsystem 和 dspso**
> 
> 
>         當建置 Qualcomm Linux 時，建置系統會根據機器設定檔中設定的 `MACHINE_EXTRA_RDEPENDS` 變數，使用韌體配方部署預建韌體。例如，在 `qcom-qcs6490.inc` 中，可見 `packagegroup-firmware-qcm6490` 被包含於 `MACHINE_EXTRA_RDEPENDS` 變數中：
> 
> 
> MACHINE_EXTRA_RDEPENDS += " \
>                packagegroup-firmware-qcm6490 \
>                "
>             Copy to clipboard
> 
> 
> 備註
> 
> 
> `packagegroup-firmware-qcm6490` 配方位於 `<workspace>/layers/meta-qcom-hwe/recipes-firmware/packagegroups/` 目錄中。它將韌體配方分組以產生映像。
> 
> 
>         當建置 Qualcomm Linux 時，根據機器設定與配方群組檔案中的設定，會建置 `<workspace>/layers/meta-qcom-hwe/recipes-firmware/firmware` 目錄中的相關韌體配方。
> - **核心配方**
> 
> 
>     Qualcomm Linux 所使用的核心配方位於 `<workspace>/layers/meta-qcom-hwe/recipes-kernel/linux`。
> 
> 
>     Qualcomm Linux 支援 LTS（長期支援）版本的 Qualcomm Linux 核心 v6.6.x。在 `meta-qcom-hwe` 層中，有兩個不同的核心配方：
> 
>     - `linux-qcom-custom_6.6.bb` 配方支援 `custom` BSP，並從 `git.codelinaro.org` 上的 `qcom.git` 擷取核心原始碼。
>     - `linux-qcom-base_6.6.bb` 配方支援 `base` BSP，並從 `git.kernel.org` 上的 `linux.git` 擷取核心原始碼。
> 
> 
> 
> Tab linux-qcom-custom\_6.6.bb
> Tab linux-qcom-base\_6.6.bb
> 
> inherit kernel sota
>         
>         COMPATIBLE_MACHINE = "(qcom)"
>         
>         SRCPROJECT = "git://git.codelinaro.org/clo/la/kernel/qcom.git;protocol=https"
>         SRCBRANCH  = "kernel.qclinux.1.0.r1-rel"
>         SRCREV     = "d3ed32bf7ee64db22653833d4c3d9a80dd76896d"
>         
>         SRC_URI = "${SRCPROJECT};branch=${SRCBRANCH};destsuffix=kernel \
>                  ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux.cfg', '', d)} \
>                  ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', ' file://selinux_debug.cfg', '', d)} \
>                  "
>         
>         S = "${WORKDIR}/kernel"
>         
>         KERNEL_CONFIG ??= "qcom_defconfig"
>         Copy to clipboard
> 
> inherit kernel sota
>         
>         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 \
>                     file://vm-configs/qcom_vm.cfg \
>                     file://qcom_debug.cfg \
>                     "
>         # Apply qcom patches
>         require ${BPN}-${PV}/configs.inc
>         require ${BPN}-${PV}/devicetree.inc
>         require ${BPN}-${PV}/drivers.inc
>         require ${BPN}-${PV}/dt-bindings.inc
>         require ${BPN}-${PV}/tools.inc
>         
>         KERNEL_CONFIG_FRAGMENTS:append = " ${WORKDIR}/qcom.cfg"
>         KERNEL_CONFIG_FRAGMENTS:append = " ${@oe.utils.vartrue('DEBUG_BUILD', '${WORKDIR}/qcom_debug.cfg', '', d)}"
>         
>         S = "${WORKDIR}/git"
>         Copy to clipboard
> 
> 
>     機器設定檔使用 OVERRIDES 選擇適當的核心配方變體。當選擇 `base` 變體時，`qcom-base.inc` 檔案會選擇 `linux-qcom-base`。若選擇 `custom` 變體，則會使用 `linux-qcom-custom` 配方建置核心，如以下程式碼所示。
> 
> 
> PREFERRED_PROVIDER_virtual/kernel ?= "linux-qcom-custom"
>         PREFERRED_PROVIDER_virtual/kernel:qcom-base-bsp ?= "linux-qcom-base"
>         Copy to clipboard
> 
> 
>     **核心設定**
> 
> 
>     Qualcomm Linux 核心配方針對 `base` 與 `custom` 變體使用不同的核心設定與片段。
> 
> 
> 
> 
> 
> 
>     | 變體 | 設定與片段檔案 |
>     | --- | --- |
>     | `base` | `defconfig`, `qcom.cfg`, `qcom_vm.cfg`, `qcom_debug.cfg` |
>     | `custom` | `qcom_defconfig`, `qcom_addons.config`, `selinux.cfg`,<br>`qcom_debug.config`, `qcom_addons_debug.config`, `selinux_debug.cfg` |
> 
> 
> 
>     以下表格說明 `custom` 變體所使用的 `defconfig` 與 `fragments`。
> 
> 
> 
> 
> 
> 
>     | 核心設定片段 | 描述 |
>     | --- | --- |
>     | `<kernel_src>/arch/arm64/configs/qcom_defconfig` | 預設設定符合產品/效能需求 |
>     | `<kernel_src>/arch/arm64/configs/qcom_debug.config` | 除錯設定片段 |
>     | `<kernel_src>/arch/arm64/configs/qcom_addons.config` | 在與上游對齊的基礎上加入額外的 Qualcomm 附加功能 |
>     | `<kernel_src>/arch/arm64/configs/qcom_addons_debug.config` | Qualcomm 除錯功能啟用 |
> 
> 
> 
>     Qualcomm Linux 的 `custom` 變體配方 `linux-qcom-custom_6.6.bb` 進一步支援 `perf` 和 `debug` 變體。使用 `linux-qcom-custom_6.6.bb` 建構核心的預設方法是 `perf`。
> 
> 
> 
> 
> 
> 
>     | 建構變體 | Defconfig/config fragments |
>     | --- | --- |
>     | `Perf` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_defconfig</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_addons.config</span></code></p></li><br></ul> |
>     | `Debug` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_defconfig</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_debug.config</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_addons.config</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">arch/arm64/configs/qcom_addons_debug.config</span></code></p></li><br></ul> |
> 
> 
> 
>     若要使用 `linux-qcom-custom_6.6.bb` 建構除錯核心映像，請在執行 BitBake 指令的 shell 中設定 DEBUG\_BUILD 為 1。
> 
> 
>     此選項在以下程式碼中生效：
> 
> 
> 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 平台自動載入核心模組，請在 Qualcomm Linux 核心配方中更新 KERNEL\_MODULE\_AUTOLOAD 變數。例如，CoreSight 和 STM 模組會如下自動載入：
> 
> 
> KERNEL_MODULE_AUTOLOAD += "coresight coresight-tmc coresight-funnel"
>         KERNEL_MODULE_AUTOLOAD += "coresight-replicator coresight-etm4x coresight-stm"
>         KERNEL_MODULE_AUTOLOAD += "coresight-cti coresight-tpdm coresight-tpda coresight-dummy"
>         KERNEL_MODULE_AUTOLOAD += "coresight-remote-etm coresight-tgu"
>         KERNEL_MODULE_AUTOLOAD += "stm_core stm_p_ost stm_console stm_heartbeat stm_ftrace "
>         Copy to clipboard
> - **授權**
> 
> 
>     `meta-qcom-hwe` 中配方的授權列於 `<workspace>/meta-qcom-hwe/files/common-licenses`。
> 
> 
> common-licenses/
>         ├── BSD-3-Clause-Clear
>         ├── GPLv2.0-with-linux-syscall-note
>         └── Qualcomm-Technologies-Inc.-Proprietary
>         Copy to clipboard
> 
> 
>     Yocto 可根據映像建立自動產生 SPDX SBOM 文件。若要啟用此功能，請在 `local.conf` 中繼承 `create-spdx` 類別如下：
> 
> 
> INHERIT += "create-spdx"
>         Copy to clipboard
> 
> 
>     繼承該類別後，請使用 BitBake 指令重新建構映像：
> 
> 
> bitbake qcom-multimedia-image
>         Copy to clipboard
> 
> 
>     您可以在以下目錄中找到 SPDX 輸出：
> 
>     - 對於每個配方，產生的檔案位於 `tmp/deploy/spdx/<machine>` 目錄中
>     - 最上層的 SPDX 輸出檔案位於 `tmp/deploy/images/MACHINE/<image-recipe>-<MACHINE>.spdx.json` 目錄中。

### meta-qcom-distro

此層提供 Qualcomm Linux 的參考發行版設定。此層定義映像配方與套件群組。

- **BitBake classes**

    下表介紹 BitBake 類別，可於 [Classes](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/classes) 取得。

    Qualcomm Linux 支援 SSH 與 UART 串列殼層以存取裝置。您可選擇 SSH 或 UART 存取裝置。當 IP 介面無法使用時，也可使用 ADB 除錯或傳輸大型檔案。

    | `image-adbd.bbclass` | `meta-qcom-distro` 中的 `image-adbd.bbclass` 類別會在映像中安裝 adbd。除非 `IMAGE_FEATURES` 包含 `enable-adbd` 功能，否則 adbd 守護程序預設為停用。您可手動從 `rootfs` 中移除 `/etc/usb-debugging-enabled` 以停用 adbd。 |
    | --- | --- |
    | `image-qcom-deploy.bbclass` | 部署映像檔案至 `<workspace>/build-<distro>/tmp-glibc/deploy/images/<machine>/<image-name>`。產生的映像會部署至 `<image-name>` 子目錄。 |
- **發行版設定**

    下表介紹發行版設定，可於 [GitHub](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/conf/distro) 取得。

    | `conf/distro/qcom-wayland.conf` | 此發行版設定檔定義 `qcom-wayland` 發行版。您可在以下範例指令中使用 `qcom-wayland` 發行版。<br><br><br><br>> <br>> <br>> MACHINE=qcs6490-rb3gen2-core-kit DISTRO=qcom-wayland QCOM_SELECTED_BSP=base source setup-environment<br>>         Copy to clipboard<br><br><br><br>`meta-qcom-distro/conf/distro/include/qcom-base.inc` 設定定義通用 DISTRO\_FEATURES。`meta-qcom-distro/conf/distro/qcom-wayland.conf` 設定新增以下功能：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">wayland</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">vulkan</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">opengl</span></code></p></li><br>> </ul><br><br><br><br>Yocto Project 文件於 [Distribution features](https://docs.yoctoproject.org/5.0.6/singleindex.html#distro-features) 中定義這些發行版功能。 |
    | --- | --- |
    | `conf/distro/include/qcom-base.inc` | INIT\_MANAGER 設為 `systemd`。有關 INIT\_MANAGER 的 Yocto Project 文件，請參見 [INIT_MANAGER](https://docs.yoctoproject.org/5.0.6/singleindex.html#term-INIT_MANAGER)。其他啟用的 DISTRO\_FEATURES 包括：<br><br><br>DISTRO_FEATURES:append = ” pam overlayfs acl xattr selinux ptest security virtualization tpm usrmerge sota”<br>        Copy to clipboard<br><br><br>若要瞭解這些 DISTRO\_FEATURES 的用途，請參見 [Distribution features](https://docs.yoctoproject.org/5.0.6/singleindex.html#distro-features)。<br><br><br>此檔案選擇 `systemd` 為 INIT\_MANAGER，`udev` 為 DEV\_MANAGER。 |
    | `conf/distro/include/qcom-security_flags.inc` | 此檔案包含於 [security flags](https://git.yoctoproject.org/poky/tree/meta/conf/distro/include/security_flags.inc?h=scarthgap) 中定義的安全性旗標。 |
- **套件群組**

    套件群組定義於 `meta-qcom-hwe` 與 `meta-qcom-distro`。這些套件群組有助於瞭解 Qualcomm BSP 所定義的功能。

    | `packagegroup-qcom.bb` | 包含所有基本套件的套件群組。 |
    | --- | --- |
    | `packagegroup-qcom-multimedia.bb` | 包含啟用多媒體支援套件的套件群組：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-container</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-audio</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-camera</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-display</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-fastcv</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-graphics</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-k8s</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-opencv</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-video</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">python3-docker-compose</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-iot-base-utils</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-location</span></code></p></li><br>> </ul><br>> <br>> 備註<br>> <br>> <br>> `packagegroup-qcom-location` 定義於 `meta-qcom-extras` 中的中繼資料層。 |
    | `packagegroup-qcom-test-pkgs.bb` | 包含測試套件的套件群組。 |
- **映像配方**

    `meta-qcom-distro` Qualcomm Linux 中繼資料層定義映像配方，可於 [GitHub](https://github.com/qualcomm-linux/meta-qcom-distro/tree/scarthgap/recipes-products/images) 取得。下表列出各種映像、其 `IMAGE_FEATURES`，以及映像所提供的功能：

    | 映像配方 | 映像說明 |
    | --- | --- |
    | `qcom-minimal-image.bb` | 定義一個小型 `rootfs`，可啟動至殼層。<br><br><br>啟用的 `IMAGE_FEATURES` 如下：<br><br><br>IMAGE_FEATURES += "splash tools-debug allow-root-login post-install-logging enable-adbd"<br>        Copy to clipboard<br><br><br>有關 `IMAGE_FEATURES` 的更多資訊，請參見 [Image features](https://docs.yoctoproject.org/5.0.6/singleindex.html#image-features)。 |
    | `qcom-console-image.bb` | 透過新增更多套件與啟用更多 `IMAGE_FEATURES` 擴充 `qcom-minimal-image`：<br><br><br>IMAGE_FEATURES += “package-management ssh-server-openssh”<br>        Copy to clipboard |
    | `qcom-multimedia-image.bb` | 需要 `DISTRO_FEATURE` 為 wayland，並在 `rootfs` 中包含所有多媒體套件。 |
    | `qcom-multimedia-test-image.bb` | 在 `rootfs` 中包含測試套件以測試 `qcom-multimedia-image`。 |
    | `qcom-multimedia-crossesdk-image.bb` | 為 `qcom-multimedia-image` 產生 eSDK。 |
    | `qcom-guestvm-image.bb` | 一個支援啟動至殼層的最小核心虛擬機 (KVM) 映像。 |
- **QDL 燒錄工具**

    QDL 是一種燒錄工具，可與 USB 裝置通訊以上傳燒錄載入器至裝置。燒錄載入器會將映像燒錄至裝置內建的通用燒錄儲存 (UFS) 或嵌入式多媒體卡 (eMMC)。有關 `QDL flashing` 的更多資訊，請參見 [QDL](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/flash_images.html)。

### 建構 Qualcomm Linux

`meta-qcom`、`meta-qcom-hwe` 與 `meta-qcom-distro` 區段描述機器設定、發行版設定、映像配方與 OVERRIDES。

`MACHINE`、`DISTRO` 與 `QCOM_SELECTED_BSP` 的支援值列於 [table](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html#qcom-selected-bsp)。若要設定環境，請使用這些值並執行以下指令：

MACHINE=<machine configuration name> DISTRO=<Distro name> QCOM_SELECTED_BSP=<variant name> source setup-environment
    Copy to clipboard

下表列出可選擇的映像配方，根據所選的 `MACHINE`、`DISTRO` 與 `QCOM_SELECTED_BSP` 產生映像，請執行以下指令：

bitbake <image recipe name>
    Copy to clipboard

| `QCOM_SELECTED_BSP`<br><br>（由您選擇） | 有效的 BitBake OVERRIDE<br><br>（從 `QCOM_SELECTED_BSP` 派生） | MACHINE 設定<br><br>（由您選擇） | 參考 DISTRO 設定<br><br>（由您選擇） | 映像配方<br><br>（由您選擇） |
| --- | --- | --- | --- | --- |
| `custom` | `qcom-custom-bsp` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-core-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-vision-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-industrial-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-idp.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs8300-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs9100-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs9075-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs8300-ride-sx.conf</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-wayland</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-robotics-ros2-humble</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-minimal-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-console-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-multimedia-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-multimedia-test-image</span></code></p></li><br></ul> |
| `base` | `qcom-base-bsp` | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-core-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-vision-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-rb3gen2-industrial-kit.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs6490-idp.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs8300-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs9100-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs9075-ride-sx.conf</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcs8300-ride-sx.conf</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-wayland</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-robotics-ros2-humble</span></code></p></li><br></ul> | <ul class="simple"><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-minimal-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-console-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-multimedia-image</span></code></p></li><br><li><p><code class="docutils literal notranslate"><span class="pre">qcom-multimedia-test-image</span></code></p></li><br></ul> |
|  |  |  |  |  |

如需了解建構 Qualcomm Linux 所支援的組合，請參閱 [Qualcomm Linux 發行說明](https://docs.qualcomm.com/bundle/publicresource/topics/RNO-250403001134).

如需詳細的建構指引，請參閱 [GitHub 非註冊用戶工作流程](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/github_workflow_unregistered_users.html).

### meta-qcom-realtime

`meta-qcom-realtime` 中繼資料層可在 [GitHub](https://github.com/qualcomm-linux/meta-qcom-realtime) 上取得。此層提供額外的軟體支援，用於為 Qualcomm 裝置建構即時核心。

- **核心配方**

    Qualcomm Linux 支援 LTS Qualcomm Linux 核心 v6.6.x 及即時擴充功能。該功能透過 `meta-qcom-realtime` 層下的 `recipes-kernel/linux` 中的 `linux-qcom-custom-rt_6.6.bb` 和 `linux-qcom-base-rt_6.6.bb` Yocto 配方進行維護。待處理的 pre-empt RT 修補程式可在 [realtime](https://wiki.linuxfoundation.org/realtime/start) 找到。這些修補程式會擷取並套用至 `linux-qcom-custom-rt_6.6.bb`，該配方公開託管於 [Codelinaro](https://git.codelinaro.org/clo/la/kernel/qcom.git)。

    若要為 Qualcomm 裝置編譯即時核心：

> 
> 
> - 如果選擇 `custom` OVERRIDE，則 `conf/layer.conf` 會選擇 `linux-qcom-custom-rt`。
>     - 如果選擇 `base` OVERRIDE，則 `conf/layer.conf` 會選擇 `linux-qcom-base-rt`。

    **核心設定**

    這兩個配方都會附加 `qcom_rt.cfg` 片段，如下所示：:

KERNEL_CONFIG_FRAGMENTS:append = " ${WORKDIR}/qcom_rt.cfg"
        Copy to clipboard
- **在建構中啟用** `meta-qcom-realtime`

    若要在建構中包含 `meta-qcom-realtime`，請將該層匯出至 `bblayers.conf` 中的 EXTRALAYERS，如下列步驟所述：

    1. 載入環境。

        以下是針對 QCS6490 為基礎的機器與 `qcom-wayland` 發行版載入環境的範例：

MACHINE=qcs6490-rb3gen2-core-kit DISTRO=qcom-wayland source setup-environment
            Copy to clipboard
    2. 開啟 `build-qcom-wayland/conf/bblayers.conf` 檔案並更新 EXTRALAYERS 變數如下。

EXTRALAYERS ?= " \
              ${WORKSPACE}/layers/meta-qcom-realtime \
             "
            Copy to clipboard
    3. 執行建構指令以使用 `meta-qcom-realtime` 重新建構如下：

bitbake qcom-multimedia-image
            Copy to clipboard

### meta-qcom-extras

此層是提供給註冊用戶的選用中繼資料層。它允許對某些元件進行原始碼編譯，這些元件在 `meta-qcom-hwe` 中通常以二進位形式提供。若您有權取得此中繼資料層，可依照 [Qualcomm Linux 建置指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/build_addn_info.html) 中提供的步驟操作：

- **韌體配方**

    `meta-qcom-extras` 層提供了對 `meta-qcom-hwe/recipes-firmware/firmware` 中定義的韌體配方的附加檔案（副檔名為 `.bbappend`）。這些附加檔案中的 `SRC_URI` 指向您可能希望使用的 zip 檔案，以取代 Qualcomm Linux 發行版中預設的 zip 檔案。

    請依照 [Qualcomm Linux 建置指南](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/build_addn_info.html) 的說明，建置 cDSP、aDSP、開機韌體，並產生可透過提供的附加配方檔整合的 zip 檔案。

    | recipes-firmware<br>        └── firmware<br>           ├── firmware-qcom-bootbins_1.0.bbappend<br>           ├── firmware-qcom-dspso_1.0.bbappend<br>           ├── firmware-qcom-hlosfw_1.0.bbappend<br>           └── firmware-qcom-partconf_1.0.bbappend<br>        Copy to clipboard | `meta-qcom-extras` 中的配方會覆寫 `meta-qcom-hwe` 中配方的 `SRC_URI`。預設情況下，`meta-qcom-hwe` 使用預建的韌體二進位檔，而 `meta-qcom-extras` 則使用使用者提供的韌體 zip 檔進行建置。<br><br><br>`meta-qcom-extras` 層會忽略預設 zip 檔中的預建二進位檔。這些配方會依據變數 `FWZIP_PATH` 所定義的路徑搜尋使用者提供的 zip 檔，如下所示：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">firmware-qcom-bootbins_1.0.bbappend</span></code>：依據 <code class="docutils literal notranslate"><span class="pre">FWZIP_PATH</span></code> 變數定義的路徑搜尋 zip 檔。</p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">firmware-qcom-hlosfw_1.0.bbappend</span></code>：依據 <code class="docutils literal notranslate"><span class="pre">FWZIP_PATH</span></code> 變數定義的路徑搜尋 zip 檔。</p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">firmware-qcom-dspso_1.0.bbappend</span></code>：依據 <code class="docutils literal notranslate"><span class="pre">FWZIP_PATH</span></code> 變數定義的路徑搜尋 zip 檔。</p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">firmware-qcom-partconf_1.0.bbappend</span></code>：依據 <code class="docutils literal notranslate"><span class="pre">FWZIP_PATH</span></code> 變數定義的路徑搜尋 zip 檔。</p></li><br>> </ul> |
    | --- | --- |

### meta-qcom-qim-product-sdk

- **BitBake classes**

    下表列出 `meta-qcom-qim-product-sdk` 中繼資料層中定義的 BitBake 類別：

    | BitBake 類別 | 描述 |
    | --- | --- |
    | `qim-prod-sdk-pkg.bbclass` | <ul class="simple"><br><li><p>提供封裝任務以將 Qualcomm 智慧多媒體產品 (QIMP) SDK 成品打包為壓縮檔。此任務由 <code class="docutils literal notranslate"><span class="pre">qim-product-sdk</span></code> 配方呼叫。</p></li><br><li><p>這些易於安裝的成品壓縮檔會在配方建置完成後，儲存於 <code class="docutils literal notranslate"><span class="pre">&lt;workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qim_prod_sdk_artifacts</span></code> 目錄中。</p></li><br></ul> |
    | `qimsdk-pkg.bbclass` | <ul class="simple"><br><li><p>提供封裝任務以將 Qualcomm 多媒體 SDK 套件打包為壓縮檔，並附上易於使用的安裝腳本。這些壓縮檔分別包含開發、部署與除錯所需的套件。</p></li><br><li><p>這些易於安裝的成品壓縮檔會儲存於 <code class="docutils literal notranslate"><span class="pre">&lt;workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qimsdk_artifacts</span></code> 目錄中。</p></li><br><li><p>此任務由 <code class="docutils literal notranslate"><span class="pre">qim-sdk</span></code> 配方在建置期間呼叫。</p></li><br></ul> |
    | `tflitesdk-pkg.bbclass` | <ul class="simple"><br><li><p>提供封裝任務以將 Lite Runtime SDK 成品打包為多個壓縮檔，分別用於開發、部署與除錯。此任務由 <code class="docutils literal notranslate"><span class="pre">tflite-sdk</span></code> 配方在建置期間呼叫。</p></li><br><li><p>這些易於安裝的成品壓縮檔會在配方建置完成後，儲存於 <code class="docutils literal notranslate"><span class="pre">&lt;workspace&gt;/build-qcom-wayland/tmp-glibc/deploy/qim_prod_sdk_artifacts</span></code> 目錄中。</p></li><br></ul> |
- **發行版設定**

    | `layer.conf` | 設定專案層的相關資訊如下：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>配方檔案路徑資訊</p></li><br>> <li><p>支援的 Yocto 版本</p></li><br>> <li><p>支援的 Qualcomm<sup>®</sup> Hexagon<sup>™</sup> 處理器版本</p></li><br>> <li><p>支援的 Qualcomm<sup>®</sup> Neural Processing SDK 版本</p></li><br>> <li><p>支援的 Qualcomm Neural Network (QNN) SDK 版本</p></li><br>> </ul> |
    | --- | --- |
- **映像配方**

    | 配方 | 描述 |
    | --- | --- |
    | `recipes-gst` | 包含上游 GStreamer 配方的變更（`.bbappend`）以及 Qualcomm 的配方：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-good_1.20%.bbappend</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-base.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-batch.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-metamux.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mldemux.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlmeta.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlmuxer.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlqnn.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlsnpe.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mltflite.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvclassification.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvconverter.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvdetection.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvpose.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvsegmentation.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-overlay.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-qmmfsrc.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-socket.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-tools.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vcomposer.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vsplit.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vtransform.bb</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-qcom-oss-sample-apps.bb</span></code></p></li><br>> </ul> |
    | `recipes-qcom-ml` | 包含兩個配方：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">qnn.bb</span></code>：用於封裝 QNN SDK</p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">snpe.bb</span></code>：用於封裝 Qualcomm Neural Processing SDK</p></li><br>> </ul> |
    | `recipes-qim-product-sdk` | 安裝 QIM 產品 SDK 的配方，包含 QIM、Qualcomm Neural Processing、QNN 與 Lite Runtime SDK |
    | `recipes-tensorflow-lite` | Lite Runtime 配方會建置並安裝以下版本的 Lite Runtime：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p>2.12.1, 2.13.1, 2.14.1, and 2.15.0</p></li><br>> <li><p>預設版本：2.15.0</p></li><br>> </ul> |
- **套件群組**

    | 套件群組 | 描述 |
    | --- | --- |
    | `packagegroup-qcom-gstrecipes-gst` | 啟用上游基本 GStreamer 及 Qualcomm 外掛程式的套件群組：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-base</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-tools</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-batch</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-metamux</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mldemux</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlmeta</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvconverter</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvclassification</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvdetection</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvpose</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlvsegmentation</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-overlay</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-qmmfsrc</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-socket</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vcomposer</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vsplit</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-vtransform</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-qcom-oss-sample-apps</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlsnpe</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mlqnn</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-qcom-oss-mltflite</span></code></p></li><br>> </ul><br><br><br><br>它也會打包上游的 GStreamer 套件：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">cairo</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gdk-pixbuf</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">liba52</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libdaemon</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libgudev</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">lame</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libpsl</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">librsvg</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libsoup-2.4</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libtheora</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libwebp</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">mpg123</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">orc</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">sbc</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">speex</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">taglib</span></code></p></li><br>> </ul> |
    | `packagegroup-qcom-gst-basic` | 啟用上游 GStreamer 的套件群組：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-base</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-good</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-plugins-bad</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">gstreamer1.0-rtsp-server</span></code></p></li><br>> </ul> |
    | `packagegroup-qcom-qim-product` | 打包以下套件及安裝腳本的套件群組：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-gst</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">packagegroup-qcom-ml</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">install.sh</span></code></p></li><br>> </ul> |
    | `packagegroup-qcom-ml` | 打包 Qualcomm 機器學習框架的套件群組：<br><br><br><br>> <br>> <br>> <ul class="simple"><br>> <li><p><code class="docutils literal notranslate"><span class="pre">tensorflow-lite</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">qnn</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">snpe</span></code></p></li><br>> <li><p><code class="docutils literal notranslate"><span class="pre">libgomp-dev</span></code></p></li><br>> </ul> |

Last Published: Jul 30, 2025

[Previous Topic
Qualcomm Linux 功能](https://docs.qualcomm.com/bundle/publicresource/80-70018-27TC/topics/qualcomm_linux_features.md) [Next Topic
Qualcomm Linux 軟體元件](https://docs.qualcomm.com/bundle/publicresource/80-70018-27TC/topics/qualcomm_linux_software_components.md)

Source: [https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html](https://docs.qualcomm.com/doc/80-70018-27TC/topic/qualcomm_linux_metadata_layers_overview.html)