高通 Linux软件系统架构概述

介绍

高通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的应用程序来验证和启用显示用例。

更多细节参考:

用户空间组件

GBM

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)组件可用于一般的计算应用程序并用于特定的音频用例。”

音频 PAL

脉冲音频

音频设备树

音频内核

视频

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 的相机应用程序,例如yavtalibcamera

相机设备树

相机内核驱动程序

图形

Custom版本
图形子系统支持 GStreamer 多媒体框架,并使用 GStreamer Wayland 插件。GPU 使用基于 OpenGL ES 的 ib2C 库来提供硬件加速的图像处理、转换和颜色转换作。其他功能包括:

  • OpenGL ES – API 用于在嵌入式系统上开发 2D 和 3D 图形。OpenGL API 的子集。

  • OpenCL – 异构系统中跨平台并行编程的开放标准。

  • EGL – Khronos 渲染 API(如 OpenGL ES)与底层原生平台窗口系统之间的接口。

  • Vulkan – 用于 3D 图形和计算的低级 API 和开放标准。高通Linux 支持 RGB、UBWC、YUV 和 Bayer 图形格式。

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 内核以及相关的内核平台、多媒体、连接、安全性和外设驱动程序。大多数驱动程序是纯上游驱动程序或正在进行上游的驱动程序,还有一些下游驱动程序可以启用必要的硬件功能。

自定义内核

基础内核

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值