Zum Inhalt springen

Embedded Linux

Was ist das Yocto Project?

Das Yocto Project ist ein Open-Source-Build-System für maßgeschneiderte Linux-Distributionen auf Embedded- und IoT-Geräten jeder Prozessorarchitektur. Es gehört weltweit zu den am häufigsten eingesetzten Systemen für industrielles Embedded Linux.

Ein Build-System, keine Distribution

Das Yocto Project ist kein fertiges Linux zum Herunterladen und Flashen. Es kompiliert ein Image genau für Hardware und Produkt: Kernel, Bootloader, C-Bibliothek und ausgewählte Pakete. Das gemeinschaftliche Open-Source-Projekt der Linux Foundation wird von vielen Unternehmen unterstützt und unterstützt Arm, x86, RISC-V, PowerPC, MIPS und weitere Architekturen.

  • Reproduzierbares Image aus Quellcode für Ihr Board, kein generisches Image
  • Jede Architektur: Arm, x86-64, RISC-V, PowerPC, MIPS
  • Open Source, herstellerneutral, bei der Linux Foundation
recipe + bitbake
# recipes-example/hello/hello_1.0.bb — a BitBake recipe
SUMMARY = "A tiny example program"
LICENSE = "MIT"
SRC_URI = "git://example.com/hello.git;branch=main"
inherit cmake
$ bitbake core-image-minimal
… parsing recipes, fetching sources, cross-compiling
✓ core-image-minimal-qemux86-64.rootfs.wic.bz2
Ein Rezept beschreibt eine Komponente; BitBake baut das gesamte Image aus Ihren Layern.

So funktioniert es: BitBake, Rezepte und Layer

Yocto nutzt das OpenEmbedded-Build-System. BitBake liest Rezepte (.bb), die Download, Konfiguration, Kompilierung und Paketierung einer Software beschreiben. Rezepte liegen in kombinierbaren Layern: BSP für das Board, Distribution für Richtlinien, eigener Layer für die Anwendung. Poky ist die Referenzdistribution.

  • Rezept (.bb): Quellcode, Lizenz, Build und Paketierung
  • Layer: Sammlung von Rezepten und Konfigurationen (meta-*)
  • BitBake: Abhängigkeiten, Cross-Kompilierung und sstate-Cache
  • Poky: Referenzdistribution und Ausgangspunkt

Warum Teams Yocto verwenden

Ein Produkt mit zehn oder fünfzehn Jahren Lebensdauer benötigt volle Kontrolle über Linux: Pakete, Lizenzen, Sicherheitsupdates und Reproduzierbarkeit aus Quellcode. Yocto bietet diese Kontrolle und wurde deshalb zum De-facto-Standard für professionelles Embedded Linux.

  • Volle Kontrolle über Größe, Pakete und Kernel-Konfiguration
  • Reproduzierbare Builds, auch Jahre später
  • Lizenzkonformität und Software-Stückliste (SBOM)
  • Langfristige Wartung und Sicherheitsupdates (CVE-Verfolgung)

Wo Yocto eingesetzt wird

Yocto ist architekturunabhängig und produktionsreif. Es wird weltweit in nahezu jeder Branche eingesetzt, vom Router über Medizingeräte bis zum Infotainment im Auto.

  • Automobilindustrie und Elektromobilität
  • Industrieautomation und IoT-Gateways
  • Netzwerke und Telekommunikation (Router, 5G)
  • Medizingeräte
  • Luftfahrt und Verteidigung
  • Unterhaltungselektronik und Smart Home
  • Energie, Messtechnik und Versorgung
  • Robotik und Drohnen

Der Kompromiss: Leistung und Komplexität

Diese Kontrolle hat ihren Preis: steile Lernkurve, stundenlange Builds und schwer verständliche BitBake-Fehler mit langen Logs. Die Diagnose erfordert Wissen über Task-Logs, Layer, Konfiguration und bitbake -e.

Wo Yocman hilft

Yocman ist KI-Agent und Werkzeugkasten im Terminal für Ihre realen Yocto Project Builds. Neben Fehlerkorrekturen hilft es, Images zu verstehen, zu prüfen und auszuliefern. Jede Analyse liest vorhandene BitBake-Dateien: Fakten kommen aus dem Build.

audit
Ausliefern oder nicht? Ein bewerteter Bericht zu CVEs, Geheimnissen, Konten, Diensten, Kernel-Härtung, Lizenzen und SPDX-SBOM als Build-Nachweise für den CRA.
cve · secrets
Noch ungepatchte CVEs im ausgelieferten Image und private Schlüssel oder Token im rootfs: Fundorte werden gemeldet, Inhalte nie angezeigt.
why · size
Warum ist dieses Paket im Image? Was belegt Platz? size diff vergleicht zwei Builds paketweise.
buildtime · sstate
Build-Zeit, effektive Parallelität und bei jedem Build neu kompilierte Rezepte.
init · build · flash
kas-Projekt für ein geprüftes Board starten, mit Live-Fortschritt bauen und Karte mit verpflichtender Geräteprüfung flashen.
fix · explain
Fehlgeschlagenen Task diagnostizieren und Patch für Ihren Layer erhalten oder nur die Diagnose; Änderungen erst nach Freigabe.
  • Arbeitet auf dem Build-Verzeichnis statt dem Quellbaum: --build-dir akzeptiert auch kopierte oder archivierte Ergebnisse außerhalb des Checkouts.
  • Eine Installation für alle Builds und Yocto-Bäume: Ziel mit --build-dir wechseln, Builds mit size diff oder cve diff vergleichen.
  • Ihr Build bleibt lokal; nur maskierte Auszüge erreichen die KI. Patches betreffen Ihre Layer, niemals Upstream.

Häufig gestellte Fragen

Ist das Yocto Project eine Linux-Distribution?
Nein. Es erzeugt eine angepasste Linux-Distribution für Ihre Hardware. Poky ist die Referenzdistribution als anpassbarer Ausgangspunkt.
Was unterscheidet Yocto von OpenEmbedded?
OpenEmbedded liefert Build-System und gemeinsame Rezepte. Das Yocto Project ist das Dachprojekt der Linux Foundation: Es nutzt OpenEmbedded, ergänzt Poky, Releases, Werkzeuge und Tests und koordiniert das Ökosystem.
Was ist BitBake?
BitBake führt die Build-Tasks aus: Rezepte lesen, Abhängigkeiten auflösen, Quellen holen, konfigurieren, kompilieren und Pakete für das Zielsystem erstellen.
Was ist ein Layer in Yocto?
Ein Layer (meta-*-Verzeichnis) bündelt Rezepte und Konfiguration. Layer trennen Board-Unterstützung, Distributionsrichtlinien und Anwendung und machen sie wiederverwendbar.
Yocto oder Buildroot?
Beide bauen Embedded Linux aus Quellcode. Buildroot ist für kleine feste Images einfacher und schneller; Yocto ist komplexer, skaliert aber besser für langlebige Produkte mit Paketverwaltung sowie strikten Lizenz- und Update-Anforderungen.
Ist das Yocto Project kostenlos?
Ja. Es ist Open Source und kostenlos nutzbar. Yocto Project ist eine Marke der Linux Foundation.

Offizielle Ressourcen

Yocto Project® und das Logo sind eingetragene Marken der Linux Foundation. Yocman ist unabhängig und weder mit dem Yocto Project noch mit der Linux Foundation verbunden, gesponsert oder von diesen unterstützt.