DESIGNPRAXIS D&E - Der Umstieg auf Yocto Einführung in das Yocto-Project

Als Linux Torvalds 1991 mit der Entwicklung des Linux-Kernels begann, war sein Hauptanliegen die Entwicklung einer freien Alternative zu Unix auf seinem Heim-PC.

Während Linux bei Server-Betriebssystemen und im Embedded-Bereich zunehmend an Bedeutung gewann, konnte es sich ironischerweise gerade im Desktop-Umfeld bisher nicht durchsetzen. Über die Jahre entstanden zahlreiche Distributionen für Desktops und Server. Diese sind nur schwer für Embedded-Systeme einsetzbar, da hier völlig unterschiedliche Anforderungen an Betriebssysteme bestehen.

Desktop-Systeme sind für eine Vielzahl an Funktionen einschließlich der möglichst einfachen Erweiterung für zukünftige Features ausgelegt; bei Embedded-Systemen ist das Gegenteil der Fall. Hardware und Software sind auf funktionale und zeitgenaue Erfüllung genau definierter Aufgaben ausgerichtet, so minimalistisch wie möglich gehalten und hinsichtlich Kosten- und Energiebedarf optimiert. Features wie automatische Treiberinstallation oder benutzergetriebene Installation neuer Software sind hier nicht gewünscht. Dieser Gegensatz spiegelt sich in den Anforderungen an Embedded-Linux-Distributionen wider.

Der Bedarf an Flash und RAM sollte sich kontrolliert minimal halten lassen und das System soll so statisch wie möglich aufgesetzt sein, denn jede Art von Komplexität oder Flexibilität ist ein Stabilitätsrisiko. Bedingt durch die unterschiedlichen Zielarchitekturen wird außerdem eine genaue Kontrolle über den Build-Prozess benötigt. Das Betriebssystem wird also für das Zielsystems neu übersetzt, anstatt nur binäre Pakete zu installieren. Daher wurden über die letzten Jahre verschiedene Linux-Build-Systeme für den Embedded-Bereich geschaffen, wie z.B. Buildroot, PTXDist und das Yocto-Projekt.

Warum Yocto?

Jedes Build-System hat seine eigenen Vor- und Nachteile. Für Yocto spricht, dass inzwischen ein Großteil der Halbleiterhersteller Yocto-basierende Referenz-BSPs anbieten. Es ist nicht durch einen einzelnen Hersteller oder Dienstleister getrieben, sondern durch eine Gruppe von Mitgliedern und 3rd-Parties. Selbst wenn einer der Kontributoren aussteigt oder seine Strategie ändert, stirbt das Konzept nicht. Durch »Layer« erlaubt Yocto größtmögliche Hardware-Unabhängigkeit. Der Wechsel auf eine andere Ziel-Hardware lässt sich durch den Austausch einer einzigen Layer-Schicht erreichen. Yocto wird aktiv gepflegt und zeichnet sich durch regelmäßig getestete Releases aus.

Avnet Memec Silica unterstützt aus diesen Gründen Yocto durch aktive Mitarbeit, kostenfreie Trainings und eine zahlende Mitgliedschaft. Ein Beispiel hierfür ist die Initiative, »fehlende« SoC-Hersteller durch eigene Layer in Yocto zu integrieren und aktiv mit Halbleiterherstellern an der Yocto-Integration zusammenzuarbeiten, wie gerade mit Marvell geschehen. Dies ermöglicht für Endkunden einen schnellen Vergleich unterschiedlichster Zielplattformen und ein einfaches Bench¬marking unter gleichen Bedingungen. Das System ist jedoch extrem offen und erweiterbar, da es Empfehlungen gibt, aber keine Bindung. Diese Flexibilität wird durch größere Komplexität erkauft – es geht mit einem gewissen Aufwand einher, auf Yocto umzusteigen. Diese Artikelserie hilft beim Umstieg. Für erste praktische Schritte bietet Avnet Memec Silica kostenlose Hands-on-Trainings, bei denen an realen Zielsystemen gearbeitet wird. Eine hervorragende Referenz ist auch die Yocto-Dokumentation.