Techtalk

Fachthema

Yocto vs. Buildroot - Wie baut man sich sein eigenes Linux?

System-Builder-Tools gibt es in verschiedensten Varianten und Ausprägungen. Zwei haben sich dabei in den letzten Jahren besonders hervor getan: Buildroot und Yocto.

Linux Pinguin Stofftier auf Platine
Mario Salhofer Portrait quer
von Mario Salhofer

System-Builder sind Programme, die Linux-System Entwickler dabei unterstützen, die notwendigen Embedded Software Pakete für das zu bauende System auszuwählen. Daraus entsteht eine Linux Distribution, also ein „Betriebssystemkern“ für die Zielplattform - in unserem Fall für ein Embedded Linux System. Dieser kann für den Anwender dann mit den unterschiedlichsten Programmen kombiniert werden.

Diese System-Builder-Tools gibt es in verschiedensten Varianten und Ausprägungen. Zwei haben sich dabei in den letzten Jahren besonders hervor getan: Buildroot und Yocto.

Beide Projekte sind Open-Source und ermöglichen es, Linux Systeme selbst zu bauen. Sie sind im Industriebereich weit verbreitet und gut dokumentiert. Bei der Verwendung von Buildroot oder Yocto bekommt man sogleich alles, was man für seine eigene kleine Embedded Linux Distribution benötigt:

  • ein Root-Dateisystem
  • eine Toolchain
  • den Linux-Kernel selbst
  • sowie einen Bootloader

Beide Embedded Software Programme verfügen mit jeweils ungefähr 2000 Softwarepaketen annähernd über die gleiche Qualität und Menge und können auf unterschiedliche Zielplattformen und Architekturen wie ARM oder i386 zusammengestellt werden. Mann spricht von der sogenannten „Cross-Plattform“.

Was unterscheidet Yocto und Buildroot?

Auf den ersten Blick recht ähnlich, unterscheiden sich beide bei genauerer Betrachtung aber in der Philosophie, wie Systeme gebaut werden:

Yocto legt äußersten Wert auf Flexibilität. Durch sein Multi Layer System können verschiedene Hersteller Ihre Software ins System einbringen, ohne dabei andere Schichten zu beeinflussen. Das ermöglicht zum Beispiel ein gezieltes Updaten von Softwareteilen auf einer Plattform. Außerdem können verschiedene Prozessorplattformen in einer Distribution durch das Schichtenmodell einfach gepflegt werden.

Diese Vorteile in der Flexibilität bringen natürlich auch eine gewisse Komplexität mit sich, die es zu verstehen und behandeln gilt. Denn dadurch wird auch die Distribution in der Regel auch etwas anspruchsvoller, zum Beispiel im Speicherverbrauch.

Yocto selbst ist ein Open Source-Projekt, wird aber von einem Advisory Board gelenkt, hinter dem große Firmen wie Intel, Texas Instruments, NXP, Renesas oder auch Comcast als Sponsoren stehen.

Buildroot steht für Einfachheit und geringen Ressourcenverbrauch. Einfach gilt vor allem für die benutzerfreundliche Bedienung. So werden zum Beispiel Abhängigkeiten von Software-Paketen automatisch erkannt und dementsprechend richtig ausgewählt.

Die kleinstmögliche Installation liegt bei schlanken 2,2 MB. Die zentralen Softwareteile von Buildroot sind mit ca. 1000 Zeilen Code ungefähr den Faktor 60 kleiner als das bei Yocto der Fall ist.

Darüber hinaus wird das Projekt stark von der Community getrieben, wobei es auch größere Sponsoren wie Google gibt, die immer wieder Events wie Entwickler-Treffen unterstützen.

Diagramm Yocto Buildroot

Womit arbeitet Ginzinger?

Ginzinger verwendet System-Builder vor allem dazu, um einen großen Teil der Softwarekomponenten für GELin zu erzeugen. Als hauseigene Embedded Linux Distribution existiert GELin bei Ginzinger electronic systems seit über zehn Jahren in der Embedded Software Entwicklung. Softwarekomponenten werden für genau eine Prozessorarchitektur gebaut - zum Beispiel die i.MX6 Prozessorreihe von NXP.

 GELin bildet eine anwenderfreundliche Abstraktionsschicht, um die Komplexität des System-Builders und der Softwarekomponenten einfach handhabbar zu gestalten.

Ginzinger setzt auf Buildroot als Werkzeug. Die zentrale Pflege, ohne die bei Yocto üblichen Layer, vereinfacht die Kommunikation mit der Community und die Mitarbeit. Die einfachen, klaren und flachen Strukturen sind gut verständlich, ressourcenschonend und relativ rasch beherrschbar.

Buildroot erlaubt es Ginzinger aufgrund seiner schlanken Struktur, sich voll auf die Implementierung hochoptimierter Lösungen für die Endkunden zu konzentrieren. Zusammen mit dem jahrelangen Entwicklungs-Know How bedeutet dies für den Endkunden einen enormen Vorteil.

Fragen zu maßgeschneiderter Elektronik?