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

# 系统软件架构

Qualcomm® Linux® 是由 Qualcomm 提供、与上游对齐的 Linux 软件栈，针对 Qualcomm 片上系统（SoC）进行了优化。它不是独立的 Linux 发行版，而是提供一个统一、模块化的 Linux 平台，可简化在多款 Qualcomm SoC 上构建、部署和维护安全的、可投入生产的 Linux 解决方案。

Qualcomm Linux 提供以下能力：

* 支持多款 Qualcomm SoC 的单一 Linux 平台。
* 集成的 AI、多媒体和连接功能启用。
* 与上游 Linux 内核对齐，同时兼具商用稳定性。
* 基于标准的启动、安全和设备管理。
* 支持虚拟化的架构。
* 基于标准的开放接口，支持可扩展性和长期可维护性。
* 平台级功耗与性能优化，使用上游 Linux 机制并结合 Qualcomm 增强功能。
* 基于 overlay 的可扩展性，无需重新构建操作系统即可添加 Qualcomm 软件。

这些能力共同构成了一个与上游对齐的 Linux 软件栈，并提供可选的 Qualcomm 增强功能。这种方式可帮助您跨产品和产品代际扩展解决方案，同时减少软件重构工作量。

**软件栈概述**

Qualcomm Linux 当前支持以下 SoC 平台：

