Software-Management So wird Linux fit für den Lebenszyklus von Industrie-PCs

Autor / Redakteur: Dr. Uwe Kracke / Martina Hafner

Eine Standard-Linux-Distribution ist auf den meisten Industrie-PCs mit x86-CPU schnell installiert. Die Herausforderung für den Entwickler beginnt, wenn spezifische Hardware wie etwa ein TFT mit Touchscreen oder zusätzliche Schnittstellenkarten in das System integriert werden und das Gesamtsystem im Lebenszyklus sowohl reproduzierbar als auch wartbar bleiben soll.

Firmen zum Thema

( Archiv: Vogel Business Media )

Für den Einsatz in Investitionsgütern und bei hohen Anforderungen an den Entwicklungs- und ggf. Zertifizierungsprozess ist die Verfügbarkeit und Lauffähigkeit eines Linux-Systems alleine nicht ausreichend. Schnell dominieren Fragen des Varianten- und Konfigurations-Managements sowie der Reproduzierbarkeit die Entwicklung. Hier können Fehlentscheidungen und ein unzureichendes Software Management zu enormen Folgekosten führen.

Ein Hersteller von Bedienterminals für Anlagen musste vor kurzem mehrere hundert bereits ausgelieferte Systeme mit einem neuen Embedded Linux ausstatten lassen, weil das selbst zusammengestellte Linux-System aufgrund eines schwerwiegenden Konfigurationsfehlers nicht zuverlässig arbeitete. Da das System nicht dokumentiert war und weder automatisiert reproduziert noch selektiv aktualisiert werden konnte, mussten die einzelnen Softwarepakte und Treiber vollständig neu zusammengestellt und dann vor Ort aktualisiert werden.

Was kann im Rahmen des Auswahl- und Entwicklungsprozesses der Software getan werden, um derartige Risiken zu minimieren? Nach der Auswahl und dem Test der Hardware-Plattform steht die Frage im Mittelpunkt, welches (Embedded)-Linux-System zum Einsatz kommen soll und wie es im Lebenszyklus gewartet werden kann.

Standard Distributionen oder individuelles Linux?

Die für den Desktop- oder Server-Betrieb entwickelten Distributionen sind sehr kostengünstig zu erwerben, scheiden aber aufgrund ihrer hochgradigen Optimierung für den Einsatz im IT-Umfeld sofort aus. Anders verhält es sich erwartungsgemäß mit denjenigen Distributionen, die speziell für den Einsatz in Embedded Systemen entwickelt wurden. Die Anbieter von Embedded-Linux-Standard-Distributionen wenden sich in erster Linie an Entwickler, die auf eine komfortable Tool-Unterstützung Wert legen. Sie sind für viele Rechner mit x86-CPU verfügbar und bieten Unterstützung für wesentliche Schnittstellen und Systemfunktionen wie sie beispielsweise im Umfeld von industriellen Anwendungen benötigt werden. Als Beispiel sei hier das definierte Verhalten bei plötzlichem Stromausfall genannt.

Der Komfort dieser hochgradig integrierten Entwicklungsumgebungen ist nicht zum Nulltarif zu haben. Daher muss mit signifikanten Beträgen für Beschaffung und Updates kalkuliert werden. Diese Investition rechnet sich dann, wenn die gewählte Standard-Distribution den aktuellen und zukünftigen Anforderungen an das System gerecht wird. Muss im Rahmen des Entwicklungsprojektes allerdings vom fixen Funktionsumfang der Standard-Distribution abgewichen werden oder ändert sich im Laufe des Produktlebenszykluses die verwendete Hardware oder deren Bestückung, dann kann eine derartige Distribution kein vertieftes Systemwissen und den Aufwand für Anpassungen ersetzen. Standard Distributionen helfen auch dann nicht weiter, wenn die ausgewählte Hardware-Plattform nicht oder nur eingeschränkt unterstützt wird oder ein spezifischer Treiber entwickelt und Schnittstellenkarten zu integrieren sind. Auch bei der Verwendung zusätzlicher Softwarepakte stoßen diese Distributionen an ihre Grenzen. Diese Punkte verursachen in der Regel hohe ungeplante Zusatzkosten.

