Showcase: Embedded off-the-shelf

Ein Firmware-Upgrade ist fällig. Eine neu implementierte Funktion muss ausgerollt, eine Sicherheitslücke gepatcht oder neue Hardware-Unterstützung hinzugefügt werden. Die Software ist zwar leistungsfähig, aber komplex. Pengutronix' Strategie, mit dieser Komplexität umzugehen, ist die Arbeit an einem versionskontrollierten Board Support Package (BSP) mit kontinuierlichen Updates und Tests auf dem neuesten Mainline-Linux-Kernel.

Aber lassen Sie uns zuerst einen Blick auf die Komplexität und die Kundenbedürfnisse werfen.

Es war einmal...

Vielleicht haben Sie von folgendem Szenario gehört, vielleicht kennen Sie es nur zu gut...

Der Zeitplan ist eng und es werden Abkürzungen genommen. Beim Update kollidieren einige Komponenten miteinander, einige werden behoben und einige bleiben unverbessert. Im besten Fall werden einige Sicherheitsprobleme identifiziert und die Korrekturen zurückportiert. Eine andere Komponente wurde vor langer Zeit geforkt, um ein damals neues Hardware-Feature zu unterstützen, aber jetzt, Jahre später, kollidieren diese Änderungen mit dem aktuellen Stand des Upstream-Projekts und erfordern viel Aufwand, um sie in Einklang zu bringen. Der Großteil wurde durch das initiale Board Support Package des Herstellers bereitgestellt, aber jetzt liegt das Interesse des Herstellers auf zukünftigen Produkten und der Gewinnung neuer Kunden. Personalwechsel beim Anbieter und im eigenen Unternehmen führen dazu, dass das Wissen über einige der obskuren Wege verloren geht und die Fehlersuche immer mehr Zeit in Anspruch nimmt.

Mehr Informationen zu Entwick-lungszyklen im Linux Kernel

Unser Kollege Robert Schwebel hat auf dem ESE-Congress 2020 mit "Komplexe Systeme mit Mainline Linux beherrschen" einen Vortrag zum Thema gehalten. (Youtube)

Da der wichtigste Stakeholder nahezu abwesend ist, belasten alle Entscheidungen der Vergangenheit diejenigen, die noch die derivative Software im Feld warten. Während ihre Zahl den Hardware-Anbieter immer noch motiviert, Produktionsläufe zu planen, wird die Wartungslast immer noch von jedem allein getragen, da Probleme individuell identifiziert und gepatcht werden.

Als ob das nicht schon genug wäre, wird es bei einer ausreichend langen Produktlebensdauer immer schwieriger, Ersatz für die Hardware-Komponenten zu finden, was den Aufwand für die Software-Wartung noch erhöht.

Obwohl der Trend zu immer komplexerer Software und der Bedarf an Konnektivität und Sicherheit dieses Problem verschärft, ist es keineswegs eine neue Erkenntnis. Die Auswirkung von technischen Schulden ist bekannt, aber die Folgen der Abwägung zwischen schnellem Prototyping und "richtigem" Tun werden meist erst viel später spürbar.

Wie können wir Ihnen helfen?

Als Embedded-Linux-Dienstleister hat Pengutronix im Laufe der Jahre viel Erfahrung darin gesammelt, Kunden bei der Restrukturierung technischer Schulden zu helfen.

Wir wissen, dass ein langfristig wartbares Produkt bei den allerersten Ideen und Entscheidungen beginnt. Wir wissen auch, dass die Entwicklung von Hardware und Software Hand in Hand gehen muss. Deshalb möchten wir Ihnen so früh wie möglich bei einem Projekt helfen, d.h. wir überprüfen Schaltpläne und beraten Sie bei Komponentenentscheidungen.

