Pengutronix' aktuelle Open-Source Bestrebungen -
Linux 7.2 Edition

Linux 7.2 ist frisch veröffentlicht und bringt eine Menge Verbesserungen mit, die wir hier bei Pengutronix entwickelt haben. Im Folgenden zeigen wir auf, was wir zu diesem Release und weiteren Open-Source-Projekten seit dem letzten Blogpost anlässlich Linux 7.1 beigetragen haben.

Kernel

Zum 7.2er Release haben die Kollegen bei Pengutronix 43 Patches beigetragen. Zudem hat Marc Kleine-Budde in seiner Rolle als CAN-Subsystem-Maintainer drei Merge-Commits durchgeführt.

Unser größter Beitrag zu diesem Release war Sven Püschels 28-teilige Patch-Serie, welche Unterstützung für die Grafikeinheit RGA3 einführt.

Der RGA3 ist die Einheit zur 2D-Grafikbeschleunigung auf dem aktuellen Flaggschiff von Rockchips ARM-SoCs: dem RK3588. Er beschleunigt Operationen wie Bildskalierung, Rotation, Blitting, Weichzeichnen und Schärfen, 2D-Zeichenoperationen und mehr. Sven hat die Unterstützung für den RGA3 zum rockchip/rga-Treiber (VIDEO_ROCKCHIP_RGA) hinzugefügt. Der Treiber unterstützte bereits Vorgänger des RGA3 wie den RGA2-Enhanced, der unter anderem im RK3566, im RK3568 und sogar neben dem RGA3 auch im RK3588 zum Einsatz kommt. Den bestehenden Treiber an die architektonischen Änderungen im RGA3 anzupassen war somit im Fokus von Svens Arbeiten. Dazu gehört zum Beispiel die Anpassung an das 16-Byte-Alignment von Pixel-Zeilen, andere Pixel-Formate und der Bedarf an diversem RGA3-spezifischen Treiber-Code.

Weitere Beiträge im Media-Framework kamen von Michael Tretter. Seine dreiteilige Patch-Serie erlaubt die Verwendung mehrerer Kameras mit dem i.MX camera serial interface (imx-csi).

Ein einzelner Patch wurde aus Oleksij Rempels laufenden Arbeiten an Linux-Support für die NXP MC33978/MC34978 switch status detection ICs aufgenommen. Die Treiber selbst werden wir sicher in einer zukünftigen Ausgabe von PROSE diskutieren können. Der einzelne Patch, der zum 7.2er Release in die Pincontrol-Infrastruktur angewendet wurde hilft dabei, die von den ICs überwachten Switch-Kontakte als GPIOs zur Verfügung zu stellen. Während GPIOs auf einem SoC häufig alternative Funktionen eines Pins sind, die sich zwischen mehreren Funktionen ummuxen lassen, fungieren die Eingangspins dieses Switch-Status-Detection-Chips konzeptionell ausschließlich als GPIO-Eingänge. Oleksijs Patch lockert daher interne Anforderungen in der Pincontrol-Infrastruktur, sodass Callbacks, die nur für Pinmux-Gruppen relevant sind, in solchen Fällen entfallen können.

Steffen Trumtrar hat Unterstützung für den LED-Treiber-Chip Texas Instruments LP5860 implementiert. Dieser Chip ermöglicht die Ansteuerung einer Matrix von bis zu 196 LED-Punkten über SPI. Dimmen und mehrere Farbkanäle werden unterstützt und über den Device Tree konfiguriert.

Erneut haben wir neue Display-Panel beigesteuert: Stefan Kerkmann für das Startek KD070HDFLD092 LVDS-Panel und Steffen Trumtrar für das NEC LCD Technologies NL6448BC33-70C Panel.

Zum 7.2er Release haben wir insgesamt fünf Fehlerkorrekturen beigetragen:

Mesa

Unser Kollege Lucas Stach hat den etnaviv-Treiber in Mesa weiter verbessert, der OpenGL(-ES)-Unterstützung für Vivante-GPUs bereitstellt.

Seine 16 in dieser Ausgabe beigetragenen Patches drehen sich um drei Themen:

