BSP Integration & Testing

Gerätehersteller schreiben in der Regel ihre Embedded Software selbst, weil sie das Alleinstellungsmerkmal der Produkte ausmacht. Bei der heutigen Komplexität der Prozessoren ist es jedoch nicht mehr wirtschaftlich möglich, sein eigenes Betriebssystem zu schreiben. Mit einem angepassten Linux bekommt man "best of both worlds": ein ausgereiftes, gepflegtes Embedded Betriebssystem mit viel professionellem Erfahrungswissen, bei gleichzeitig voller Kontrolle über den Code.

Standard Linux-Distributionen eignen sich in den meisten Fällen nicht gut für Embedded-Systeme, bei denen volle Kontrolle über den Quellcode gefragt ist. Deshalb integriert Pengutronix die Software-Komponenten im Verlauf des Projekts in einem Board Support Package (BSP).

Zum Einsatz kommen PTXdist und Yocto. Die BSPs stellen einen vollständigen Nachvollzug sicher:

  • Alle Sourcen, Modifikationen (Patches) und Regelsätze stehen bereit
  • Das BSP kann komfortabel im Git-Repository verwaltet werden
  • Die Erstellung eines Firmware-Images ist vollständig automatisiert
  • Integration in Continuous-Integration-/Continuous-Testing-Systeme ist möglich

Testautomatisierung

Automatisiertes Testen für Embedded-Linux-Systeme ist eine Herausforderung: Konventionelle Unit-Test-Frameworks funktionieren für gewöhnlich nur auf einer Maschine, und Abläufe, wie sie beim vollautomatischen robusten Image-Update (z.B. mit unserem Update Framework RAUC) stattfinden, können damit überhaupt nicht getestet werden.

Deshalb hat Pengutronix das labgrid-Projekt initiiert, mit dessen Hilfe sich Tests auf verteilten Systemen ebenso wie das initiale Aufspielen von Firmware-Images in der Produktion automatisieren lassen.

Pengutronix betreibt weiterhin ein LAVA-Labor im weltweiten kernelci.org-Qualitätssicherungsnetzwerk für den Linux-Kernel, sowie weitere interne Server für die Testautomatisierung.