Während die Hardware-Abteilung einen Prototyp entwickelt, muss auch die Software-Architektur entworfen werden. Wir helfen Ihnen, auf Basis eines aktuellen Yocto oder PTXdist Build-Systems, ein Board Support Package zu erstellen, das genau auf Ihre Hardware zugeschnitten ist und Ihren Bedürfnissen entspricht. Wir ergänzen fehlende Treiber und Softwarekomponenten in einer testgetriebenen Entwicklung und stellen sicher, dass Ihr BSP reproduzierbar, gut strukturiert und auf dem aktuellen Stand der Technik ist.

Sobald Ihr Produkt verkauft wird, helfen wir Ihnen, es durch kontinuierliche Tests und sichere Updates zu pflegen.

Machbarkeitsstudie: Linux-Automation MC-1

Unser technischer Demonstrator ist für eine breite Palette von Anwendungsfällen konzipiert: Es könnte ein Bedienfeld zur Überwachung Ihrer häuslichen Infrastruktur sein (wie Ihre Solarpaneele oder Türklingeln). Es könnte ein Informations- oder Unterhaltungssystem in Ihrem Fahrzeug sein oder alles andere, was Sie sich vorstellen möchten.

Daher war Display-Unterstützung eine Voraussetzung, ebenso wie eine Netzwerkverbindung, denn alle IoT-Geräte brauchen eine Netzwerkverbindung ;-) Und wenn wir eine Netzwerkverbindung haben, können wir Power over Ethernet nutzen, um das Gerät mit Strom zu versorgen.

Eine letzte Anforderung: Das Board soll klein genug sein, um in die Rückseite des Displays zu passen.

In Zusammenarbeit mit unserem Schwesterunternehmen Linux Automation GmbH und unseren Partnern Octavo Systems und Bopla präsentieren wir einen Proof of Concept für die Design for Mainline-Strategie.

Unser Embedded Board enthält nur handelsübliche Komponenten, die von Mainline-Linux-Treibern gut unterstützt werden.

Daher betrug der anfängliche Aufwand für das Design der Schaltung für diesen Prototyp nur etwa zwei Wochen und eine weitere Woche, um den gesamten Software-Stack zu erstellen. Möglich wurde dies durch eine durchdachte Auswahl der Komponenten, die wir Ihnen an dieser Stelle vorstellen wollen:

  • Mögliche SoCs werden nicht nur nach ihrem Funktionsumfang, Preis und ihrer Verfügbarkeit bewertet, sondern auch nach der Offenheit der Dokumentation und dem vorhandenen Upstream-Support. Für diesen PoE-gespeisten Display-Controller erfüllt der STM32MP1 alle Kriterien.
  • Der OSD32MP1x macht es einfach, eine Brücke zwischen der IT und der physischen Welt zu schlagen. Wenn man eMMC-Speicher hinzufügt, hat man bereits einen vollwertigen Linux-Computer; auf einer Platine mit geringer Lagenzahl.
  • Upstream-Support in den Linux Kernel wurde für das Board durch die Projekte ARM Trusted Firmware und Barebox Bootloader eingebracht. Es müssen keine Software-Komponenten gepatcht werden, um ein Linux-System zum Laufen zu bringen.
  • Ein BSP sammelt Konfigurationsparameter und endgültige Versionen aller verwendeten Softwarekomponenten. Softwareversionen können auch nach Jahren noch reproduziert werden.
  • Das BSP baut auf etablierten und von einer breiten Community geschützten Build-Systemen wie Yocto oder PTXdist auf, wo viele Firmen und Enthusiasten gemeinsam an der Aktualisierung der verschiedenen Komponenten arbeiten und dabei die Kompatibilität aufrechterhalten.
  • Die von Etnaviv betriebene Grafikpipeline, die von Pengutronix im Linux-Kernel gepflegt wird, bietet dem Anwender eine vertraute Umgebung: Grafik-Toolkits, ähnlich wie sie auf einem Standard-Linux-Desktop-PC eingesetzt werden.
  • Neue Software wird kontinuierlich auf das Board aufgespielt und Testsuiten laufen, um Regressionen während der Entwicklung abzufangen.
  • Um den Kernel-Entwicklern so früh wie möglich Rückmeldung über Regressionen zu geben, kann das Board zusätzlich in die weltweite KernelCI-Infrastruktur integriert, die die Linux-Kernel-Maintainer informiert, wenn neue Patches zu Problemen auf der jeweiligen Hardware führen.
