Auffrischung von Embedded Linux & Einführung in das Yocto Projekt

Auffrischung von Embedded Linux & Einführung in das Yocto Projekt

5-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
16. November 2026 öffentlich remote virtuell Deutsch/Englisch (noch zu definieren) UTC+2 26. Oktober 2026

Nach dem „Auffrischungskurs zu Embedded (2 Tage)“ folgt der Kurs „So funktioniert das Yocto Project® (3 Tage)“.

Ziele des Kurses

  • Sie kennen bereits die Grundlagen von (Embedded-)Linux und möchten lediglich Ihr Wissen auffrischen.
  • Nach einer kurzen (2-tägigen) „Einführung in Embedded “ zeigen wir Ihnen (3 Tage lang), wie das „Yocto Project®“ funktioniert.
  • Nach dieser „Auffrischung“ werden wir sehen, wie BSP-/Framework-Betreuer das „Yocto Project®“ nutzen können. 
  • Wir werden auch sehen, wie Entwickler das SDK nutzen können, die nicht einmal wissen müssen, dass sie es nutzen.

Beschreibung

Dieser fünftägige Kurs demonstriert die Konzepte von "Embedded Linux" und dem "Yocto Project®" anhand praktischer Übungen in Kombination mit Theorie. Der Kurs ist so konzipiert, dass Sie schnell in die Materie einsteigen können.

Häufig gestellte Fragen wie diese werden beantwortet:

  • Was ist Linux?
  • Wo bekommt man U-Boot/den Kernel her? Konfiguration/Erstellung/Installation.
  • Warum sollten Sie Upstream-Komponenten verwenden?
  • Wie funktioniert die Interprozesskommunikation, und welche Mechanismen sollte man verwenden bzw. vermeiden?
  • 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 Ihnen das Yocto Project® bei der Überprüfung von Open-Source-Lizenzen helfen, oder ziehen Sie es vor, sich stattdessen an einen Copyright-Troll zu wenden?
  • ... und vieles mehr

Die praktischen Übungen finden auf dem Host, in einem Docker-Container und auf der Zielhardware (z. B. i.mx8) statt. Nach dem Workshop können Sie einen auf Ubuntu basierenden Docker-Container mit allen vorinstallierten Abhängigkeiten sowie den Beispielen herunterladen, um das Kursmaterial selbstständig weiterzuverwenden. Bitte beachten Sie, dass es für die ersten beiden Tage Embedded „Refresher to Embedded ideal wäre, wenn Sie bereits über einige (Embedded-)Linux-Erfahrungen verfügen. Falls nicht, bringen wir Sie in zwei Tagen auf den neuesten Stand. Dies sollte es Ihnen ermöglichen, dem zweiten Teil des Kurses zu folgen, der sich mit dem „Yocto-Training“ befasst.

Falls Sie einen Embedded Linux-Einsteigerkurs suchen, empfehlen wir Ihnen "Embedded Linux - Von Systems Architektur bis Echtzeit (5 Tage)" oder "Einführung in Embedded Linux in Theorie und Praxis - ein Crashkurs (3 Tage)".

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 verfügen Sie über grundlegende Kenntnisse im Bereich Embedded (Kernel, Userspace, Root-Dateisystem, Tools), um an dieser Schulung teilnehmen zu können.

Kurs-Fahrplan

Wer sollte teilnehmen?

Sie erwägen, Linux für Ihr Embedded-Projekt einzusetzen, oder nutzen es bereits für Ihre Projekte. Wahrscheinlich haben Sie schon vom Yocto Project® gehört, sich aber nicht getraut, sich näher damit zu befassen, oder hatten Schwierigkeiten bei der Anwendung. Außerdem möchten Sie Ihre Kenntnisse über die Interprozesskommunikation unter Linux und Echtzeitanwendungen auffrischen. 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. Warum brauchen wir das alles, wo doch bisher alles (angeblich) viel einfacher war? Nach der Schulung 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 Grundkenntnissen in Embedded , die ihr Wissen auffrischen möchten.

Gliederung des Kurses

Tag 1

Einführung

  • Einführung | Geschichte

Beurteilungsausschuss

  • Wie bootet Linux auf einem PC und auf dem Evaluation Board? | Boot-Sequenz | SD-Karten-Partitionen | Booten sehen

