> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Qualcomm Linux 2.0 相较于 Qualcomm Linux 1.0 的优势

Qualcomm Linux 2.0 在构建系统、层架构、内核、设备树管理和技术栈等方面相较于 Qualcomm Linux 1.0 引入了重大改进。

下表从高层级概述了 Qualcomm Linux 2.0 相较于 Qualcomm Linux 1.0 的主要优势:

**表:Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 对比**

| **方面** | **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- | :- |
| 构建系统 | 基于 repo manifest,需手动设置环境变量(`MACHINE`、`DISTRO`、`QCOM_SELECTED_BSP`) | 基于 KAS 的构建 - 单条命令即可完成设置,原生支持 CI/CD |
| 层架构 | 4 个 BSP 层:`meta-qcom`、`meta-qcom-hwe`、`meta-qcom-qim-product-sdk` 和 `meta-qcom-realtime` | 1 个统一的 BSP 层:`meta-qcom` |
| 镜像配方 | 基于 override(`qcom-base-bsp`、`qcom-custom-bsp`),条件逻辑复杂 | 两个明确、透明的镜像:`qcom-multimedia-image` 和 `qcom-multimedia-proprietary-image` |
| 内核 | v6.6,拆分为 `linux-qcom-base` 和 `linux-qcom-custom` 两个内核树 | v6.18 LTS,所有镜像使用单一统一的 `linux-qcom` 内核树 |
| 设备树 | 拼接式多 DTB,带有下游 `addons` 片段 | 基于 FIT 的多 DTB,与上游保持一致,无 `addons` 片段 |
| UEFI DTB 处理 | 自定义的、特定于平台的固件逻辑用于解析 DTB | UEFI 中的通用 FIT 解析器 - 添加新 DTB 无需更改固件 |
| Qualcomm 增值组件 | 通过 BitBake override 固化在镜像中 | 模块化 overlay - 可在运行时启用或禁用,无需重新构建镜像 |
| OTA 升级 | 通过 OSTree 和 UEFI capsule 支持;需要手动执行 `uefi_sec` 步骤 | 通过 OSTree 和 UEFI capsule 支持;不再需要 `uefi_sec` 步骤 |
| 容器 | Qualcomm 定义的容器 packagegroup | 来自 `meta-virtualization` 的上游 `packagegroup-container` |

## **1. 简化且统一的构建系统(基于 KAS)**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| 基于 repo manifest,需手动执行 `setup-environment` 并设置多个环境变量(`MACHINE`、`DISTRO`、`QCOM_SELECTED_BSP`) | KAS(Configuration Automation System),使用简单的 YAML 配置文件 |
| 多步骤手动设置 | 单条命令:`kas build <machine.yml>:<distro.yml>` 即可自动克隆、配置和构建 |
| 由客户自行定义 CI/CD | 通过 `kas-container`(支持 Docker)原生支持 CI/CD |

**优势:**
大幅减少设置构建环境所需的步骤。开发人员和 CI/CD 流水线只需一条命令即可完成构建,从而减少人为错误并缩短上手时间。

## **2. 整合且更清晰的层架构**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| 4 个 BSP 层:meta-qcom、meta-qcom-hwe、meta-qcom-qim-product-sdk、meta-qcom-realtime | 单一统一的 BSP 层:meta-qcom |
| 配方分散在多个层中 | 所有 BSP 配方集中在一处 |

**优势:**
需要管理的层更少,需要跟踪的层间依赖更少,并且所有 BSP 配方都有单一可信来源。降低了客户构建自有层时的集成复杂度。

## **3. 更清晰、更透明的镜像配方组织**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| qcom-multimedia-image 使用复杂的 BitBake OVERRIDES(qcom-base-bsp、qcom-custom-bsp、qcom-custom-distro)按条件包含软件包 | 两个明确分离的镜像:qcom-multimedia-image(上游)和 qcom-multimedia-proprietary-image(Qualcomm 增值) |
| 代码难以阅读,需要追踪 override 逻辑 | 明确、易读的镜像配方 - 没有基于 override 的条件逻辑 |