Zurück zur Messeseite

Weiterführende Links

Showcase: Remote Working

Zur Projektarbeit mit unseren Kunden gehört die Arbeit mit Prototypen-Hardware. Da wir grundsätzlich parallel für mehrere Kunden an vielen verschieden Projekten arbeiten, bedeutet das eine Flut von Prototypen auf den Schreibtischen unserer Entwickler. Spätestens wenn im Team an einem Prototypen gearbeitet werden soll oder längere Zeit nicht aktiv an einem Projekt gearbeitet wird, muss die Hardware regelmäßig umgezogen und am neuen Arbeitsplatz verkabelt werden. Erschwerend kommt hinzu, dass die Entfernung zwischen unseren Entwickler-Schreibtischen durch die aktuelle Homeoffice-Situation, nicht wie gewohnt in Metern, sondern in Kilometern gemessen wird.


Showcase: Continuous Testing

In den Linux-Kernel wandern jedes Jahr etwa 70.000 Patche, viele davon sind Bugfixes. Das Gleiche gilt für die meisten anderen Open-Source-Projekte, die Teil eines modernen Linux-Systems sind. Um von der Arbeit in der Community profitieren zu können, bleibt als sinnvolle Strategie, ständig auf dem neusten Softwarestand aufzusetzen und das System aktuell zu halten. Natürlich können bei dieser Menge an Änderungen auch neue Fehler hinzukommen oder Inkompatibilitäten entstehen.


Pengutronix at Embedded World 2022

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


CLT-2022: Voll verteilt!

Marie Mann | | clt, event, linux, talk, tutorial

Unter dem Motto "Voll verteilt" finden die Chemnitzer Linux Tage auch 2022 im virtuellen Raum statt. Wie auch im letzten Jahr, könnt ihr uns in der bunten Pixelwelt des Workadventures treffen und auf einen Schnack über Linux, Open Source, oder neue Entwicklungen vorbei kommen.


First Steps using the candleLight

So you went and got yourself one of our fancy rocket-penguin branded CandleLight dongles or, being the die hard hacker you are, went and soldered one up in your toaster oven labeled "not food safe". What's next then? How do you use this thing? Let's answer these question by grabbing a Raspberry Pi and exploring some of the possibilities.


Did you know? Initializing CAN interfaces with systemd-networkd

Chris Fiege | | didyouknow, iobus, can-bus

End of January systemd 250 was added to Debian bullseye backports. With a lots of new features and fixes now comes the possibility to set the timing of CAN bus interfaces with systemd-networkd. In this blogpost I will take a look at why this helps us maintain our embedded Linux labs.


Die Pengutronix Kernel-Beiträge in 2021

Robert Schwebel | | kernel, linux

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.


labgrid Tutorials

This week, we started our series of YouTube labgrid tutorials. In the next few weeks we will publish more video tutorials showing you labgrid's features and giving you handy tips and tricks.


Pengutronix auf dem ESE-Kongress

Auch der Embedded Software Engineering Kongress findet dieses Jahr online statt, und wir möchten die Chance nutzen, diesen als Event-Partner zu unterstützen, mit Leuten ins Gespräch zu kommen und gleichzeitig ein paar interessanten Vorträgen zu lauschen.


USB-SD-Mux: Automated SD-Card Juggler

Once the bootloader on your embedded device is up and running the development of kernel and userland in PTXdist-based BSPs is usually based on booting from network. Thus there is no need for the developer to write the boot media with a new image.