yocto projekt bitbake openembedded

Das Yocto Project® – Ein umfassender Überblick

4-Tage-Kurs

Der Kursinhalt kann auf Ihre Bedürfnisse und Ziele zugeschnitten werden, und wenn es die Zeit erlaubt, kann während der Schulung auch eine Beratung erfolgen. Bitte klicken Sie auf die öffentliche Registerkarte, um die öffentlichen Sitzungen zu sehen.

Privat online
Vor Ort in Ihrem Unternehmen
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Viertel wählen Quartal Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
4. Quartal 2026 privat remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 (noch zu definieren) Jan 01, 2027

Inhalt wie unten beschrieben. Ab drei Teilnehmern aus demselben Unternehmen, schauen Sie sich bitte unsere privaten Sitzungen an.

Öffentlich online
Öffentlicher Workshop im Klassenzimmer
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Datum auswählen Datum Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
13. Oktober 2026 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 12. Oktober 2026
24. November 2026 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 10. November 2026
15. Dezember 2026 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 01. Dezember 2026

Sie erhalten ein viel tieferes Verständnis des Yocto Project® und seiner Anwendung.

Ziele des Kurses

  • Wir geben einen umfassenden Überblick über das Yocto Project® und versuchen, dessen Möglichkeiten aufzuzeigen sowie zu verdeutlichen, wie die einzelnen Teile zusammenpassen.
  • Wir werden unter anderem sehen, wie ein BSP-/Framework-Betreuer das Yocto Project® nutzt, aber auch wie Entwickler, die vielleicht gar nicht wissen wollen oder müssen, dass sie auf dem Yocto Project® arbeiten.
  • Es werden einige Hinweise gegeben, wie ein "professionelles" Setup erreicht werden kann.

Beschreibung

Dieses viertägige Training kombiniert Theorie mit praktischen Übungen zur Einführung in das Yocto Project®.

Sie beantwortet häufig gestellte Fragen wie:

  • Was ist das Yocto Project® und was ist der OpenEmbedded/Yocto Project® Workflow?
  • Was ist BitBake?
  • Was sind Layers?
  • Ist es wirklich notwendig, für jedes Embedded-Linux-Projekt eine andere Version der Toolchain, der Bibliotheken oder der Pakete zu verwenden und darüber hinaus einen anderen Arbeitsablauf zu befolgen?
  • Können Sie sicherstellen, dass die Entwicklungsumgebung für alle Entwickler/Zulieferer identisch ist und dass Sie auch in 10+ Jahren noch identische Builds wie heute erstellen können?
  • Kann das Yocto Project® dabei helfen, herauszufinden, unter welchen Softwarelizenzen die von Ihnen verwendeten Pakete lizenziert sind?
  • ... und vieles mehr

Die praktischen Übungen finden auf dem Host, in einem Docker-Container und auf der Zielhardware (z. B. i.mx8) statt. Der Docker-Container basiert auf Ubuntu, wobei alle Abhängigkeiten des Yocto Project® bereits vorinstalliert sind. Nach dem Workshop können Sie den Docker-Container sowie Beispiele herunterladen, um die Kursinhalte selbstständig weiterzuverarbeiten. Bitte beachten Sie, dass dies kein Einführungskurs in Embedded ist, wie wir ihn hier anbieten. Sie sollten bereits wissen, wie Embedded funktioniert und wie man den Linux-Kernel und Kernel-Treiber konfiguriert/kompiliert, um bestimmten fortgeschrittenen Kapiteln folgen zu können.

Voraussetzungen

  • Grundlegende Vertrautheit mit der Verwendung eines Linux-Systems (z. B. Ubuntu) als Endbenutzer im Benutzerbereich
  • Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
  • Grundkenntnisse in der Programmierung von Benutzer- und Kernelbereich unter Linux
  • Fortgeschrittene C-Programmierkenntnisse
  • Idealerweise haben Sie grundlegende Erfahrungen mit Embedded Linux (Kernel, Userspace, Root-Dateisystem, Tools), um an diesem Workshop teilzunehmen. Sie sollten "Embedded Linux - Von der Systemarchitektur bis zur Echtzeit (5 Tage)" oder "Einführung in Embedded Linux in Theorie und Praxis - ein Crashkurs (3 Tage)" besucht haben. (sehr empfehlenswert)
  • Es sei denn, Sie sind bereits mit dem in diesen Kursen behandelten Stoff vertraut.
  • Es könnte hilfreich sein, wenn Sie "Embedded Linux Kernel Internals and Device Drivers (5 days)" besucht haben, aber das ist keine Voraussetzung. Es reicht aus, wenn Sie wissen, wie man den Linux-Kernel, In/Out-of-Tree-Kernel-Treiber und den Flattened Device Tree (fdt) erstellt, um den Kapiteln über das Board Support Package (BSP) und den Kernel dieses Workshops zu folgen.
  • Die oben genannten Veranstaltungen können vor Ort oder online durchgeführt werden. Gerne können Sie hier nach Terminen und Preisen fragen.

