> ## 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® 是由 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）内核，附带少量正在推送到上游的补丁。
* 与上游对齐的用户空间软件栈。
* 用于自定义功能的可安装软件包（叠加层）。

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

**Qualcomm Linux 叠加层**

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

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

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

叠加层可能包括：

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

有关叠加层配置和叠加层软件包的更多信息，请参阅[叠加层文档](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)。

## 图形

图形子系统采用上游优先的架构，并具备按需分层专有能力的灵活性。它通过模块化叠加层模型同时支持上游 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 智能多媒体（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）模式。

## 蓝牙

蓝牙® 无线技术子系统包括 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 生态系统集成。它通过快速模拟器（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 智能多媒体 SDK（IM SDK）

Qualcomm® 智能多媒体 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)。