Benötigtes Material

  • git | u-boot
    •  Skripting | Fancy Stuff | Checkout | Config | Build | Install
  • Kernel
    • checkout | Konfig-kconfig | bauen-kbuild | Kernel-Module | installieren
  • Flacher Gerätebaum (fdt)
    • Untersuchen | Bauen | Installieren

Kernel-Module

  • init/exit | Lizenzvergabe | tainted Modul/Kernel | EXPORT_SYMBOL | aus dem Baum .ko makefile
  • module-init-tools
  • Füge das Modul in den Kernel-Baum ein
  • Parameterübergabe

Character Driver

  • Gerätedateien | Gerätetypen | Geräteknoten major/minor | Kernel-Treiber-Schnittstelle
  • Gerätetreiber: Einführung | Registrierung | Initialisierung | Öffnen/Freigeben
  • Miscellaneous Character Drivers
  • Einfache Werkzeuge
    • lsof | ltrace | strace | procfs | top | netstat | syslog | ...
  • Erweiterte Tools
    • Was ist ein Debugger?
    • gdb: gdb auf dem Zielsystem | gdb ⁣für⁣ remote debugging

Kernel-Debugging (optional)

  • Einführung in die Fehlersuche | kgdb/gdb + agent-proxy | JTAG
Tag 2

Prozess- und prozessübergreifende Kommunikation

  • Linux-Architektur | Betriebssystem | scheduler Schwerpunkte | scheduling Klassen | Prozess, task, thread | errno | fork | Prozessbeendigung | Prozesszustände | Zombies | Prozesse beobachten | einfache IPC
    • Shell-Umleitung | shelling out | tmpfiles
  • erweiterte IPC
    • pipes | Signale | unterbrochene Systemaufrufe | message queues | Semaphoren | Mutex | shared memory | sockets | select | poll
  • Weitere IPC-Methoden | IPC-Techniken, die vermieden werden sollten

Real-Time

  • Voraussetzungen
    • interrupts | ablaufinvarianter Code
  • Echtzeit-Intro
    • Was ist Real-Time? | Was ist harte Echtzeit?
  • Echtzeit-Linux
    • Hypervisor | Dualer Kernel | Vollständig präemptiver Kernel
  • Abgestuftes Echtzeitverhalten
    • explizite/implizite Präemptionspunkte | Echtzeit-Präemptionspatch | vollständig präemptiver Kernel | harte Echtzeit-Erweiterungen
  • Dualer Kernel: Adeos/Xenomai
    • Adeos-Patch | Xenomai | patch/config/build kernel | test it on the target system
  • Echtzeit-Mythen
Tag 3

Yocto Einführung

  • 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 wird man Teil unserer Yocto Project® Gemeinschaft? (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)
  • Eigenschaften | Versionierung von Rezepten | Layers
  • 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 4

BitBake

  • Geschichte
  • Syntax (Variablenerweiterung) | Variable Zuweisung | Prepend/Append | Remove | Variable Flags | Bedingte Syntax: OVERRIDES)
  • BitBake Fehlersuche (debug level | Rezepte finden/images/Paketgruppen | 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-Tool | dynamic layers

Board Support Package (BSP)

  • Einführung | Arbeitsablauf der Systementwicklung | Erstellung von BSPs | Kernel-Patches außerhalb des Mainline-Zweigs

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 5

Software-Entwicklungskit

  • Intro | cross-development Toolchain | Sysroot | BBCLASSEXTEND | Multilib | Der QEMU-Emulator | SDK-Eclipse Yocto 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

Paket-Management

  • SW-Aktualisierung vs. Paketverwaltung | Arbeiten mit Paketen | ipk | Erstellen eines Paket-Feeds | die Installation eines Pakets mit opkg auf dem Zielsystem

Lizenzvergabe

  • Einführung | Benutzerdefinierte Lizenz hinzufügen | Kommerzielle Lizenz hinzufügen | Firmware-Lizenz | Einhaltung der Open-Source-Lizenz

Devtool

  • Intro | Rezept hinzufügen/erstellen/bereitstellen | Ebene erstellen/hinzufügen | Finish | Modify/Update-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.