**优势:**
客户可以清楚地了解每个镜像中包含的内容。无需再追踪复杂的 override 链来了解 rootfs 内容。更易于自定义和维护。

## **4. 与上游保持一致的内核和设备树(LTS v6.18)**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| 内核 v6.6,拆分为 linux-qcom-base 和 linux-qcom-custom(两个独立的内核树) | 所有镜像使用单一统一的内核 linux-qcom\_6.18.bb(LTS v6.18) |
| 独立的 addons 设备树片段(仅限下游) | 所有设备树均已提交上游,并与标准绑定保持一致 - 无 addons 片段 |
| 拼接式多 DTB(自定义、依赖顺序的解析) | 基于 FIT 的多 DTB(标准、结构化、不依赖顺序) |
| 构建时合并 DTB overlay | 通过 FIT 在启动时应用 DTB overlay - 更灵活且可感知硬件 |

**优势:**
单一的现代 LTS 内核简化了维护工作。与上游保持一致的设备树意味着更好的社区支持,更容易将客户的更改提交到上游,并且无需维护仅限下游的补丁。

## **5. 现代化的基于 FIT 的 DTB 和 UEFI 改进**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| 用于 DTB 解析的自定义、特定于平台的 UEFI 代码 | UEFI 中的通用 FIT 解析器 - 符合标准(U-Boot、Linux、UEFI) |
| 硬编码偏移逻辑,依赖顺序/大小 | 基于节点的选择,不依赖大小和顺序 |
| UEFI 中不原生支持 DTB overlay | 通过 FIT 原生支持 DTB overlay(DTBO) |
| 添加新 DTB 需要固件感知和验证 | 添加新 DTB 无需更改固件 |

**优势:**
添加新的硬件变体变得更加容易,且无需更改固件。基于 FIT 的方法是一种行业标准机制,可减少供应商锁定并提高长期可维护性。

## **6. 模块化 overlay 架构(QLI 2.0 新增)**

QLI 2.0 引入了新的 overlay 系统,这是一项关键的架构优势:

* Qualcomm 增值组件(音频、摄像头、图形、视频、传感器、视觉)以**模块化、可加载的 overlay** 形式提供。
* 客户可以**从完全上游的镜像**(qcom-multimedia-image)开始,并有选择地启用 Qualcomm 技术栈。
* overlay 使用**模块黑名单**机制,在运行时将上游驱动干净地替换为经 Qualcomm 优化的驱动。
* 在上游栈和 Qualcomm 栈之间切换时,无需重新构建整个镜像。

**优势:**
客户获得最大的灵活性 - 先评估上游组件,然后仅在需要时叠加 Qualcomm 特定的优化。这非常适合产品开发,并可缩短上市时间。

## **7. 从 QLI 1.0 无缝 OTA 升级**

* QLI 2.0 支持与 QLI 1.0 **相同的 OTA 机制**(Linux 使用 OSTree + 固件使用 UEFI Capsule)。
* 客户可以通过**空中下载**方式从 QLI 1.0 升级到 QLI 2.0,无需重新烧写。
* EFI 变量现在直接存储在 EFI 分区中(无需手动运行 uefi\_sec 应用)

**优势:**
保护现有的现场部署。在生产环境中运行 QLI 1.0 的客户无需物理接触设备即可迁移到 QLI 2.0。

## **8. 简化的容器和 Kubernetes 支持**

下表列出了 Qualcomm Linux 1.0 与 Qualcomm Linux 2.0 在构建系统方面的主要差异:

| **Qualcomm Linux 1.0** | **Qualcomm Linux 2.0** |
| :- | :- |
| Qualcomm 定义的容器 packagegroup,需要兼容性脚本 | 来自 meta-virtualization 的上游 packagegroup-container - 无需脚本 |
| 通过捆绑在多媒体镜像中的 packagegroup-qcom-k8s 提供 Kubernetes | 专用的 qcom-container-orchestration-image - 与多媒体镜像解耦 |

**优势:**
更清晰的关注点分离。容器和编排工作负载独立于多媒体栈,从而更容易构建特定用途的镜像。
