DESIGNPRAXIS D&E - Der Umstieg auf Yocto

Einführung in das Yocto-Project

17. Februar 2016, 9:42 Uhr | von Michael Röder und Martin Hecht
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Aufbau von Yocto

Yocto ist keine Embedded-Linux-Distribution, sondern ein Hilfsmittel, um eine eigene Distribution zu erstellen. Es ist im Grunde eine Kombination mehrerer unabhängig gepflegter Projekte und besteht aus den drei Komponenten Referenz-Distribution, Metadaten und Build-Tools. Die Referenz-Distribution stellt den Userspace des Linuxsystems dar. Der zweite Bestandteil ist der einzige, der durch den Benutzer angepasst und verändert wird: die Metadaten, die man vereinfacht als »Konfiguration« der Distribution ansehen kann. Unter Build-Tools werden alle Scripts und Tools zusammengefasst, die verwendet werden, um die Distribution zu konfigurieren, zu übersetzen und zusammenzustellen.

Distribution

Yocto bringt eine eigene Referenzdistribution namens Poky mit, unterstützt aber auch die Verwendung anderer Distributionen, beispielsweise Angström. Außerdem ist die Erstellung eigener Distributionen möglich, entweder von Grund auf oder als Erweiterung von Poky – ein Feature, das gerne von kommerziellen Linux-Anbietern genutzt wird, die auf Yocto-basierende Systeme anbieten, wie WindRiver oder Mentor Graphics.

Poky selbst wird in unterschiedlichen Ausbaustufen angeboten. Poky-tiny ist beispielsweise ein minimalistisches System mit geringem Ressourcen-Bedarf. Für die meisten Systeme ist eine der Poky-Varianten völlig ausreichend.

Metadaten – Konfiguration der Distribution

Wie die meisten anderen Build-Systeme arbeitet auch Yocto paketorientiert. Das Gesamtsystem wird also aus einzelnen Paketen »zusammengebaut«, die Funktionalitäten wie etwa Kernel, Bootloader, Grafik-Frameworks oder auch nur eine bash-shell zur Verfügung stellen. Dazu enthält jedes Paket neben dem Sourcecode und den Konfigurationsdateien auch ein »Rezept«, das angibt, wie das Paket übersetzt, konfiguriert und installiert werden soll. Auch Abhängigkeiten von Paketen zueinander für die korrekte Funktionsweise oder Übersetzung sind darin angegeben. Lose Sammlungen unzähliger Pakete lassen sich nur schwer verwalten und managen, weswegen Yocto das Konzept von »Layern« einführt, deren Namen üblicherweise mit »meta-« beginnen.

passend zum Thema

Bild 1: Maschinen und Rezepte werden in Yocto durch hierarchisch aufeinander aufbauende Layers verwaltet
Bild 1: Maschinen und Rezepte werden in Yocto durch hierarchisch aufeinander aufbauende Layers verwaltet
© Avnet Memec Silica

Grundsätzlich fassen diese Layer Gleichartiges zusammen, beispielsweise alle Pakete oder Konfigurationsdaten, die einem bestimmten Zweck dienen. So stellt »meta-xilinx« die Hardware-Unterstützung für Xilinx-SoCs zur Verfügung, während »meta-browser« unterschiedliche Webbrowser anbietet. Unter http://layers.openembedded.org besteht die Möglichkeit zur interaktiven Prüfung, welche Yocto-Schichtens existieren und welche Funktionalität durch sie zur Verfügung gestellt wird. Üblicherweise setzen Schichten aufeinander auf, das heißt, jede Schicht stellt Funktionalität zur Verfügung, ist aber auf andere Layer angewiesen, um selbst zu funktionieren. Bild 1 zeigt eine typische Schichten-Konfiguration.

Alle für ein System benötigen Schichten werden in der Konfigurationsdatei »layers.conf« in Yocto aufgeführt. Nun können benötigte, durch die jeweiligen Layer zur Verfügung gestellte Pakete mit in den Build aufgenommen werden. Zusätzlich muss in »local.conf« noch eine durch ein Layer angebotene Target-Plattform eingetragen werden. Dadurch erhält das Build-System alle Informationen, um eine korrekt übersetzte und konfigurierte Distribution für das jeweilige Zielsystem zu erstellen.


  1. Einführung in das Yocto-Project
  2. Aufbau von Yocto
  3. Build-Tools

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Avnet Silica