22. Juni 2021 von Davide Beretta
Warum das «Yocto Projekt» eine Power-Lösung ist
Doch was genau verbirgt sich hinter dem Namen «Yocto Projekt»?
Oftmals wird diese Frage so beantwortet, dass es sich hierbei «nur» um eine Embedded-Linux-Distribution handelt – aber nein, falsche Antwort! Das «Yocto Projekt» ist keine reine Embedded-Linux-Distribution, sondern eine voll konfigurierbare Toolchain, mit der Sie eine eigene Distribution erstellen können: Und zwar eine massgeschneiderte, die auf Ihr eigenes Gerät zugeschnitten ist und perfekt zu Ihren Bedürfnissen passt.
Gehen wir dem Thema noch etwas weiter auf den Grund.
Überblick zum «Yocto Projekt»
Das Projekt wurde offiziell 2011 von der Linux Foundation ins Leben gerufen, mit dem Ziel, den Softwareentwicklungsprozess für eingebettete Linux-Distributionen zu verbessern. Ja, es ist tatsächlich dazu da, das Leben von Softwareentwicklern einfacher zu machen.
Da die Kernfunktionen von Yocto vom Open Embedded Framework übernommen wurden, kann man sagen, dass es auf den Säulen von Open Embedded basiert. Es wird von allen grossen Technologiefirmen (Intel, Arm, Xilinx, NXP, Facebook, AWS, Microsoft, ...) unterstützt, wodurch der stetige Beitrag zum eigenen Fortschritt und zur Weiterentwicklung gewährleistet ist, was es zu einem sehr attraktiven Produkt macht.
Major-Releases finden etwa alle 6 Monate statt – bisher sind es 21, einschliesslich der frisch veröffentlichten 3.3 Hardknott vom April 2021.
So geht’s: Die drei Konzepte
Wenn Sie in die Yocto-Umgebung eintauchen, werden Sie sicherlich auf «Rezepte», «Meta-Layer» und «Bitbake» stossen. Darum geht es in diesen drei Konzepten:
- «Rezepte»: diese ".bb"-Dateien sind fundamentale Bestandteile der Yocto-Umgebung. Jedes Softwarepaket, das vom Build-System gebaut werden soll, benötigt eines, um sich zu definieren. Sogenannte «Recipes» enthalten Informationen über die Quell-URL, Abhängigkeiten, Kompilier- und Installationsoptionen.
- «Meta-Layer»: Sie sind die grundlegende Einheit der geschichteten Infrastruktur des Projekts und gruppieren verwandte Funktionalitäten (Rezepte und relative Konfigurationsdateien) in separate Bündel. Bei Bedarf können Sie schrittweise Ihre eigene benutzerdefinierte Meta-Schicht zu Ihrem Projekt hinzufügen.
- «Bitbake»: Hier geht es um ein Build-Tool wie «GNU make», das als eigentlicher Motor von Yocto betrachtet werden kann. Es parst alle Rezepte und plant die Kompilieraufgaben.
Am Ende ist es ganz einfach, oder? Sie müssen nur die Rezepte lesen, alle Zutaten holen und schichten, den Ofen anheizen und das Bitbake kann beginnen!
Nun, warum Yocto?
Die Wahl der richtigen Linux-Distribution für Ihr Embedded-Gerät ist eine heikle Aufgabe. Doch Yocto bietet ein interessantes Gesamtpaket. Und zwar aus folgenden Gründen:
- Die Toolchain ist zu 100% anpassbar, so dass Sie eine Linux-Distribution erstellen können, die spezifisch zu Ihrem Projekt passt und die bestmögliche Optimierung von Ressourcen und Leistung gewährleistet.
- Dadurch, dass die Lösung von mehreren Siliziumherstellern unterstützt wird, ist sie plattformübergreifendend und hardwareunabhängig. Dies erlaubt Ihnen, den Mikroprozessor zu wählen, der am besten zu Ihrem Projekt passt.
- Sie können von einer der weltweit grössten Communities profitieren, die Yocto jederzeit auf dem neuesten Stand der Technik hält.
- Es ist ein Open-Source-Projekt und somit frei von kostenpflichtigen Lizenzen.
Was ist meine persönliche Rolle in diesem Zusammenhang?
Der Umgang mit Yocto kann zu einer Knacknuss werden, wenn man nicht mit der richtigen Einstellung und ausreichend Vorwissen an die Sache herangeht. Fest steht, dass das «Yocto Projekt» sehr umfangreich ist und sowohl ungewollte Abhängigkeiten als auch Nebeneffekte verbergen kann, derer man sich bei der Auswahl seines Lösungswegs gar nicht bewusst ist. Es kommt häufig vor, dass Sie nicht die nötige Zeit oder Kompetenz haben, um all diese Aspekte zu analysieren, was das Risiko mit sich bringt, in irgendeiner Phase des Projekts stecken zu bleiben.
Keine Sorge, wenn Ihnen das alles Kopfzerbrechen bereitet, da helfe ich Ihnen als Softwareentwickler gerne weiter! Das adesso-Team ist dafür da, Sie durch den gesamten Lebenszyklus Ihres Projekts zu begleiten und den Weg zum Ziel so reibungslos wie möglich zu gestalten: Wir können Sie von Anfang an bei der Auswahl der Hardware-Plattform und der Evaluierung der Board-Support-Package(BSP)-Fähigkeiten unterstützen, Ihnen bei der Erstellung und Anpassung der Linux-Distribution helfen, um die beste Performance und den besten Ressourcenverbrauch zu erzielen, Ihnen bei der Erstellung des SDK (Software Development Kit) für Ihr Team behilflich sein und – last but not least – können wir Ihre High-End-Anwendung auf dem Zielgerät entwickeln, migrieren und debuggen.
Mehr Informationen zu Embedded Software Lösungen inklusive einem One Pager zum Yocto Projekt finden Sie hier.