介绍
高通Linux 发行版提供Custom版本和Base版本。这两个版本都提供了支持各种应用程序和产品开发的功能和灵活性。
Custom版本提供了一组更丰富的功能,并包括 高通的增值功能,如 SDK 和电源性能改进。它适用于在其产品中依赖 高通的增值和专有/下游软件的开发人员。
Base 版本适用于希望获得纯上游和开源软件堆栈的开发人员,而不需要 高通专有软件和功能/性能附加值。
以下部分总结了每个版本的主要组件的主要功能,并按照相应软件系统图中所示的顺序排列。
Custom版本
高通Linux 的自定义版本目前在 QCS5430、QCS6490、QCS8275和QCS9075 SoC 平台上受支持。
Base版本
高通Linux的基础版本是使用整个软件堆栈的上游组件构建的。它包括一个UEFI引导加载程序和最新的LinuxLTS内核(包括一些正在上游处理的补丁)。完全上游意味着这个版本不支持仍然是下游/专有的高通增值。
[QCS8275]和[QCS9075]SoC平台目前支持高通LinuxBase版本,SoC应用处理器子系统的高通Linux软件环境汇总如下图所示。
Note
The Base version is not fully enabled on this release. The descriptions in the following sections are for informational purposes only.
显示
Custom版本
显示子系统支持基于GStreamer框架和Wayland协议的 QIM SDK。这些开源框架提供了库、API 和插件来抽象化低级接口。该架构具有以下特点:
waylandsink 插件与 Weston 子系统通信以呈现显示。
Weston 服务器是一个系统级合成器,它负责处理合成和渲染需求,并在系统中作为单独的进程运行。
libdrm 提供了用于访问直接渲染管理器 (DRM) IOCTL 的 API。
Snapdragon 显示管理器 (SDM) 软件框架用于管理 高通 Adreno DPU™ 硬件资源,并为每个连接的显示设备选择最佳合成策略。还支持用于调用 SDM 软件接口的 SDM 后端。
Base版本
显示子系统支持基于上游Wayland/Weston的框架。直接渲染管理器(DRM)后端是支持Linux内核DRM、内核模式设置(KMS)和evdev输入设备的系统的本机Weston后端。开发人员可以使用基于上游wayland/Weston的应用程序来验证和启用显示用例。
更多细节参考:
用户空间组件
内核驱动程序
音频
Custom版本
音频子系统允许用户空间应用程序捕获音频并请求播放。它符合 ALSA 标准并支持 GStreamer 多媒体框架。它还提供了一个不使用 GST 的替代实现。
它使用 PulseAudio 作为声音服务器。GST 应用程序可以打开 pulsesink 和 pulsesrc 元素来分别呈现或捕获音频。此外,捕获的音频可以渲染到 ROS2 节点以进行其他处理。
软件音频架构是 高通的 AudioReach™ 信号处理框架。AudioReach 包括信号处理框架 (SPF)、音频处理管理器 (APM) 和用于音频系统设计和校准的高通音频校准工具 (QACT)。它是一个完整的软件组件、开发工具包和工具包,用于跨多个平台设计、实施和验证端到端音频使用案例。
音频 DSP (aDSP) 是负责捕获和播放的 DSP 组件。有一个计算 DSP (CDSP) 组件可用于一般计算应用程序,并可用于特定的音频使用案例,例如基于框架支持的关键字检测。
Base版本
音频子系统允许用户空间应用程序捕获音频并请求播放。它基于 PulseAudio,并支持 GStreamer 多媒体框架。
可以开发GST应用程序来分别渲染或捕获音频。此外,可以渲染捕获的音频以进行额外处理。
音频DSP(aDSP)是负责捕获和回放的DSP组件。有一个可用的计算DSP(CDSP)组件可用于一般的计算应用程序并用于特定的音频用例。”
视频
Custom版本
视频子系统支持 GStreamer 多媒体框架和各种视频编解码器,以充分利用 VPU 进行高质量、超高清视频编码和解码。VPU 的硬件功能通过 QIM SDK 和 V4L2 API 最有效地公开。基于 高通的 SDK 中的视频编码和解码完全卸载到视频引擎,使 CPU/GPU 可以自由地进行其他作。
Base版本
BaseLinux风格通过上游v4l2接口支持视频功能。开发人员可以使用典型的基于v4l2的接口在Base风格上播放视频。有关接口和序列流的更多详细信息,请参阅 https://www.kernel.org/doc/html/v4.9/media/uapi/v4l/user-func.html and https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/dev-mem2mem.html.
有关示例V4l2应用程序,请参阅 https://github.com/quic/v4l-video-test-app .
照相机
Custom版本
相机子系统支持 GStreamer 多媒体框架,并使用 qmmfsrc 插件来处理相机帧的捕获等作。qmmfsrc 插件提供了各种 API,允许开发人员根据需要控制摄像机。qmmfsrc 插件通过 qmmf-server(相机守护程序)将相机控制权传输到相机用户模式驱动程序 (UMD)。摄像头 UMD 负责控制整个摄像头子系统,包括根据使用案例配置摄像头管道。它还提供了一个接口,用于添加摄像头驱动程序或自定义摄像头管道。相机内核模式驱动程序 (KMD) 是相机子系统的 Linux 内核驱动程序的集合,负责通过从相机 UMD 进行控制来对硬件进行编程。
Base版本
基础 Linux 构建支持用于原始帧捕获的 V4L2 接口相机 ISP 驱动程序。它支持使用 V4L2 子设备接口的相机传感器,允许开发人员实现或使用基于 V4L2 的相机应用程序,例如yavta和libcamera。
图形
Custom版本
图形子系统支持 GStreamer 多媒体框架,并使用 GStreamer Wayland 插件。GPU 使用基于 OpenGL ES 的 ib2C 库来提供硬件加速的图像处理、转换和颜色转换作。其他功能包括:
Base版本
BaseLinux的图形功能基于上游图形堆栈,仅启用功能性GLES支持。
人工智能/机器学习
Custom版本
高通AI/ML 子系统支持 SDK、API、开发工具以及第三方框架和模型,包括 GStreamer 和 TFLite,以提供对 QTI 特定的硬件和软件功能的访问,以实现 AI 和机器学习。高通 神经处理引擎提供统一的 API 和模块化/可扩展的每个加速器库,这些库构成了全栈 AI 解决方案的可重用基础,这些解决方案可与 高通自己的框架和开源框架一起使用。借助框架中的机器学习插件,开发人员可以使用 TFLite 和 高通神经处理引擎进行推理。对于每个引擎,都会启用委托以加速模型推理性能。
该子系统支持多个视频分析使用案例,包括:
-
使用实时摄像头进行单流推理
-
离线视频上的单流推理
-
通过 RTSP 流式传输的单流实时摄像头 TensorFlow Lite 推理
-
使用 DirectNN 推理的单流实时摄像机预览
-
使用实时摄像头进行双流推理
Wi-Fi 无线局域网
高通Linux 提供 Wi-Fi 功能、特性和可配置参数,用于开发应用程序。在 高通Linux 中,Wi-Fi 功能通过 ath11k 驱动程序以及芯片组特定固件启用。
支持以下功能:
2.4 GHz、5 GHz 和 6 GHz Wi-Fi 频段
峰值 PHY 数据速率为 2.9 Gbps,1 K QAM
工作站 (STA) 模式和接入点 (AP) 模式
蓝牙
蓝牙®无线技术是一种短距离通信系统,可促进设备之间的无线数据交换。高通Linux 蓝牙解决方案包括针对不同用户案例的 BlueZ 堆栈和示例测试应用程序。
支持的软件和芯片组提供以下两种作模式:
基本速率/增强数据速率 (BR/EDR)
低功耗蓝牙 (BLE)
高通Connectivity 芯片组 (WCN) 符合蓝牙核心规范 v5.2。
安全
安全子系统中的 高通可信执行环境 (TEE) 为 TrustZone (TZ) 安全应用程序提供安全服务,例如图像加载、身份验证、缓存管理、加密、日志记录和高通熔断可编程只读存储器 (QFPROM)。
TZ 是 高通平台上产品安全的核心,它为大多数产品安全功能提供了安全的执行环境。TZ 基于 Arm 核心 TZ 技术构建,并依赖于 Arm 核心的安全执行模式。
产品安全功能集包括以下安全组件:
TZ 和安全应用程序
高通 TEE 5.3
安全启动和 QFPROM
HLOS 安全性
安全存储
安全设备调试
安全启动
启动
高通Linux 的启动子系统支持 systemd-boot UEFI 启动管理器。当系统重置时,应用处理器中的 bootloader 在安全 ROM 中执行并初始化 clocks、CPU caches 和 memory management unit (MMU),然后根据 boot option 配置检测 boot device。引导选项包括 UFS。然后,其余系统和子系统映像在 ROM、IMEM 和 DDR 中加载和验证,如冷引导流程中所述。
其他启动功能包括:
安全启动
灵活的安全密钥架构 (FSKA)
配置数据表 (CDT)
紧急下载 (EDL) 模式
热检测可阻止设备在热情况下启动/重新启动
虚拟机管理程序
高通Linux 使用 Gunyah,这是一种 Type 1 虚拟机管理程序,可提供强大的安全性、性能和模块化。独立于任何高级作系统内核,Gunyah 在更高的 CPU 权限级别下运行,并且其核心功能不依赖于任何较低权限的作系统内核/代码。这提高了它的安全性,并且可以支持比 Type 2 虚拟机管理程序小得多的可信计算基础。
Gunyah 旨在支持多种 CPU 架构,因此其核心设计确保了非架构特定领域的架构独立性和可移植性。高通Linux 包括设置工具和脚本、Gunyah 核心、资源管理器和资源管理器的 C 运行时环境。
内核空间
高通Linux 是一种 Linux Embedded 产品,包括长期支持 (LTS) Linux 内核以及相关的内核平台、多媒体、连接、安全性和外设驱动程序。大多数驱动程序是纯上游驱动程序或正在进行上游的驱动程序,还有一些下游驱动程序可以启用必要的硬件功能。