Kurs-Fahrplan

Wer sollte teilnehmen?

Sie nutzen bereits Linux für Ihre Projekte und haben wahrscheinlich schon vom Yocto Project® gehört, haben sich aber noch nicht getraut, sich näher damit zu befassen, oder hatten Schwierigkeiten bei der Anwendung. Sie wissen nicht, ob und wie sich Ihr täglicher Arbeitsablauf in das Yocto Project® integrieren lässt, und empfinden das Yocto Project® generell als ziemlich kompliziert. Wozu brauchen wir das alles, wo doch bisher alles (angeblich) viel einfacher war? Nach dem Kurs sollten Sie entscheiden können, ob Sie das Yocto Project® benötigen oder nicht. Der Workshop richtet sich an Softwareentwickler und Systemingenieure, Tester, Administratoren, Ingenieure und andere am Yocto Project® Interessierte mit fundierten Kenntnissen in Embedded .

Gliederung des Kurses

Tag 1

Einführung

  • Geschichte von Unix/Linux | Lizenzierung | Standards | Unix-Philosophie

Embedded Besonderheiten

  • Linux auf dem Desktop im Vergleich zu Linux in einem eingebetteten System | Cross-/Native Toolchains | Vorgefertigte Toolchains | Build-Systeme | C-Bibliotheken |...

Beurteilungsausschuss

  • Wie bootet Linux auf einem PC und auf dem Evaluation Board? | Sehen Sie es booten

Wie Sie Teil unserer Yocto Project® Community werden können (optional)

  • Erste Schritte | Kontaktaufnahme | Mitmachen | Mitwirken | Soziale Medien | Veranstaltungen

Yocto Einführung

  • Was ist Linux? | Was ist eine Linux-Distribution? | Was ist Yocto? | Was ist das Yocto Project®? (Funktionen/Herausforderungen) | Einige vom Yocto Project® bereitgestellte/genutzte Tools (Poky | BitBake | OpenEmbedded-Core | Metadaten) | Warum sollte man das Yocto Project® nutzen?

Entwicklungsumgebung

  • Was wird für einen Yocto Project® Build benötigt? | Layer-Versionen/Abhängigkeiten | Host-Abhängigkeiten | Konfigurationsdateien | Host/Kernel-Abhängigkeiten

Der Yocto Project® Arbeitsablauf

  • Intro
  • Arbeitsablauf | OpenEmbedded Architektur
  • Konfiguration (Benutzer) | Metadaten (Rezepte) | Maschine (BSP) | Distribution (Policy)
  • Funktionen | Rezeptversionierung | Ebenen
  • Quellen
  • Abrufen von Quellen | Patching | Konfigurieren/Kompilieren/Staging | SSTATE | Pseudo | recipetool | Beispiele von Rezepten | PACKAGECONFIG | Pakete und ihr Inhalt | Output-Analyse/Verpackung | Wie erzeugt man Images | SDK-Erstellung | Tasks
  • Anpassung von Images (Intro | local.conf | IMAGE_FEATURES | benutzerdefinierte image Rezepte (.bb Dateien) | benutzerdefinierte packagegroups)
Tag 2

BitBake

  • Geschichte
  • Syntax (Variablenerweiterung) | Variable Zuweisung | Prepend/Append | Remove | Variable Flags | Bedingte Syntax: OVERRIDES)
  • BitBake Fehlersuche (debug level | Rezepte finden/images/packagegroups | BitBake-Umgebung/tasks/logging | force build/Erzwingen Sie den Bau eines bestimmten task | cleansstate | Ungültig machen der stamp | devshell | ⁣⁣Abhängigkeiten | packages | alle BitBake-Instanzen beenden | BitBake grafischer Wrapper)
  • Cleaning (Speicherplatz gewinnen | rebuild)

Layers

  • Intro | bitbake-layers Werkzeug | dynamische Schichten

Board Support Package (BSP)

  • Einführung | Arbeitsablauf bei der Systementwicklung | Leitfaden für BSP-Entwickler | Erstellung von BSPs | Kernel-Patches außerhalb des Hauptzweigs

Kernel

  • Intro | Arbeitsablauf der Systementwicklung | Kernel Development Manual (defconfig | defconfig + Konfigurationsfragment | in tree kmod | out of tree kmod | fdt klassisch | fdt mit devicetree.bbclass | ...)
Tag 3