Wie CI-Tests zeigten, konnten Zeichenbefehle unter seltenen Umständen Race Conditions aufweisen, wenn die GPU gleichzeitig von mehreren Clients genutzt wird. Der Merge Request behebt dies durch sorgfältiges Umordnen von Operationen, vorausschauendes Anstoßen notwendiger GPU-Job-Submits und einige begleitende Aufräumarbeiten.

Weitere Probleme beim Flushing von Command-Buffern wurden behoben. Zwei der Fixes betreffen die Handhabung von Fences, OpenGLs Grundelement zum Verfolgen und Synchronisieren von an die GPU gesendeten Befehlen, ein weiterer den Zeitpunkt, zu dem die Tabelle ausstehender Ressourcen geleert wird.

Abschließend hat Lucas eine Reihe von Refactoring-Patches beigetragen, die sicherstellen, dass die im ersten MR behobenen Races in Debug-Builds durch einen Assert auf CPU-Seite abgefangen werden, bevor sie die GPU erreichen.

Unser Kollege Philipp Zabel hat einen Build-Fehler in Mesa behoben.

candleLight Firmware

In der Zwischenzeit hat Marc 88 Änderungen zur Firmware für den candleLight USB-CAN-Adapter beigetragen.

Neben vielen kleineren Bereinigungen und verbesserter Fehlerbehandlung gab es auch neue Features: Die Unterstützung für GS_CAN_FEATURE_BERR_REPORTING erlaubt es dem Linux-Kernel, das Reporting von CAN-Bus-Fehlern ein- und auszuschalten, und die Unterstützung für GS_USB_BREQ_GET_STATE erlaubt es dem Linux-Kernel, den aktuellen Zustand des CAN-Kanals abzufragen. Das Verwerfen unverarbeiteter USB-OUT-Transfers beim Herunterfahren eines CAN-Kanals verhindert einige Fehlermeldungen, die nach einem Suspend auftreten konnten.

Die Firmware-basierte CAN-Bus-Off-Recovery verlagert die Recovery-Logik vom CAN-IP-Core in die Firmware. Die Firmware kann nun einen CAN-Bus-Off-Zustand erkennen und nach einer kurzen Verzögerung automatisch wiederherstellen. Das ist auch eine Vorbereitung für die m_can-Unterstützung, bei der eine automatische Bus-Off-Recovery nicht verfügbar ist. Ein Flag wurde eingeführt, mit dem der Host die automatische CAN-Bus-Off-Recovery deaktivieren kann, um sie anschließend manuell über eine spezielle USB-Control-Message auszulösen.

Bei hohen CAN-FD-Datenraten von mehreren Mbit/s wird die Signallaufzeit zu einem Problem. Transmitter Delay Compensation (TDC) kann das ausgleichen und wird nun von der candleLight-Firmware unterstützt. Auf Geräten, die das unterstützen, kann der Linux-Kernel das Feature steuern, bei älteren Kerneln, die kein TDC unterstützen, übernimmt das Gerät die Steuerung automatisch.

Zu guter Letzt wurde erste Unterstützung für m_can gemergt. Das fügt Unterstützung für den m_can-CAN-Controller hinzu, der in neueren STM32-Geräten zu finden ist, und markiert einen großen Schritt in Richtung Unterstützung dieser Controller.

Breiteres Ökosystem

In OP-TEE OS hat Sascha Hauer einen Fehler behoben, bei dem die Memory-Firewall falsch eingerichtet wurde, wodurch für OP-TEE reservierter Speicher der normalen Welt zugänglich war.

In systemd hat Ulrich Ölmann die Dokumentation verbessert.

libbsd stellt nützliche Funktionen aus der BSD-Welt anderen Betriebssystemen wie GNU/Linux zur Verfügung. Unser Kollege Sven Püschel hat ein Problem in dessen Build-System behoben.

Bei OpenEmbedded hat Leonard Göhrs eine seltene False-Positive-Warnung der Qualitätssicherung beim Bauen von python3-aiohttp behoben, Michael Tretter hat GPT-Unterstützung in fdisk aktiviert, und Fabian Pfitzner hat zwei neue Rezepte für CAN-bezogene Python-Pakete hinzugefügt: canopen und canmatrix.

