Das Yocto Project hat das Ziel, Werkzeuge und Prozesse zu entwickeln, um die Erstellung von Linux-Distributionen für Embedded- und IoT-Software zu ermöglichen. Es handelt sich dabei um ein Open-Source-Projekt. Mittlerweile hat sich Yocto als Standard auf dem Embedded-Markt etabliert. Was hat es damit auf sich?
Das Yocto Project wurde von der Linux Foundation im Jahr 2010 angekündigt. Im darauffolgenden Jahr wurde das Projekt gemeinsam mit 22 Organisationen wie OpenEmbedded gestartet. Heute hat das Projekt eine der weltweit größten Communities, die sich um die Pflege und Aktualisierung des Projekts kümmern.
Die Frage, was hinter Yocto Linux steckt, können wir kurz beantworten: Der Fokus des Yocto Projects liegt auf der Verbesserung des Softwareentwicklungsprozesses für eingebettete Linux-Distributionen. Es stellt interoperable Werkzeuge, Metadaten und Prozesse zur Verfügung. Diese ermöglichen eine schnelle Entwicklung von linuxbasierten eingebetteten Systemen. Jeder Aspekt des Entwicklungsprozesses dieser Systeme kann angepasst werden.
Wer noch nie etwas von Yocto Linux gehört hat oder weitere Details und Hintergründe erfahren möchte, sollte den folgenden Beitrag lesen.
Hinweis: Wer sollte diesen Beitrag lesen?
Sie sind als Softwareentwickler tätig? Oder Sie sind in einem Industrieunternehmen verantwortlich für den Computing-Lösungsbereich? Dann sollten Sie sich den folgenden Beitrag aufmerksam durchlesen.
Auf jeden Fall ist es keine Linux-Distribution. Yocto Linux ist vielmehr eine Sammlung: Mit den enthaltenen Werkzeugen und Mechanismen können Sie eine eigene Linux-Distribution erstellen.
Eigentlich sollte man vom „Yocto Project“ sprechen – die Projektseite liefert bereits die richtige Bezeichnung. Die Bezeichnung macht Sinn, denn unter diesem Projekt werden Werkzeuge zahlreicher einzelner Projekte zu einem einheitlichen Werkzeugkasten zusammengeführt. Mit diesem Kasten können Sie eine eigene Linux-Distribution (Betriebssystem) entwickeln.
Tipp: Nutzen Sie die detaillierte Dokumentation
Wer sich mit Yocto auseinandersetzen will, kann sich über einem enormen Funktionsumfang und eine detaillierte Dokumentation freuen. Ihre Lernkurve wird mit hoher Wahrscheinlichkeit sehr steil sein. Nehmen Sie sich für Ihren Yocto Linux-Einstieg genügend Zeit.
Aspekte, die zu Yoctos grundlegenden Strukturen zählen:
Was hat es mit der poky Referenzimplementierung auf sich?
Yocto bietet eine Referenzdistribution, die den Namen „poky“ trägt. Dabei handelt es sich um ein umfangreiches Beispiel. Das Beispiel zeigt Ihnen, wie Sie mithilfe des Yocto Projects eine Distribution erstellen können.
Oft wird das Referenzprojekt falsch verstanden und im Produktiveinsatz verwendet. Es lässt sich mit wenig Aufwand anpassen. Doch sollten Sie immer daran denken, dass es sich bei poky nur um ein Beispiel handelt.
Mit Yocto Linux bekommen Sie ein Werkzeug an die Hand, mit dem Sie individuell zugeschnittene Linux-Images für Embedded Devices herstellen können. Als Anwender erhalten Sie so deutlich größere Spielräume als Ihnen beispielsweise vorgefertigte Distributionen liefern könnten.
Der allgemeine Yocto Linux-Workflow kann folgendermaßen ablaufen:
Ihr Workflow mit dem Yocto Project ändert sich je nachdem, welche Komponenten und Tools Sie tatsächlich verwenden wollen.
Entwicklungsumgebungsmöglichkeiten für Yocto
Ein Großteil der Entwickler nutzt einen Linux-Entwicklungshost. Das Yocto Project stellt für andere Betriebssysteme CROPS bereit. Das ist ein plattformübergreifendes Open-Source-Entwicklungsframework. Es nutzt Docker-Container. CROPS verfügt über eine einfach zu verwaltende und erweiterbare Umgebung.
Diese ermöglicht es Ihnen, Binärdateien für eine Vielzahl von Architekturen auf Windows oder macOS zusätzlich zu nativen Linux-Hosts zu erstellen. Eine weitere Möglichkeit ist Toaster. Dabei handelt es sich um eine Webschnittstelle, mit der Sie Builds konfigurieren und ausführen können. Toaster stellt auch Informationen und Statistiken zum Build-Prozess bereit.
Für Ihr Embedded-Gerät die richtige Linux-Distribution auszuwählen ist eine Herausforderung. Doch es gibt viele gute Gründe dafür, warum Sie Yocto Linux einsetzen sollten:
Daneben gibt es noch eine Vielzahl von Vorteilen, die für Sie durch die Nutzung von Yocto Linux entstehen:
Außerdem ist Yocto ein attraktives Gesamtpaket, denn:
Bei der Nutzung von Yocto Linux werden Sie auch mit ein paar Hindernissen rechnen müssen. Viele Entwickler berichten bei Yocto Linux von einer steilen Lernkurve – die vielen Begrifflichkeiten können bereits entmutigen. Die Vielzahl an Optionen für die Konfiguration des Ziels ist eine weitere Herausforderung. Denn es wird einiges an Zeit benötigt, um die richtige Auswahl zu treffen. Ein Aufwand an Recherche und Untersuchung kann entstehen, wenn Sie nachvollziehen wollen, welche Änderungen Sie an Ihrer Distribution für ein spezielles Design vornehmen müssen. Doch wer die ersten Schritte mit seinem Yocto Linux-Projekt abgeschlossen hat, kommt auch mit der Komplexität besser zurecht.
Sie sind traditionelle Entwicklung von Desktop- und Serversoftware gewohnt? Dann kommt Ihnen der Yocto-Workflow zunächst verwirrend vor. Der Host-Betriebssystemanbieter stellt Ihnen in einer Desktop-Entwicklungsumgebung einen Mechanismus zum Installieren neuer Pakete bereit. Um bei Yocto zusätzliche Pakete hinzufügen zu können, muss die Konfiguration geändert und neu erstellt werden. Internet gehostete und einfach verfügbare Paketbibliotheken gibt es nicht.
Über Yocto können Entwickler auch direkt auf dem Zielsystem entwickeln. Entwickler müssen einen weiteren Schritt machen, sobald der Code entwickelt und debuggt wurde. Die Änderungen müssen erneut in die Yocto-Build-Umgebung implementiert werden. Ein möglicher Lösungsweg: Nehmen Sie Änderungen in der Umgebung vor und stellen Sie die aktualisierten Pakete bereit.
Das Build-System von Yocto fertigt Pakete in den Formaten rpm, deb, ipk oder tar an. Installieren können Sie das Format mithilfe von Package Management innerhalb eines laufenden Systems. In der frühen Entwicklungsphase ist dies für Sie von Vorteil. Eine große Anzahl von Paketen ist für ein vollfunktionsfähiges Linux-System notwendig.
Was darüber hinaus leider unvermeidbar ist: Rechnen Sie bei einem vollständigen initialen (ersten) Yocto-Build mit langen Build-Zeiten, da für ein voll funktionsfähiges Linux-System eine große Anzahl von Paketen kompiliert werden muss.
iesy setzt sich bereits seit über 20 Jahren mit Embedded-Linux-Systemen auseinander. Bis zum Jahr 2015 nutzten wir die Möglichkeiten des Embedded-Gentoo-Projekts. Im zuvor genannten Jahr stießen wir dann auf das Yocto Project, das viele Nachteile vorangegangener Embedded-Linux-Systeme löste.
Gleichzeitig entschieden sich viele unserer Hardwarelieferanten ihre BSPs (Board Support Packages) nicht mehr in Form eines angepassten Boot-Loaders und Linux Kernels, sondern in Form von Yocto BSP-Layern zur Verfügung zu stellen. Das führte dazu, dass iesy seit 2017 Yocto zu 100 Prozent für Embedded Systeme einsetzt.
Als Grundlage setzt iesy auf eigens entwickelter Embedded Hardware auf. Diese verfügt je nach System über Boot-ROM, BIOS oder UEFI. Auf dieser Hardwareplattform installieren wir dann ein Kern-BSP, das - je nach Konfiguration - aus einem Device Tree, einem Second Stage Boot Loader und einem Linux Kernel besteht.
Auf das Kern-Board-Support-Package folgt dann ein Root Dateisystem mit dem für den Betrieb erforderlichen System-Bibliotheken und -Applikationen sowie den Bibliotheken und Applikationen, die von einer Kundenapplikation benötigt werden.
Der Schwerpunkt der iesy Softwareentwicklung reicht vom Device Tree bis hin zur System-Applikation.
Alle zuvor genannten Aspekte sind Gründe dafür, warum auch iesy Yocto Linux einsetzt. Als Anbieter und Spezialist im Bereich Embedded Computing profitieren wir ganz besonders von den zuvor genannten Vorteilen. Die hohe Flexibilität, die uns Yocto Linux bietet, ermöglicht es iesy, besondere Konfigurationen von Betriebssystemen und einzelnen Betriebssystemteilen zu erstellen.
Alle Möglichkeiten und Vorteile von Yocto Linux werden von iesy also umfassend genutzt, um maximal individualisierte Lösungen für unsere Kunden zu erstellen.
Das Internet der Dinge (IoT) wird für Unternehmen in der Industrie immer wichtiger. Das Yocto Project eignet sich perfekt für IoT-Projekte. Industrieunternehmen sollten bei diesen Projekten also auch Yocto einsetzen. Es gibt kleine IoT-Geräte, in denen Sensoren oder Aktoren stecken. Daneben gibt es auch größere Geräte wie IoT-Gateways, Network Attached Storage (NAS)-Systeme oder Heimautomationsrouter.
Für diese Gerätetypen werden Prototypen mit Consumer-Hardware-Geräten, die leicht verfügbar sind, aufgebaut. Dazu zählen beispielsweise Raspberry Pi und BeagleBone. Diese Boards werden vom Yocto Project bestens unterstützt. Damit erhalten Sie die Möglichkeit, schnellstmöglich mit einem IoT-Projekt zu beginnen.
IoT-Systeme nutzen Bibliotheken, Protokolle und Software, die in Desktop-Linux-Distributionen nicht sehr weit verbreitet sind. Doch können Sie Ihrem Yocto-Build viele gängige Pakete wie MQTT und AMQP mit Standard-Yocto-Layern hinzufügen.
Weitere Anwendungsbeispiele
Open Standard Modules ™ (OSM)
Die Idee hinter OSM ist laut der Standardization Group for Embedded Technologies e.V. (SGeT) einen neuen, zukunftssicheren und vielseitigen Standard für kleine, kostengünstige eingebettete Computermodule zu schaffen. Die Open Standard Module ™ Spezifikation ermöglicht die Entwicklung, Produktion und den Vertrieb von Embedded-Modulen für die gängigsten MCU32-, ARM- und x86-Architekturen. IoT-Anwendungen können mit diesem Standard, die Vorteile des modularen Embedded Computing mit den steigenden Anforderungen an Kosten, Platz und Schnittstellen kombinieren.
Kundenspezifisches System in der Automatisierungstechnik
Bei einem Kunden von iesy stand eine Migration eines bestehendes Embedded-Linux-Systems in Yocto an. Gleichzeitig sollte eine neue (andere) Plattform als Basis entwickelt werden. In diesem Kundenprojekt setzte man sowohl auf eine x86- als auch eine ARM-Plattform. Ziel war es, beide Plattformen miteinander zu verbinden und ein gemeinsames Betriebssystem für alle Geräte bereitzustellen. Die Wahl fiel auf ein „Common Linux“ – ein einheitliches OS. Der Kunde entschied sich für Yocto Linux.
Das Projekt musste vor allem Herausforderungen in Sachen Sicherheit lösen. Geräte müssen abgesichert werden. Darum mussten Aspekte wie Chain of trust, Secure Boot, Verschlüsselung und Public Key Infrastruktur – eine zertifikatbasierte Absicherung – von Anfang an mitgedacht werden.
Yocto Linux kann Sie in vielen Bereichen unterstützen und bietet Ihnen dafür einen großen Funktionsumfang. Wer die Zeit investiert, keine Angst vor einer steilen Lernkurve hat und sich einarbeitet, für den wird sich Yocto Linux, ein standardisiertes Buildsystem, lohnen.
Wie wäre es, wenn iesy Yocto Linux für Ihr Embedded-Projekt einsetzt? Als Anbieter und Spezialist im Bereich Embedded Computing setzt iesy bereits seit vielen Jahren auf Yocto Linux. Seit 2017 verwenden wir Yocto für alle linuxbasierten Embedded Systeme, die wir entwickeln.
Mithilfe dieser und weiterer technologischen Möglichkeiten, einem eingespielten und erfahrenen Team sowie starken und zertifizierten Partnern, freuen wir uns sehr darauf, Ihre technischen Herausforderungen zu meistern. Schlussendlich wachsen wir gemeinsam an der im Projekt gesammelten Erfahrung.