yocto projekt bitbake openembedded

Das Yocto Project® - Ein gründlicher Überblick

4-Tage-Kurs

Der Kursinhalt kann auf Ihre Bedürfnisse und Ziele zugeschnitten werden. Wenn es die Zeit erlaubt, kann auch eine Beratung während des Kurses stattfinden. 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
3. Quartal 2024 privat remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 (noch zu definieren) 01. Oktober 2024
4. Quartal 2024 privat remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 (noch zu definieren) Jan 01, 2025

Inhalt wie unten beschrieben. Ab drei Teilnehmern aus demselben Unternehmen besuchen Sie bitte unsere privaten Sitzungen.

Ö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
Aug 06, 2024 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 26. Juli 2024
03. September 2024 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 23. August 2024
10. September 2024 öffentlich Klassenzimmer München Deutsch/Englisch (noch zu definieren) UTC+2 16. August 2024
08. Oktober 2024 öffentlich Klassenzimmer Essen Deutsch/Englisch (noch zu definieren) UTC+2 06. September 2024
15. Oktober 2024 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 04. Oktober 2024
12. November 2024 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 01. November 2024
19. November 2024 öffentlich Klassenzimmer München Deutsch/Englisch (noch zu definieren) UTC+2 25. Oktober 2024
10. Dezember 2024 öffentlich Klassenzimmer Mainz Deutsch UTC+2 29. November 2024

Sie werden das Yocto Project® besser verstehen und wissen, wie man es benutzt.

Ziele des Kurses

  • Wir werden einen gründlichen Überblick über das Yocto Project® geben und versuchen zu zeigen, welche Möglichkeiten es bietet und wie die Puzzleteile zusammenpassen.
  • Wir werden unter anderem sehen, wie ein BSP-/Framework-Maintainer das Yocto Project® nutzen kann, aber auch Entwickler, die vielleicht gar nicht wissen wollen/müssen, dass sie unter 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/Bibliotheken/Pakete zu verwenden und obendrein 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

Praktische Übungen werden auf dem Host, in einem Docker-Container und auf der Zielhardware (z.B. i.mx6) durchgeführt. Der Docker-Container basiert auf Ubuntu mit allen Abhängigkeiten, die das Yocto Project® benötigt, vorinstalliert. Nach dem Workshop können Sie den Docker-Container und Beispiele herunterladen, um selbst mit dem Kursmaterial zu arbeiten. Bitte beachten Sie, dass dies kein Einführungskurs in Embedded Linux ist, wie wir ihn hier anbieten. Sie sollten bereits wissen, wie Embedded Linux funktioniert und wie man den Linux-Kernel und Kernel-Treiber konfiguriert/erstellt, 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 sowohl vor Ort als auch online durchgeführt werden. Fragen Sie hier nach Terminen und Preisen.

Kurs-Fahrplan

Wer sollte teilnehmen?

Sie setzen bereits Linux für Ihre Projekte ein und haben wahrscheinlich schon vom Yocto Project® gehört, sich aber nicht getraut, es genauer unter die Lupe zu nehmen, oder hatten Schwierigkeiten, es zu benutzen. Sie wissen nicht, ob und wie sich Ihr täglicher Arbeitsablauf im Yocto Project® unterbringen lässt und finden das Yocto Project® generell eher kompliziert. Wozu brauchen wir das alles, wo doch bisher alles (vermeintlich) viel einfacher war? Nach dem Kurs sollten Sie in der Lage sein zu entscheiden, ob Sie das Yocto Project® brauchen oder nicht. Der Workshop richtet sich an Software-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Ingenieure und andere am Yocto Project® Interessierte mit soliden Kenntnissen von Embedded Linux.

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

Yocto Einführung

  • Was ist Linux? | Was ist eine Linux-Distribution? | Was ist Yocto? | Was ist das Yocto Project®? (Funktionen/Herausforderungen) | Einige Tools, die vom Yocto Project® gehostet/verwendet werden (Poky | BitBake | OpenEmbedded-Core | Metadata) | Warum sollten Sie das Yocto Project® verwenden?

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

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

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 Paketgruppen)
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 | Pakete | alle BitBake-Instanzen beenden | BitBake grafischer Wrapper)
  • Cleaning (Speicherplatz gewinnen | rebuild)

Layers

  • Intro | bitbake-layers Werkzeug | dynamic layers

Board Support Package (BSP)

  • Intro | Arbeitsablauf der Systementwicklung | BSP Developer’s Guide (bsp-tool - portiert auf neuere Poky-Versionen) | BSP-Erstellung | Nicht-Mainline-Kernel-Patches

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 | SDK-Eclipse Yocto Project® Plug-in (veraltet) | Userspace-Tools | Installation von SDKs und Toolchains
  • Cross-Toolchains/Software-Entwicklungskits
    • Erstellung eines Cross-Toolchain-Installationsprogramms
    • Verwendung des Standard Software Development Kit (Cross-Toolchain + Makefile/Autotools/Autotools lib + App | recipes)
    • Aufbau/Verwendung des Extensible Software Development Kit

Bibliotheken

  • .so Benennungskonvention | Was gehört wohin (Root-Dateisystem/Software Development Kit)? | Wie verwendet man eine statische Bibliothek (autotools)(.a) mit poky?

Eclipse (veraltet/optional)

  • Intro | Workflow der Anwendungsentwicklung
  • Arbeiten mit Eclipse (root file system features | kernel + flattened device tree | root file system | install the Java Development Kit | install Eclipse | configure Eclipse | install Yocto Project® Plugin | Configure the Yocto Project® Plugin | Create "Autotooled Project" | Configuring the Cross-Toolchains | Build the Project)
Tag 4

Debugging im Userspace

  • Intro | gdb | gdb Ferndiagnose | (gdb remote) Fehlersuche mit Eclipse | (remote) Ausführen von Eclipse

Profilierung/Verfolgung

  • Intro | perf | gprof | gcov | strace | ftrace | systemtap | LTTng + Eclipse (Datenvisualisierung) | top | powertop | powerdebug

Paket-Management

  • SW-Aktualisierung vs. Paketverwaltung | Arbeiten mit Paketen | ipk | Erstellung einer package feed | die Installation eines Pakets mit opkg auf dem Zielsystem

Lizenzvergabe

  • Intro | Benutzerdefinierte Lizenz hinzufügen | Gewerbliche Lizenz hinzufügen | Firmware-Lizenz | Einhaltung der Open-Source-Lizenz

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