barebox

barebox hat 160 neue Non-Merge-Commits erhalten, von denen zwei Drittel Community-Beiträge sind. 2026.06.1 und 2026.07.0 wurden veröffentlicht.

PTXdist

PTXdist 2026.07.0 und 2026.08.0 wurden veröffentlicht.

Insgesamt hat unser PTXdist-Maintainer Michael Olbrich 121 Patches angewendet, von denen 65 Community-Beiträge waren.

labgrid

labgrid hat 50 neue Non-Merge-Commits erhalten, wovon die Hälfte von der Community beigetragen wurde.

RAUC

RAUC hat genau 100 neue Non-Merge-Commits erhalten, ein Viertel davon von der Community.


Weiterführende Links

Pengutronix' aktuelle Open-Source-Contributions - Linux 7.1 Edition

Ein Überblick über Pengutronix' Beiträge zu Linux 7.1 und anderen Open-Source-Projekten

Pengutronix' aktuelle Open-Source-Contributions - Linux 7.0 Edition

Wir nehmen das Linux-7.0-Release zum Anlass, uns anzuschauen, was Pengutronix in den letzten zwei Monaten zu verschiedenen Open-Source-Projekten beigesteuert hat.

Pengutronix aktuelle Open-Source-Contributions

Wir nehmen das Linux-6.19-Release zum Anlass, uns anzuschauen, was Pengutronix in den letzten drei Monaten zu verschiedenen Open-Source-Projekten beigesteuert hat.

Komplexität beherrschen mit Open Source

Vor ein paar Tagen ist etwas spannendes passiert: Ich habe mein allererstes Embedded System wiedergesehen - eine nach nunmehr ca. 34 Jahren defekte Schrittmotorsteuerung für die Teleskope der Volkssternwarte Rothwesten, die ich in den Sommerferien in der 12. Klasse gebaut habe. Schaut man sich die Entwicklung von damals bis hin zu unseren aktuellen industriellen Embedded Systems an, wird schnell klar, warum sowas heute nur noch mit Open Source Software sinnvoll beherrschbar ist.


Pengutronix at the Linux Plumbers Conference

The Linux Plumbers Conference 2024 will take place in Vienna from 18. to 20.09.2024. Luckily this does not overlap with the ELCE. Pengutronix will attend the LPC with six colleagues - so watch out for our T-shirts and hoodies and and feel free to chat with us.


umpf - Git on a New Level

Moderne Softwareentwicklung ohne begleitende Versionsverwaltung wie Git ist heutzutage unvorstellbar - Änderungen am Quellcode sollen schließlich nachvollziehbar dokumentiert und beliebige Verssionsstände jederzeit einfach reproduziert werden können. Für Arbeiten an komplexeren Projekten wie etwa dem BSP ("Board Support Package") eines eingebetteten Systems mit mehreren Entwicklungssträngen skaliert ein bloßes Aufeinanderstapeln der einzelnen Änderungen jedoch nicht.


Pulse Width Modulation (PWM) is easy, isn't it? - Turning it off and on again

Part of Uwe Kleine-König's work at Pengutronix is to review PWM (Pulse Width Modulation) drivers. In addition, he also sometimes refactors existing drivers and the Linux kernel PWM subsystem in general.


Pengutronix at Embedded World 2022

Welcome to our booth at the Embedded World 2022 in Nürnberg!


Die Pengutronix Kernel-Beiträge in 2021

2022 hat begonnen, und obwohl Corona unsere Workflows stark verändert hat, hat das Pengutronix Team auch in diesem Jahr wieder etliche Beiträge zum Linux-Kernel geleistet. Das letzte Kernel-Release in 2020 war 5.10, das letzte in 2021 war 5.15 - schauen wir also, was sich dazwischen bei uns getan hat.


Pengutronix at FOSDEM 2021

"FOSDEM is a free event for software developers to meet, share ideas and collaborate. Every year, thousands of developers of free and open source software from all over the world gather at the event in Brussels. In 2021, they will gather online." -- FOSDEM