Open Source Multimedia
Viele Embedded-Linux-Systeme im Bereich „Bedienen & Beobachten“ haben eine moderne grafische Oberfläche, z.B. mit Touchscreen (kapazitiv, resistiv) und Gestenbedienung, oder realisieren Video-Features. Die kernelseitigen Frameworks werden dabei durch Frameworks im Userspace ergänzt:
- DRM: Kernel-Support für synchronisierte Grafikkarten mit Planes
- V4L2: Kernel-Support für Streaming Media, Kameras, Codecs
- GUI: Qt5/QML, Web-Browser mit OpenGL-Beschleunigung
- Media-Frameworks: GStreamer, PulseAudio
Auf der Anwendungsseite nutzen unsere Kunden dabei Frameworks wie Qt oder auch Web-Browser, die an die Gegebenheiten von Embedded Systemen angepasst sind (keine Fenster-Dekorationen, optimale Ausnutzung der bestmöglichen Hardwarebeschleunigung) und die aufgrund des Nachvollzugs meist mit Yocto oder PTXdist ins System integriert sind.
Streaming-Media-Entwicklung
Das Pengutronix-Grafikteam entwickelt im Kundenauftrag Kerneltreiber für Streaming-Media-Komponenten, erweitert die bestehenden Kernel-Frameworks um neue Funktionalität und schreibt umfangreiche und komplexe Media Pipelines in GStreamer. Dabei steht die Performance-Optimierung oft im Mittelpunkt. Ziel der Entwicklung ist für gewöhnlich ein „Erweiterter Prototyp“, auf dessen Basis der Kunde seine eigene Applikation schreiben kann.
3D-Grafiktreiber
Die Unterstützung von komplexen 3D-Grafik-Kernen ist eine weitere Aufgabe für unser Grafikteam. Dabei entstehen DRM-Treiber im Kernel, Gallium-Treiber in MESA, Anpassungen an Wayland/Weston sowie weitere Komponenten. Unser Schwerpunkt liegt auf der vollständigen Unterstützung der jeweiligen Hardware in den Upstream-Projekten.
Ein Beispiel ist Etnaviv, der Open Source Treiber für die 3D-Grafik auf z.B. i.MX6, i.MX8 und STM32MP1 SoCs, für den wir die Maintenance im Kernel übernommen haben. Offene Software macht es hier möglich, auch hartnäckige Bugs und Performance-Engpässe nachhaltig zu beheben.