# Software Overview Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) Qualcomm^®^ Linux is a single Linux distribution that supports multiple SoCs and includes a UEFI bootloader, the latest Linux LTS kernel, Yocto Project build system, and selected drivers for a consistent developer interface across SoC platforms. Upstream open-source software is used extensively, and patched upstream and downstream drivers are used where necessary for compatibility and functionality. A summary of the Qualcomm Linux software environment for the SoC application processor subsystem is shown in the following figure. ProprietaryLegendOpen SourceHypervisorBootloaderGraphicsBTWi-FiCameraAI/MLAudioVideoDisplayHardwareKernelSpaceLinux Kernelsystemd-bootWaylandWestonUserSpaceNeuralProcessingWPA-SSDKslibDRMTFliteGunyahHypervisorGstreamer AI, CV and Multimedia Plugins (Intelligent Multimedia SDK)WPA-CLIHostapdib2cOpenGLES,Vulkan,OpenCLPulseAudiotinyalsaAudioReachSDMUEFIWiFi Diagand utilitiesFluorideModemlibqmiModemManagertftpserverCameraUMDRoboticsProductSDKRoboticsVisionROS2NavigationQIMProductSDKIntelligentMultimediaTFliteHexagonSecurityGP + TEEcommUser dataprotectionCrypto +key mgmt.Securewirelessedge serviceOtherDocker,ContainersOpenCVFastRPCROS2OTAQSHQRTRFirmwareKernel Platform, Multimedia, Connectivity, Security, and Peripheral driversAI EnginedirectNeuralProcessingAI EnginedirectRoboticsFunctionSDKQualcomm SoCV4L2 Qualcomm Linux distributions currently support the [QCS5430](https://www.qualcomm.com/products/internet-of-things/industrial/industrial-automation/qcs5430) and [QCS6490](https://www.qualcomm.com/products/internet-of-things/industrial/building-enterprise/qcs6490) SoC platforms. Reference boards and development kits are also available to help speed up the development process. The following sections summarize key features of the main components in the Qualcomm Linux software environment and are arranged in the same order as shown in the software system diagram above. ## Display Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [display subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-18)supports the QIM SDK, which is based on the [GStreamer](https://gstreamer.freedesktop.org/) framework and the [Wayland](https://wayland.freedesktop.org/) protocol. These open-source frameworks provide libraries, APIs, and plug-ins to abstract low-level interfaces. The architecture has the following features: - The `waylandsink` plug-in talks to the Weston subsystem to render the display. - The Weston server is a system-level compositor, which takes care of composition and rendering needs and runs as a separate process in the system. - `libdrm` provides APIs for accessing DRM IOCTL. - The Snapdragon display manager (SDM) software framework is used to manage Qualcomm^®^ Adreno DPU™ hardware resources and select the best composition strategy for each connected display. - The DRM backend is the native Weston backend for systems that support the Linux kernel DRM, kernel mode setting (KMS), and evdev input devices. The SDM backend, which is used to invoke the SDM software interfaces, is also supported. ## Audio Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [audio subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-16) allows a user-space application to capture audio and request playback. It is ALSA-compliant and supports the GStreamer multimedia framework. It also provides an alternate implementation that does not use GST. It uses PulseAudio as the sound server. A GST application can open up a `pulsesink` and a `pulsesrc` element to render or capture the audio respectively. Further, the captured audio can be rendered out to a ROS2 node for additional processing. The software audio architecture is Qualcomm's AudioReach™ Signal Processing Framework. AudioReach comprises the signal processing framework (SPF), the audio processing manager (APM), and the Qualcomm audio calibration tool (QACT) for audio system design and calibration. It is a complete package of software components, development kits, and tools to design, implement, and validate end-to-end audio use cases across multiple platforms. The audio DSP (aDSP) is the DSP component responsible for capture and playback. There is a compute DSP (CDSP) component available that can be used for compute applications in general and leveraged for specific audio use cases like keyword detection based on the framework support. ## Video Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [video subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-20) supports the GStreamer multimedia framework and various video codecs to take full advantage of the VPU for high-quality, ultra HD video encode and decode. The hardware capabilities of the VPU are most effectively exposed through the QIM SDK and V4L2 APIs. The video encoding and decoding in Qualcomm-based SDKs is completely offloaded to video engines enabling the CPU/GPU to be free for other operations. ## Camera Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [camera subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-17) supports the GStreamer multimedia framework and uses the `qmmfsrc` plug-in to, among other things, handle the capture of the camera frames. The qmmfsrc plug-in provides various APIs that allow developers to control cameras as needed. The `qmmfsrc` plug-in transfers camera control to the camera user mode driver (UMD) through `qmmf-server` (camera daemon). The camera UMD is responsible for controlling the overall camera subsystem, including configuring the camera pipeline according to use cases. It also provides an interface to add camera drivers or customize the camera pipeline. The camera kernel mode driver (KMD) is a collection of Linux kernel drivers for the camera subsystem and is responsible for programming the hardware by taking control from the camera UMD. ## Graphics Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [graphics subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-19) supports the GStreamer multimedia framework and uses the GStreamer Wayland plug-in. The GPU uses an OpenGL ES based ib2C library to provide hardware-accelerated image manipulation, transformation, and color conversion operations. Other features include: - [OpenGL ES](https://www.khronos.org/opengles/) – API for developing 2D and 3D graphics on embedded systems. A subset of the OpenGL API. - [OpenCL](https://www.khronos.org/opencl/) – Open standard for cross-platform parallel programming in heterogeneous systems. - [EGL](https://www.khronos.org/egl) –Interface between Khronos rendering APIs like OpenGL ES and the underlying native platform window system. - [Vulkan](https://www.vulkan.org/) – Low-level API and open standard for 3D graphics and computing. Qualcomm Linux supports RGB, UBWC, YUV, and Bayer graphic formats. ## AI/ML Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [Qualcomm AI/ML subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-15) supports SDKs, APIs, development tools, and third-party frameworks and models, including GStreamer and TFLite, to provide access to QTI-specific hardware and software capabilities for AI and machine learning. The Qualcomm Neural Processing Engine provides unified APIs and modular/extensible per-accelerator libraries that form a reusable basis for full-stack AI solutions that are usable with Qualcomm’s own frameworks as well as open-source frameworks. With the machine learning plug-ins in the framework, developers can use TFLite and the Qualcomm Neural Processing Engine for inferencing. For each of the engines, delegates are enabled to accelerate model inference performance. The subsystem supports multiple video analytics use cases including: - Single stream inference with live camera - Single stream inference on offline video - Single stream live camera TensorFlow Lite inference streamed over RTSP – SSD - Single stream live camera preview with DirectNN inferencing - Two stream inference with live camera – SSD ## Wi-Fi Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) Qualcomm Linux includes the software and firmware for the highly integrated wireless connectivity (WCN) SoC. The system is compliant with the following eminent Wi-Fi standards and use cases: - 2x2 802.11ax (Wi-Fi STA, Soft AP) - Wi-Fi bands - 2.4 GHz, 5 GHz, 6 GHz - Enhanced Wi-Fi scanning, seamless roaming - Fine-tuned algorithms for best network selection - Wi-Fi Direct - Low-power Wi-Fi (TWT, WMMPS, etc.) - Latency sensitive user scenarios - Best in class Wi-Fi throughput KPIs The [Wi-Fi subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-14) software includes wpa\_supplicant and hostapd for Wi-Fi protected access (WPA2, WPA3) and authentication. It includes the relevant utilities for Wi-Fi certification, factory test mode tools for HAL PHY calibration, and auxiliary modules for effective on-demand log collection and debugging. ## Bluetooth Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [Bluetooth subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-13) includes the Fluoride Bluetooth stack to establish and maintain connections. Qualcomm's family of Bluetooth devices is highly programmable and configurable, with many parameters available for tuning. Additional features include: - BLE enhanced privacy - Basic rate/enhanced data rate (BR/EDR) - Real-time soft combining (RTSC) - Low-power page/inquiry scans ## Security Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The Qualcomm Trusted Execution Environment (TEE) in the [security subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-11) provides security services, such as image loading, authentication, cache management, crypto, logging, and Qualcomm fuse-programmable read-only memory (QFPROM) to TrustZone (TZ) secure applications. TZ is the core of product security on Qualcomm’s platforms, and it facilitates a secure execution environment for most of the product security features. TZ is built on Arm core TZ technology and relies on the secure execution mode of the Arm core. The product security feature set comprises the following security components: - TZ and secure application - Qualcomm TEE 5.3 - Secure boot and QFPROM - HLOS security - Secure storage - Secure device debugging - Secure boot ## Boot Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) The [boot subsystem](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-4) of Qualcomm Linux supports systemd-boot UEFI boot manager. When the system resets, the bootloader in the application processor executes in secure ROM and initializes clocks, CPU caches, and the memory management unit (MMU), and then detects the boot device as per the boot option configuration. Boot options include UFS. The remaining system and subsystem images are then loaded and authenticated in ROM, IMEM, and DDR as described in the cold boot flow. Additional boot features include: - Secure boot - Flexible security key architecture (FSKA) - Configuration data tables (CDT) - Emergency download (EDL) mode - Thermal detection to stop device from booting/rebooting in thermal scenarios ## Hypervisor Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) Qualcomm Linux uses Gunyah, a [type-1 hypervisor](https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-11/hypervisor.html) for strong security, performance, and modularity. Independent of any high-level OS kernel, Gunyah runs in a higher CPU privilege level, and does not depend on any lower-privileged OS kernel/code for its core functionality. This increases its security and can support a much smaller trusted computing base than a Type-2 hypervisor. Gunyah is designed to support multiple CPU architectures, so its core design ensures architecture independence and portability in non-architecture specific areas. Qualcomm Linux includes the setup tools and scripts, Gunyah core, resource manager, and C runtime environment for the resource manager. ## Kernel Space Source: [https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html](https://docs.qualcomm.com/doc/80-70014-115/topic/overview.html) Qualcomm Linux is a Linux Embedded offering and includes the long-term support (LTS) Linux kernel with the associated kernel platform, multimedia, connectivity, security, and peripheral drivers. Most drivers are pure upstream or upstream aligned with Qualcomm patches, with a few downstream drivers to enable the necessary hardware features. Last Published: Aug 06, 2024 [Previous Topic Welcome](https://docs.qualcomm.com/bundle/publicresource/80-70014-115/topics/qualcomm-linux-landing-page.md) [Next Topic SDK Overview](https://docs.qualcomm.com/bundle/publicresource/80-70014-115/topics/sdks.md)