Build System sichert Transparenz und Wartbarkeit

Welche Möglichkeiten gibt es, ein individuell zusammengestelltes und optimiertes Embedded-Linux langfristig wartbar und reproduzierbar zu halten? Soll dieses System gleichermaßen transparent, erweiterbar, reproduzierbar und über den Lebenszyklus hinweg wartbar sein, dann muss der Prozess der Zusammenstellung, Anpassung und Wartung der Software-Plattform durch ein integriertes Software Management unterstützt werden. Ein Build System, das den oben genannten Anforderungen genügt, sollte die folgenden Eigenschaften haben:

  • toolbasiertes Konfigurationsmanagement für alle Open Source-Quellen (z.B. Linux Kernel, gcc, glibc, etc.) in einem Software Repository,
  • Möglichkeit zur Integration von selbst entwickelten Treibern und Anwendungen,
  • Möglichkeit der Optimierung auf Paket- und Dateiebene,
  • über eine Versionsverwaltung verfügen sowie
  • die automatisierte und eindeutig reproduzierbare Kompilation aller Sourcen zu einem lauffähigen Gesamtsystem.

In einem leistungsfähigen Build System ist somit nicht nur die verwendete Software im Quellcode sondern auch der Prozess der Zusammenstellung und Kompilation der einzelnen Sourcen in Form von „Stücklisten“ und Regeln hinterlegt. Erst dieses Software-Management ermöglicht eine personenunabhängige Reproduzierbarkeit von individuell zusammengestellten Linux-Systemen. Der skizzierte Mechanismus bietet auch die Möglichkeit, einzelne Komponenten im Verlauf des Lebenszykluses selektiv zu aktualisieren.

Qualität und Integrität gewährleisten

Zur Vermeidung jeglicher Abhängigkeiten der Target-Distribution vom Produktionsrechner sollte der gesamte Produktionsvorgang darüber hinaus softwaretechnisch gekapselt sein. Der jeweils verwendete Compiler ist also ebenfalls Bestandteil der „Stückliste“ und im Repository enthalten. Um die Qualität und Integrität der Softwareplattform eines industriell genutzten Linux Systems zu gewährleisten, muss der Quellcode in dieser Datenbank zentral gehalten und kontrollierbar gepflegt werden. Ein automatisches Update von Sourcecode über das Internet ist daher nicht akzeptabel.

Um den Anforderungen der GPL (General Public License) zu genügen, müssen die Open Source-Komponenten des entwickelten Systems auch im Quellcode extrahiert werden können, um sie den Anwendern zur Verfügung zu stellen. Individuell entwickelte Applikationen müssen dagegen nicht offen gelegt werden. Ein leistungsfähiges Build System unterstützt somit auch die Sicherung von Know-how, ohne auf die Vorteile freier (Betriebssystem-)Software verzichten zu müssen.

Tipp: Linux BSPs für Industrie PC

Oben genannte Anforderungen wurden im emlix Build System (ebs) realisiert, das im Rahmen der Entwicklung von Board Support Packages oder kundenspezifischen Embedded Linux-Distributionen seit fast sieben Jahren eingesetzt wird. Zusätzlich ermöglicht das Framework die einfache Realisierung von Produktfamilien und Plattformstrategien: Auf einer einheitlichen Codebasis können Varianten einer Distribution (unterschiedliche Komponenten und Konfigurationen) wirtschaftlich erzeugt und gewartet werden.

Auf der Grundlage dieses Build Systems ist eine Familie von Embedded-Linux-BSPs für den Einsatz in Industrie-PCs entwickelt worden. In enger Zusammenarbeit mit Board-Herstellern wird eine optimal an das Board angepasste Evaluation-Edition entwickelt. Mit dieser kostenlosen Version kann der Kunde die Hardware seiner Wahl sofort testen und mit der Entwicklung seiner Applikation beginnen. Mit einer kostengünstigen Professional Edition kann der Anwender dann auf weitere Softwarepakte zugreifen und sich ggf. eine vollständig individualisierte und reproduzierbare Custom Edition zusammenstellen lassen.

Dr. Uwe Kracke ist Geschäftsführer der emlix GmbH, Göttingen. Kontakt: uk@emlix.com

(ID:224679)