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.

PTXdist erzeugt während des Bauens des Projekts ein komplettes Unterverzeichnis welches das vollständige Root-Dateisystem exportierbar via NFS enthält.

Dieses Unterverzeichnis kann anschl. mittels des regulären und Kernel-basierten NFS-Dienstes exportiert werden oder auch durch den in PTXdist eingebauten Userland-basierten NFS-Dienst.

Der Userland-basierte NFS-Dienst in PTXdist sei hiermit empfohlen, weil er die von PTXdist erzeugte Liste der für das Zielsystem vorgesehenen Benutzer- und Rechteinformation für alle Dateien im Root-Dateisystem verwendet. Diese Möglichkeit besitzt der Kernel-basierte NFS-Dienst nicht.

Sollte es also bereits während der Entwicklung relevant sein, dass bei der Verwendung von NFS-Root auch Benutzer und Rechte auf dem Zielsystem korrekt vorliegen, muss zwingend der Userland-basierte NFS-Dienst von PTXdist verwendet werden. Andernfalls stolpern wir Entwickler erst bei der Verwendung des echten durch PTXdist erstellten Root-Dateisystems auf einem lokalen Speicher des Zielsystems über mögliches Fehlverhalten im Zusammenhang mit den Benutzern und Rechten im Dateisystem.

Egal für welche Variante des NFS-Dienst wir uns entscheiden, wir erleben durch die Verwendung von NFS-Root auf dem Zielsystem eine enorme Arbeitserleichterung während wir noch gleichzeitig daran entwickeln.

Sobald wir eine Software-Komponente im System vermissen, genügt es jetzt, diese nachträglich im PTXdist Menü zu aktivieren, PTXdist sie hinzubauen lassen und sofort steht sie auf dem Zielsystem zur Verfügung. Es müssen dazu keine Dateien zum Zielsystem übertragen werden oder gar ganze Root-Dateisystem-Abbilder ausgetauscht werden. Und meist muss das Zielsystem nichteinmal neu gestartet werden.

Ausnahmen wie der Linux-Kernel bestätigen diese Regel. Aber auch im Falle des Linux-Kernels und beispielsweise der Entwicklung eines Kernel-Treibers ist es mitunter möglich an einem Treiber-Modul zu arbeiten, welches sich zur Laufzeit des Zielsystems entladen und in einer überarbeiteten Version wieder laden läßt. Die überarbeite Version wird auf dem Entwicklungsrechner regulär mit PTXdist erstellt und ebenfalls wie jede andere Datei via NFS-Dienst bereitgestellt.

Und wer schon einmal mühsam während der Entwicklung direkt auf dem Zielsystem mit einem "vi" Konfigurationsdateien bearbeitet hat, für den gibt es auch eine gute Nachricht: Dank NFS-Dienst geht das nun mit dem persönlichen Lieblingseditor direkt und lokal auf dem Entwicklungsrechner. Die Änderung ist anschl. instantan auf dem Zielsystem verfügbar.

So ist das Entwicklerleben schön und den Kaffee trinke ich nicht aus Verzweiflung, sondern mit Genuß.


Weiterführende Links

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.


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.


Lizenzmanagement mittels ptxdist make license-report

PTXdist kommt standardmäßig mit einem Werkzeug, welches das Lizenzmanagement erleichtert: ptxdist make license-report. Hiermit lässt sich ein Lizenzreport als PDF erstellen, welcher aus dem verwendeten BSP alle auffindbaren Lizenzen herausfiltert. Die Generierung und Befolgung des Lizenzreports sollte als Mindestanforderung mit viel Raum für weitergehende Lizenzpflege verstanden werden.


Statische Dateisysteme

Jürgen Borleis | | PTXdist

Wann immer es erforderlich ist, ein embedded Gerät einfach so ohne Vorbereitung ausschalten zu können, kommt das Thema Dateisystem-Konsistenz auf. Werden Daten geschrieben und haben vor dem Ausschalten ihren Weg auf das Speichermedium noch nicht vollständig gefunden, droht deren Verlust.


Jump Start your BSP using DistroKit and PTXdist Layers

A BSP (Board Support Package) in Embedded Software is the layer of software that lets you run your application on a specific hardware. For Pengutronix a BSP usually contains a bootloader, Linux Kernel and a userspace. DistroKit is our Demo-BSP that supports a variety of common evaluation boards. DistroKit gives you a head start if you want to develop an application on top of such an evaluation board with most of the hard problems already solved.