Pengutronix: Rückblick auf 2023 - Teil II

Im zweiten Teil unseres Rückblicks widmen wir uns unter anderem den Arbeiten unseres Grafik- und Multimedia-Teams, das wieder über den gesamten Linux-Stack, vom Kernel über mesa bis hin zu Pipwire, Weston und Webkit eine ganze Reihe an Bugfixes, Erweiterungen und Anpassungen untergebracht hat, um die Anforderungen aus verschiedensten Kunden-Projekten abzudecken.

Neben dem Entwickeln von Patchen ist natürlich auch der Kontakt mit der Community und das 'Dranbleiben' an aktuellsten Themen rund um 'Embedded Linux' für uns als Dienstleister ein Selbstverständnis. Daher waren wir wieder auf zahlreichen Konferenzen und Veranstaltungen präsent, teils nur als Teilnehmer, meist aber auch mit eigenen Vorträgen zu aktuellen Themen, die wir in diesem Teil nochmal als Überblick auflisten.

Grafik & Multimedia

Neben dem GPU Kernel-Treiber etnaviv und der 3D Grafik-Bibliothek mesa, für die wir auch in diesem Jahr diverse Optimierungen und Fehlerkorrekturen eingebracht haben, gab es noch eine Reihe weiterer spannender Projekte im Bereich Video und Audio an denen Pengutronix-Mitarbeiter mitgewirkt haben und die wir im folgenden kurz vorstellen.

PipeWire

PipeWire findet bei uns in verschiedenen Projekten Verwendung, da es ermöglicht, Video-Streams vergleichsweise einfach zwischen Applikationen zu teilen. So kann zum Beispiel eine Applikation ein Kamerabild auf dem Bildschirm anzeigen, während eine andere Applikation dasselbe Bild enkodiert und aufzeichnet.

Für diese Anwendungsfälle haben wir viele kleine Fehlerbehebungen in PipeWire gemacht. Unter anderem wurde von uns der JPEG-Support in der pipewiresink und das Laden der videotestsrc repariert.

Damit tragen wir dazu bei, dass PipeWire neben dem Routing von Audio-Streams auch für Video-Streams geeignet ist.

GStreamer

Auf der GStreamer Conference 2023 wurde das von uns entwickelte uvcsink Element vorgestellt. Das Element erlaubt es, ein UVC Gadget (also im Prinzip die Kamera-Seite einer USB Kamera) mit einer GStreamer-Pipeline zu betreiben. Man muss nur die entsprechenden Formate konfigurieren und eine Pipeline starten, die die Videodaten von einer beliebigen Quelle an eine uvcsink schickt. Schon kann man auf einem anderen Rechner den Video-Stream wie bei einer ganz normalen USB-Kamera empfangen.

Daneben haben wir natürlich auch bei GStreamer viele kleine Fehler behoben, die bei den speziellen Anwendungsfällen unserer Kunden auftreten und an die vorher niemand gedacht hat.

WebKit

In Embedded-Linux-Systemen werden immer häufiger Browser zur UI-Darstellung benutzt. Perfekt dafür geeignet ist WPE (https://wpewebkit.org/) - ein WebKit-Port mit Fokus auf Embedded.

Die offensichtliche Eingabemethode ist dabei ein Touch-Display. Beim Verarbeiten von Touch-Events haben wir einige Verbesserungen Upstream gebracht:

Die Pointer-Event-API erlaubt dabei größtmögliche Flexibilität, z.B. beim Interpretieren von Gesten. Hier fehlte bisher Unterstützung von Touch-Events. Diese API konnten wir als neues Feature Upstream bringen.

Alle Patche sind im aktuellen Stable-Release 2.42 enthalten. Tipp: Folge #006 unseres Podcasts beschäftigt sich ebenfalls mit dem Thema "Embedded Browser".

Weston

Im November wurde Weston 13 released, der viele neue Features enthält, die von uns entwickelt wurden. Durch Multi-Backend Support und GL-Renderer-Support für VNC und PipeWire, sind Anwendungsfälle, bei denen die Bildschirmausgabe gleichzeitig auf dem Netzwerk verfügbar sein soll, deutlich effizienter und einfacher zu konfigurieren.

Eine detailliertere Übersicht über die neuen Features von Weston 13 gibt es im Blogpost Was ist neu in Weston 13?.

Vorträge und Veranstaltungen

Bei Pengutronix haben wir in diesem Jahr auf die Veröffentlichung von Vortragsaufzeichnungen über unseren YouTube-Kanal verzichtet und präsentierten stattdessen auf zahlreichen Veranstaltungen vor Ort. Danke der professionellen Arbeit vieler Community-Events, gibt es einen Großteil der Vorträge auf verschiedensten Plattformen zum Nachgucken für kalte Wintertage.

Im Februar waren wir auf der FOSDEM in Brüssel,

und auf dem OpenEmbedded Workshop in Brüssel:

Im März auf den CLT in Chemnitz:

Direkt im Anschluss waren wir, zusammen mit unserer Schwester-Firma Linux Automation GmbH, mit einem Stand auf der Embedded World in Nürnberg vertreten und haben dort unsere Demos zu Open-Source-FPGA-Tooling, Open-Source-Grafik auf dem Rockchip RK3568, 3D-Beschleunigung mit WPE WebKit, OTA-Field-Updates, Hardware-Test-Automatisierung und T1L Ethernet präsentiert und viele interessante Gespräche geführt.

Im Juni auf der EOSS in Prag, Tschechien:

Im Juli auf dem Bosch-OSS-Day in Stuttgart:

  • "Community Collaboration Patterns: Addressing Risk and Complexity" von Jan Lübbe
  • "From Vulnerable to Vigilant: A 10+ Year Roadmap for Embedded Software Maintenance" von Jan Lübbe
  • "Exploring RAUC: A Flexible Building Block for Embedded Linux Updates" von Rouven Czerwinski

Im September auf der All Systems Go in Berlin,

auf der gStreamer Conference in A Coruña, Spanien,

  • "Building your own USB camera with GStreamer" von Michael Grzeschik

auf der TSNA in Ludwigsburg,

  • "… If You Try Sometime You’ll Find You Get What You Need - Streaming Media Over TSN Finally Made Easy by Going Mainline?" von Johannes Zink

und auf der Embedded Recipes in Paris, Frankreich.

Im Oktober auf der XDC in A Coruña, Spanien:

Im Dezember auf dem ESE-Kongress in Sindelfingen:

  • "Build-Systeme für die effiziente Embedded-Linux-Entwicklung" von Bastian Krause

Darüber hinaus haben wir die Euro Python, die Kernel Recipes und die FrOSCon genutzt, um uns mit den Entwickler*innen aus der Community zu treffen und auszutauschen.