* [QCS5430](https://www.qualcomm.com/internet-of-things/products/q5-series/qcs5430)
* [QCS6490](https://www.qualcomm.com/internet-of-things/products/q6-series/qcs6490)
* [IQ-8275](https://www.qualcomm.com/products/internet-of-things/industrial/industrial-automation/iq8-series/iq-8275)
* [IQ-9075](https://www.qualcomm.com/products/internet-of-things/industrial/industrial-automation/iq9-series/iq-9075)
* [IQ-615](https://www.qualcomm.com/products/internet-of-things/industrial-processors/iq6-series/iq-615)

该软件栈在整个堆栈中使用上游组件，也可以包含可安装的下游 Qualcomm 专有软件包。

软件栈包括：

* 统一可扩展固件接口（UEFI）引导加载程序。
* 带有少量正在上游化的补丁的 Linux 长期支持（LTS）内核。
* 与上游对齐的用户空间软件栈。
* 用于自定义功能的可安装软件包（overlay）。

<Frame caption="系统软件架构">
  <img src="https://mintcdn.com/qualcomm-prod/Im5W2pUR5LdqxAI6/Key-Documents/System-Software-Architecture/media/linux-system-software-architecture.svg?fit=max&auto=format&n=Im5W2pUR5LdqxAI6&q=85&s=84eaf215ff64bf179e498766732ed7d0" width="1567" height="836" data-path="Key-Documents/System-Software-Architecture/media/linux-system-software-architecture.svg" />
</Frame>

**Qualcomm Linux overlay**

Qualcomm Linux overlay 是可以干净地应用在上游软件之上的增值软件包。overlay 由音频、摄像头、图形和视频等技术组件的源代码或预构建二进制文件组成。

[overlay](https://dragonwingdocs.qualcomm.com/Key-Documents/Migration-Guide/) 是一种附加组件，它在不修改与上游对齐的软件栈的情况下，在其之上叠加 Qualcomm 技术——驱动程序、用户空间，以及在某些情况下的设备树 overlay。这种方式让您可以按技术领域在上游实现和下游（Qualcomm）实现之间切换。

overlay 让您可以在上游软件栈和 overlay 软件栈之间进行选择，以便进行实验和功能分析，并选择最适合您产品需求的 overlay 组合。

overlay 可能包括：

* 用户空间组件（用户态驱动程序（UMD）、库和工具）。
* 以动态可加载内核模块（DLKM）形式交付的内核组件。
* 对于某些技术领域（尤其是摄像头），还包括相关的设备树 overlay（DTBO）。

有关 overlay 配置和 overlay 软件包的更多信息，请参阅 [overlay 文档](https://dragonwingdocs.qualcomm.com/Key-Documents/Migration-Guide/use-overlay-configurations-to-derive-image-recipes)。

<Note>
  以下各节中的描述仅供参考。有关已启用软件功能的完整列表和任何已知问题，请参阅发行说明。
</Note>

## 显示

Qualcomm® Adreno™ 显示处理单元（DPU）是一个硬件加速的图像处理引擎，可从内存中检索像素数据，并通过标准显示接口将其传输到显示外设。

Qualcomm Linux 中的显示子系统基于 DRM/KMS 框架构建。Wayland 作为显示服务器协议，由 Weston 等合成器管理合成和渲染。

有关详细架构、硬件组件和软件栈，请参阅[显示指南](https://dragonwingdocs.qualcomm.com/Technologies/Display/display-overview)。

## 音频

Qualcomm Linux Infrastructure（QLI）音频软件栈旨在为不同平台上的音频功能提供灵活且可扩展的基础。ASOC 构成了管理音频硬件集成的核心框架，使系统能够以结构化的方式将标准音频服务与平台特定组件连接起来。Audio Overlay 用于在基础音频配置之上应用板级或平台特定的定制，使同一软件基础能够以最小的改动支持多种设备变体。在 QLI 生态系统中，这种方式有助于保持音频设计的模块化、可维护性，并使其更容易在不同产品间适配。AudioReach 通过提供先进音频处理和路由的框架来补充这一模型，帮助交付更可配置、更可复用的音频解决方案。ASOC、Audio Overlay 和 AudioReach 共同为基于 Qualcomm Linux 的平台提供了统一且适应性强的音频架构。

有关更多信息，请参阅[音频指南](https://dragonwingdocs.qualcomm.com/Technologies/Audio/audio-guide/audio-overview)。

## 视频

视频子系统使用上游 Video4Linux2（V4L2）接口。应用程序可以使用 V4L2 API 播放或录制视频。

有关更多信息，请参阅[视频指南](https://dragonwingdocs.qualcomm.com/Technologies/Video/video-documentation)。

## 摄像头

摄像头子系统通过 Video4Linux2 图像信号处理器（V4L2 ISP）驱动程序支持原始帧捕获。它使用 V4L2 子设备接口支持摄像头传感器。应用程序可以使用基于 V4L2 的摄像头应用程序，例如 `yavta` 和 `libcamera`。

有关更多信息，请参阅[摄像头指南](https://dragonwingdocs.qualcomm.com/Technologies/Camera/camera-documentation)。

## 图形

图形子系统采用上游优先的架构，并具备按需叠加专有能力的灵活性。它通过模块化 overlay 模型，同时支持上游 DRM/Mesa 图形框架以及 Qualcomm 优化的 Adreno 和内核图形支持层（KGSL）软件栈。

标准开发者 API 包括：

* OpenGL ES
* Vulkan
* OpenCL

有关更多信息，请参阅[图形指南](https://dragonwingdocs.qualcomm.com/Technologies/Graphics/graphics-documentation)。

## AI/ML

Qualcomm AI/ML 软件支持在 Qualcomm 硬件加速器（包括 NPU、GPU 和 CPU）上高效部署预训练的深度学习模型。它提供全面的开发环境，包括 SDK、API、示例应用程序、开发工具，并支持 GStreamer 和 TensorFlow Lite（TFLite）等第三方框架，以简化 AI 应用程序开发。

对于多媒体 AI 用例，应用程序使用 Qualcomm Intelligent Multimedia（IM）SDK GStreamer 插件 API，这些 API 与 Qualcomm AI Runtime SDK API 集成，为 AI 工作负载启用底层硬件加速。

有关更多信息，请参阅：

* [LiteRT 框架](https://ai.google.dev/edge/litert)
* [Qualcomm AI Runtime（QAIRT）](https://dragonwingdocs.qualcomm.com/Key-Documents/AI-Developer-Workflow/topic/qairt)

## Qualcomm Sensing Hub（QSH）

[Qualcomm Sensing Hub（QSH）](https://dragonwingdocs.qualcomm.com/Technologies/Sensors/sensors-guide/topic/qcs6490/landing_page)支持硬件和软件传感器，例如加速度计、陀螺仪和计步器。它为驱动程序和算法提供统一的事件驱动框架，并为基于硬件和基于软件的传感器提供相同的 API。

## Wi-Fi

Qualcomm Linux 为应用程序开发提供 Wi-Fi 功能、特性和可配置参数。Wi-Fi 通过 `ath11k` 驱动程序和芯片组专用固件启用。

支持的功能包括：

* 2.4 GHz、5 GHz 和 6 GHz Wi-Fi 频段。
* 采用 1K 正交幅度调制（QAM）时物理层（PHY）峰值数据速率达 2.9 Gbps。
* 站点（STA）模式和接入点（AP）模式。

## 蓝牙

蓝牙（Bluetooth®）无线技术子系统包括 BlueZ 协议栈和适用于不同用例的示例测试应用程序。

支持的软件和芯片组提供两种工作模式：

* 基本速率/增强数据速率（BR/EDR）
* 低功耗蓝牙（BLE）

有关更多信息，请参阅[蓝牙指南](https://dragonwingdocs.qualcomm.com/Technologies/Bluetooth/bluetooth-overview)。

## 安全

安全子系统包括 Qualcomm 可信执行环境（TEE），它提供镜像加载、身份验证、缓存管理、加密、日志记录等安全服务，并为 TrustZone（TZ）安全应用程序提供 Qualcomm 熔丝可编程只读存储器（QFPROM）支持。

TZ 是 Qualcomm 平台产品安全的核心。它为大多数产品安全功能提供安全执行环境，并基于 Arm 核心 TZ 技术构建，该技术使用 Arm 核心安全执行模式。

安全组件包括：

* Qualcomm TEE 和可信应用程序。
* 安全启动和 QFPROM。
* 安全存储。
* 安全设备调试。
* 调试安全。

有关更多信息，请参阅[安全指南](https://dragonwingdocs.qualcomm.com/System/Security/overview)。

## 启动

启动子系统支持 `systemd-boot` UEFI 启动管理器。系统复位时，应用处理器中的引导加载程序在安全 ROM 中执行。它初始化时钟、CPU 缓存和内存管理单元（MMU），然后根据启动选项配置检测启动设备。启动选项因 SoC 而异，可能包括 UFS、eMMC 和 SPI 等。

随后，其余的系统和子系统镜像会根据冷启动流程在 ROM、IMEM 和 DDR 中加载并进行身份验证。

有关更多信息，请参阅[启动指南](https://dragonwingdocs.qualcomm.com/System/Boot/platform-information)。

## Hypervisor

基于内核的虚拟机（KVM）是 Qualcomm Linux 平台上基于 Linux 的虚拟化的主要 hypervisor。KVM 使用 Arm 硬件虚拟化扩展在 Linux 内核内部运行的同时提供 CPU 和内存隔离。这种方式使虚拟机（VM）能够获得接近原生的性能。

在受支持的 Qualcomm Linux 平台上，KVM 作为主要虚拟化层并与 Linux 生态系统集成。它通过 Quick Emulator（QEMU）和 libvirt 支持标准虚拟化。

KVM 支持涵盖计算、输入/输出（I/O）和子系统管理的一系列虚拟化能力，包括：

* 多个并发 VM，包括混合的实时（RT）和非实时工作负载。
* 硬件辅助的 CPU 和内存虚拟化。
* 具有单根 I/O 虚拟化（SR-IOV）的高速外设组件互连（PCIe）虚拟化。
* 通过启用 RT 的内核配置进行实时优化，以满足对延迟敏感的工作负载需求。
* 大多数平台上基于外设镜像加载器（PIL）的子系统管理。有关平台级支持情况，请参阅发行说明。
* 基于 SoC 能力和平台集成，使用 QEMU/KVM 架构的标准 VirtIO 设备（例如 VirtIO 控制台、块设备、GPU 和网络设备）。

要启用 KVM 和虚拟化功能，请参阅：

* 发行版配置
* [启用虚拟化](https://dragonwingdocs.qualcomm.com/System/Kernel/enable-virtualization)

## 内核

Qualcomm Linux 为 Qualcomm 平台提供长期支持（LTS）Linux 内核和平台驱动程序，包括对多媒体、连接、安全和外设的支持。

该内核紧密跟踪上游 Linux 内核，以保持兼容性并获得最新功能和安全更新。Qualcomm 以功能性、稳定性和硬件特定优化为重点来构建、测试和维护该内核。这种方式为 IoT 和计算用例提供了稳健的支持，并提供了针对 Qualcomm 硬件优化的可靠、高效的内核。

## 实时子系统（RTSS）

实时子系统（RTSS）采用*片上系统中的片上系统*架构，通过独立的集成设计提供实时性能，支持计算、网络和安全用例。RTSS 支持启动、复位、转储收集、低功耗运行以及面向 IoT 产品的实时应用程序开发。

RTSS 作为独立子系统运行，并支持免费实时操作系统（FreeRTOS）。对于拥有访问权限的客户，FreeRTOS 已在 IQ-8275 和 IQ-9075 平台上启用。

有关更多信息，请参阅[实时子系统文档](https://docs.qualcomm.com/doc/80-80022-42/topic/rtss-guide.html)。

## OTA 更新

Qualcomm Linux 1.0 使用 OSTree 作为 Linux 升级的默认机制。OSTree 提供了一个版本受控、不可变的文件系统，支持原子升级和回滚。

固件更新通过 UEFI capsule 更新交付，为更新底层二进制文件提供了一种安全、标准化的方法。

Qualcomm Linux 2.0 支持与 Qualcomm Linux 1.0 相同的更新机制：使用 OSTree 进行 Linux 更新，使用 UEFI capsule 更新进行固件更新。这种连续性实现了平滑的迁移路径，并为未来的 Qualcomm Linux 版本提供可扩展的空中下载（OTA）更新管理。

<Tip>
  从 Qualcomm Linux 1.0 升级到 2.0 时，请在 OTA 升级中同时包含 OSTree 仓库和固件 capsule。
</Tip>

有关更多信息，请参阅 OTA 更新指南。

## Qualcomm Intelligent Multimedia SDK（IM SDK）

Qualcomm® Intelligent Multimedia SDK（QIM SDK）是基于 GStreamer 构建的全面的硬件加速多媒体和 AI 框架。它面向在各类 IoT 细分领域（包括智能摄像头、机器人、家用电器、无人机和 AI 推理设备）构建智能视觉、音频和 AI 应用程序的开发者、解决方案集成商和 OEM。

借助 QIM SDK，您可以在 Qualcomm 平台上快速组合和部署单流或多流 AI 与多媒体流水线。流水线可以访问 SoC 的全部处理能力——包括神经处理加速器、视频编解码、摄像头 ISP、GPU、显示和音频 DSP——而无需深入了解底层硬件或平台特定的库。

SDK 的插件式架构完全屏蔽了硬件复杂性。应用程序可以在不同的 Qualcomm 芯片组层级和代际间无缝运行，从而加快智能零售、工业自动化、安防监控和互联设备等行业的产品上市时间。

有关更多信息，请参阅 [IMSDK 指南](https://imsdkdocs.qualcomm.com/)。

## 示例应用程序

Qualcomm Linux 为多媒体和 AI 用例提供示例应用程序，涵盖零售、Qualcomm® Edge AI Box 解决方案和 IP 摄像头等场景。

主要提供两组示例应用程序：

* **多媒体示例应用程序**演示摄像头、视频和音频功能。
* **AI 示例应用程序**展示 AI 和机器学习（ML）能力。

有关更多信息，请参阅[示例应用程序指南](https://dragonwingdocs.qualcomm.com/SDKs/IMSDK/sample-application/ai-sample-applications)。
