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, 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 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 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 Community-Bemühungen wie Yocto oder PTXdist auf, wo viele 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, wird das Board in die KernelCI-Infrastruktur integriert, die die Linux-Kernel-Maintainer über durch neue Patches verursachte Brüche informiert.
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 mit mehreren 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 sich die Entfernung zwischen unseren Entwicklerschreibtischen, 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 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.


eMMC Hardware Partitionierung

Wenn ein Embedded-System für eine lange Lebensdauer vorgesehen ist, ist es nötig, sich mit der Applikation und der darunter liegenden Hardware auseinanderzusetzen - damit beide zusammen eine hohe Langzeitstabilität erreichen.


#FlattenTheCurve – Vorstellung unserer Remote-Infrastruktur

Die Corona-Krise hat uns alle, sowohl als Privatpersonen als auch als Firmen, plötzlich ziemlich hart getroffen und stellt unsere gesamte Gesellschaft vor neue Herausforderungen. Wir als Pengutronix möchten uns bei denjenigen bedanken, die in systemkritischen Berufen arbeiten und unsere alltägliche Versorgung sicherstellen.


Fürchte nicht den offenen Quellcode - 1x1 des Lizenzmanagements

Computerprogramme und Code sind urheberrechtlich geschützt, in Deutschland lässt sich dieser Schutz nicht umgehen oder ausschalten. Das Urheberrecht gewährt grundsätzlich nur demjenigen, der das Werk geschaffen hat ("Urheber"), die Rechte an dem Werk. Mithin dürfte nur der Entwickler den von ihm geschriebenen Code verwenden, verändern und verbreiten.


15 Years of i.MX in Mainline Linux

Today it has been 15 years since we mainlined support for Freescale/NXP's i.MX architecture in the Linux kernel! That was one small step for [a] man, one giant leap for (industrial Linux users') mankind :-) Here is some background about why it happened and what you might want to learn from history for your next embedded Linux project.


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.


PTXdist: Schon gewusst? Heute: Mal eben neu booten

Wer während der Entwicklung an einem embedded System selbiges immer wieder mal komplett neu starten muss, wird es zu schätzen wissen, wenn so wenig wie möglich getan werden muss, um bei veränderten Daten das System im konsistenten Zustand zu halten.


PTXdist: Schon gewusst? Heute: Das Entwicklerleben verschönern

Es gibt Dinge, die machen das Leben als Entwickler einfacher - und schöner. Hier dazu ein Beispiel.