Das Unternehmen Qualcomm hat die Linux-Distribution Qualcomm Linux 2.0 vorgestellt, die einen Software-Stack bietet, der für die IoT-Plattformen Qualcomm Dragonwing optimiert ist. Das Projekt implementiert eine einheitliche Distribution, die eine schnelle Entwicklung von Lösungen für verschiedene Qualcomm SoCs wie QCS5430, QCS6490, IQ-8275, IQ-9075 und IQ-615 ermöglicht. Qualcomm Linux basiert auf den Tools und Metapaketen der Projekte Yocto und OpenEmbedded, ergänzt durch Patches, Treiber, Firmware, Pakete und Konfigurationsdateien zur Unterstützung spezifischer Hardwarekomponenten, die in Qualcomm-Chips eingesetzt werden.
Die Distribution entwickelt sich durch ein offenes Entwicklungsmodell und überträgt vorbereitete Änderungen an Upstream-Projekte. Proprietäre Komponenten von Qualcomm werden in die Distribution in Form eindeutig ausgewiesener modularer Overlays integriert. Der angebotene Software-Stack unterstützt alle Prozessoren, Subsysteme und Komponenten der Qualcomm-Plattform, einschließlich CPU, GPU und verschiedener Hardwarebeschleuniger für KI, Datenverarbeitung und Multimedia-Operationen (VPU, DPU, NPU, DSP). Neben der Benutzerumgebung auf Basis von Yocto umfasst das Paket einen Bootloader mit der Möglichkeit einer verifizierten Boot-Installation, UEFI-Firmware und von Qualcomm unterstützte Pakete mit einem Linux-Kernel, die zusätzliche Treiber und Patches enthalten.
Die Plattform ist als vollständig bereit für die Erstellung von Arbeitsumgebungen auf der Grundlage von Qualcomm-Hardware gekennzeichnet. Sie bietet Funktionen wie Unterstützung für Virtualisierung, mandatorisches Zugriffsmanagement mit SELinux, Tests aller Komponenten auf Referenzhardware, einen langen Paket-Support-Zyklus für alle unterstützten Plattformen sowie die Möglichkeit zur Integration eigener BSPs (Board Support Package) und OEM-Schichten. Für die Aktualisierung können entweder das Überschreiben des System-Images oder die automatische Übermittlung von Updates im OTA-Modus verwendet werden. 
Die Veröffentlichung von Qualcomm Linux 2.0 zeichnet sich durch den Wechsel zur Nutzung der Yocto-Plattform 6.0 und den Einsatz des Linux-Kernels 6.18 aus (zuvor wurden Yocto 5.0 und Kernel 6.6 verwendet). Der Hauptbestandteil integriert Funktionen zur Ausführung von Anwendungen in Echtzeit (der Kernel wurde mit PREEMPT_RT-Unterstützung kompiliert). Anstelle von zwei separat unterstützten Varianten des Distributionspakets „Base“ und „Custom“ wird ein einheitlicher Stack mit einem gemeinsamen Kernel und Systemumgebung (rootfs) angeboten.
Erhöhte Transparenz der Entwicklungsprozesse: Veröffentlichungen finden jetzt nicht mehr hinter verschlossenen Türen, sondern öffentlich auf GitHub statt, unter Verwendung eines offenen Systems für kontinuierliche Integration und mit einem vorhersehbaren Zeitplan für die Veröffentlichung von Updates. Die Organisation der modularen Overlays wurde überarbeitet, sodass diese nun auf einer einzigen offenen Codebasis erstellt werden, anstatt zwischen offenen und proprietären Builds zu unterscheiden. Neben den zuvor unterstützten SoC QCS5430, QCS6490, IQ9075, IQ8275 und IQ615 wurde die Unterstützung für die Plattform IQ-X für industrielle Computer hinzugefügt.
Meta-Pakete mit grundlegenden Funktionen werden jetzt in öffentlich zugänglichen Repositories weiterentwickelt und sind offen für Änderungen von Drittentwicklern, für das Erstellen von Forks oder für die Nutzung, ohne auf Releases warten zu müssen. Zu diesen Meta-Paketen gehören: meta-qcom (Schicht zur Unterstützung von Hardware), meta-qcom-distro (Basis für Distributionen, Skripte zum Erstellen von System-Images und Konfigurationen), meta-qcom-3rdparty (Komponenten zur Unterstützung von Drittplattformen) und meta-qcom-releases (reproduzierbare Release-Bauten), meta-selinux (Pflichtmanagement des Zugangs über SELinux), meta-updater (OTA-Updates basierend auf OSTree), meta-security (zusätzliche Mechanismen zur Verbesserung der Sicherheit und Audit), meta-virtualization (Docker, Kubernetes) KVM).
Neben Meta-Paketen werden Overlays angeboten, die separat gelieferte versionierte Sätze mit Kernel-Modulen und Bibliotheken zur Unterstützung erweiterter Funktionen sind. Die Installation eines Overlays führt dazu, dass die entsprechenden optimierten Kernel-Module und Bibliotheken über das Standard-Basisumfeld installiert werden, ohne dieses zu verändern. Zu den verfügbaren Overlays gehören:
- Arbeiten mit Audio (AudioReach und Hardware-beschleunigte Audioverarbeitung);
- Kameraverwaltung (camX ISP);
- Grafikverarbeitung (Beschleunigung von OpenGL ES, OpenCL und Vulkan auf Adreno-GPUs);
- Videoverarbeitung (Nutzung der VPU Iris zur Beschleunigung der Video-Kodierung und -Dekodierung);
- Unterstützung von Sensoren (Integration mit dem Qualcomm Sensor Hub);
- Lösungen im Bereich Computer Vision (Beschleunigung von FastCV auf DSP/Adreno).
Quelle: opennet.ru