Software-Entwicklungskit

  • Intro | cross-development Toolchain | Sysroot | BBCLASSEXTEND | Multilib | Der QEMU-Emulator
  • Installation von SDKs und Toolchains | Cross-Toolchains und SDKs (Einführung | Verwendung einer Cross-Toolchain | Erstellung einer Cross-Entwicklungs-Toolchain | Funktionen von Cross-Toolchains)
  • Erstellen eines plattformübergreifenden Toolchain-Installationsprogramms | Verwendung des Standard-SDK (Warum das Standard-SDK verwenden und was beinhaltet es? | Erstellen eines SDK-Installationsprogramms | Installieren des Standard-SDK | Verwendung des Standard-SDK)
  • Cross-Toolchain + Makefile | Cross-Toolchain + Autotools | Autotools-Bibliothek + App, Rezepte (Cross-Toolchain + Autotools-Bibliothek |.so-Namenskonventionen | Was gehört wo hin? | Build-Container | Rezept für Autotools-Bibliothek | App, die Autotools-Bibliothek nutzt: Rezept | App, die Autotools-Bibliothek nutzt: Abhängigkeiten)
  • Verwendung des Extensible SDK (Warum das Extensible SDK verwenden und was beinhaltet es? | Erstellen eines SDK-Installationsprogramms | Installieren des Extensible SDK)

Bibliotheken

  • Einführung | Softwareentwickler | Yocto-Version (.so-Namenskonventionen | Was gehört wo hin?)
  • .so nur |.so und .a? (Was kommt wo hin?)
  • .a nur (.a nicht erstellt | nichts im SDK | Lösung 1 | Lösung 2)

Abhängigkeiten

  • Abhängigkeiten bei der Erstellung (DEPENDS | PROVIDES)
  • Laufzeitabhängigkeiten (RDEPENDS | shlibdeps | pcdeps | depchains)
  • Aufgabenübergreifende Abhängigkeiten (RDEPENDS (falsch) | DEPENDS (falsch) | Aufgabenübergreifende Abhängigkeiten)

VS Code

  • Einführung | VS Code: Erweiterte Unterstützung für Yocto Project und die Sprache BitBake
  • Remote-SSH-Zugriff (vscode-machine: ssh keygen | vscode-machine: ssh-copy-id auf den Jumphost | vscode-machine: ~/.ssh/config für den Build-Host | vscode-machine: ssh-copy-id auf den Build-Host)
  • VS Code-Einrichtung (vscode-machine: Zugriff auf build-host | build-host: /workdir/.devcontainer.json | build-host: local.conf-Add-on | build-host: local.conf, .devcontainer.json | build-host: add meta-selftest | build-host: open cmake-example.bb | build-host: context-sensitive help | build-host: building recipes | build-host: deploy kernel, dtb, image | build-host : devtool workspace | build-host: devtool build deploy | Build-Host: Devtool debug)
Tag 4

Debugging im Userspace

  • Einführung | Was ist ein Debugger?
  • gdb (Ziel: gdb | Ziel gdb: kein GUI-Frontend | gdb-Fern-Debugging | gdb-Fern-Debugging: ohne grafische Benutzeroberfläche)

Profilierung/Verfolgung

  • Einleitung | Profiling vs. Tracing
  • Yocto-Tracing-Tools (perf | gprof | gcov | strace | ftrace | kernelshark | systemtap | LTTng | LTTng 2.0 | LTTng-Kernel | LTTng-Kernel-Trace)
  • top | htop | powertop
  • crash

Paket-Management

  • SW-Update (Software-Update mit Paketmanager | Software-Update: Früher/heute | Teilweises Software-Update)
  • Warum Pakete? (Was ist Linux? | Was ist eine Linux-Distribution?)
  • Arbeiten mit Paketen (Paketverzeichnis, Webserver | Build-Container | Image- und Paketverwaltung | Neues Paket + Paketverzeichnis | Webserver | Image- und Paket-Feed | IPK | Pakete prüfen)

Lizenzvergabe

  • Einleitung | Freie/Open-Source-Software | Freie Software vor 1983 (Geschichte der freien Software vor 1983) | GPL (Stallman (FSF) GPL nach 1983 | Stallman (FSF) GPL 3) | Open Source nach 1997 | Open-Source-Initiative 1998 | Open Source vs. Freie Software | Zusammenfassung der Lizenzen
  • Lizenzierung | Container erstellen | Image erstellen | Benutzerdefinierte Lizenz hinzufügen | Layer erstellen/hinzufügen | Kommerzielle Lizenz hinzufügen | Firmware-Lizenz | Einhaltung von Open-Source-Lizenzen | Wissenswertes | Siehe auch

Devtool

  • Intro | Rezept hinzufügen/Build/Deploy | Erstellen/Hinzufügen layer | Finish | Ändern/Aktualisieren-Rezept | Bauen/Ausführen | Bauen: Image

Kursbroschüre (PDF)

Was die Kunden sagen

Reliable Embedded Systems
Überblick über den Datenschutz

Diese Website verwendet Cookies, damit wir Ihnen die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in Ihrem Browser gespeichert und dienen dazu, Sie wiederzuerkennen, wenn Sie auf unsere Website zurückkehren, und unserem Team zu helfen, zu verstehen, welche Bereiche der Website Sie am interessantesten und nützlichsten finden.