Seminarinformationen

Seminar - Ziel

In diesem 4-tägigen Seminar "LFD460 Embedded Plattform Entwicklung mit dem Yocto Project" erwerben Sie umfassende Kenntnisse in der Entwicklung von Embedded Linux Systemen unter Verwendung des Yocto Projekts. Neben den Grundlagen der Embedded Linux Entwicklung lernen Sie, wie Sie die zeitsparenden Vorteile des Yocto Projekts nutzen können, um effizient Embedded Linux Systeme zu entwickeln.

Dieser Kurs baut auf dem Kurs LFD450 Embedded Linux Entwicklung auf.

Teilnehmer - Zielgruppe

  • Erfahrene Ingenieure im Bereich Embedded Linux

Kurs - Voraussetzungen

  • Erfahrung als Embedded-Linux-Entwickler oder im Bereich Embedded-Systeme
  • Grundkenntnisse in Embedded Linux, insbesondere im Umgang mit Bootloadern, Kernel und User-Space-Software
  • Vertrautheit mit dem Kompilieren von Software über die Kommandozeile
  • Sicherer Umgang mit grundlegenden Linux-Tools und Texteditoren
  • Grundlegende Kenntnisse in Python sind hilfreich, aber nicht zwingend erforderlich
  • Interesse daran, reproduzierbare Build-Prozesse für Embedded-Linux-Systeme zu erlernen

Seminardauer

  • 3 Tage
  • 09:00 Uhr bis 17:00 Uhr

Schulungsunterlagen

  • nach Absprache

Seminar-Inhalt / Agenda

Introduction

  • Einführung
  • Ziele
  • Lernziele
  • Zielgruppe
  • Voraussetzungen der Teilnehmenden
  • The Linux Foundation
  • Copyright und keine vertraulichen Informationen
  • The Linux Foundation Schulungen
  • Zertifizierungsprogramme und digitale Abzeichen
  • The Linux Foundation THRIVE-ONE Abonnements
  • Veränderungen in Linux- und Open-Source-Projekten

Preliminaries

  • Linux-Distributionen
  • Vorgehensweisen
  • Laborübungen

Arbeiten in Open-Source-Projekten

  • Überblick über korrektes Beitragen zu OSS-Projekten
  • Herkunft des Codes verstehen: DCO und CLA
  • Nähe zum Mainline-Code für Sicherheit und Qualität
  • Projekt-DNA studieren und verstehen
  • Eigene Ziele und Beiträge definieren
  • Maintainer und deren Workflows identifizieren
  • Frühzeitiges Feedback einholen und offen arbeiten
  • Kleine, inkrementelle Beiträge statt großer Code-Dumps
  • Ego zurückstellen: keine Überempfindlichkeit gegenüber Feedback
  • Geduld haben und langfristige Beziehungen aufbauen

Was ist Embedded Linux?

  • Ziele
  • Verständnis von Embedded Linux
  • Toolchains und Bibliotheken
  • Bootloader
  • Kernel
  • Root-Dateisystem

Yocto Project: Was es ist und wo es herkommt

  • Kapitelübersicht und Ziele
  • Von OpenEmbedded zu Yocto: Zusammenspiel
  • Bausteine des Yocto Project und OpenEmbedded
  • Erstellung eines Embedded-Linux-Systems mit Yocto
  • BitBake
  • Dokumentation und weitere Ressourcen
  • Yocto Project Releases
  • Bezug des Yocto Projects

Poky

  • Aussprache von Poky
  • Yocto/OE-Architektur

BitBake

  • Installation und Einrichtung
  • Metadaten
  • Metadata-Layer
  • Metadaten-Syntax
  • Events
  • Varianten
  • Datei-Downloads
  • Fetcher
  • Standard-Metadaten
  • Prüfsummen
  • Event-Implementierung
  • Tasks
  • Projektstruktur
  • Provisioning und Abhängigkeitsmanagement
  • BitBake Kommandozeile
  • Laborübungen

Einrichtung des Yocto Build-Systems

  • Struktur des Yocto Reference Systems
  • Poky Core-Komponenten
  • OpenEmbedded-Core Metadata Layer
  • Poky Metadata Layer
  • Yocto BSP Layer (Board Support Package)
  • Laborübungen

Erstellung eines x86 Emulations-Images

  • Struktur der Build-Umgebung
  • Laborübungen

Fehlerbehebung bei Build-Problemen

  • Wenn etwas schiefgeht
  • Task-Logs
  • Ausführen einzelner Tasks
  • Debug-Ausgaben
  • Abhängigkeitsgraphen
  • Anzeige von Variablen und Metadaten
  • BitBake Debug-Ausgabe
  • Entwickler-Shell

Anpassung von Images

  • Erweiterung eines Standard-Images
  • Ableitung von core-image
  • Paketgruppen
  • Nutzung von Image-Features
  • Laborübungen

Hinzufügen von Paketen

  • Rezept-Konventionen und Best Practices
  • Paket mit einer C-Datei
  • Makefile-basierte Pakete
  • Autotools-basierte Pakete
  • Laborübungen

Layer

  • Warum Layer?
  • Arbeiten mit Layern
  • Laborübungen

Kernel-Rezepte

  • Yocto Kernel-Rezepte
  • Konfiguration des Yocto-Kernels
  • Erstellung eines eigenen Kernels
  • Erweiterung des Yocto-Kernels
  • Laborübungen

Einführung in ausgewählte BBClasses

  • rm_work.bbclass
  • allarch.bbclass
  • buildhistory und buildstats
  • cve-check.bbclass
  • archiver.bbclass

Entwicklungstools

  • devtool
  • wic

Lizenzierung und Compliance

  • Lizenzmanagement mit Yocto
  • Lizenz-Tracking
  • Aktivierung kommerziell lizenzierter Rezepte
  • Laborübungen

Abschluss und Evaluationsumfrage

  • Evaluationsumfrage

KBuild-System

  • Einführung
  • Kbuild Makefiles
  • Kconfig Grundlagen
  • Kconfig durchsuchen

Cross-Development Toolchain

  • Compiler-Tupel
  • Integrierter Linux-Distribution-Cross-Compiler
  • Linaro
  • CodeSourcery
  • crosstool-ng
  • Buildroot
  • OpenEmbedded
  • Yocto Project
  • Clang
  • Laborübungen

Booten eines Ziel-Entwicklungsboards über Ethernet

  • Nutzung virtueller Hardware
  • Einfachere Entwicklungsmethoden
  • Boot-Sequenz mit TFTP und NFSroot
  • Ziele des Labors
  • Laborübungen

Packaging des Ziel-Dateisystems

  • Ziele eingebetteter Dateisysteme
  • Verzeichnisstruktur im Überblick
  • Arten eingebetteter Dateisysteme

Auswahl des Root-Dateisystems

  • SysV init vs. BusyBox init
  • udev vs. BusyBox mdev
  • systemd
  • C-Bibliotheken
  • Laborübungen

Right-Sizing

  • Häufig benötigte Embedded-Komponenten
  • Analyse von Kernelgrößen

Weitere Schulungen zu Thema Linux Foundation

LFD459 Kubernetes für App-Entwickler

- u.a. in Nürnberg, Berlin, Stuttgart, München, Köln

In diesem 3-tägigen Seminar „LFD459 Kubernetes für App-Entwickler“ lernen Sie, wie Sie Anwendungen in einem Multi-Node-Cluster containerisieren, hosten, bereitstellen und konfigurieren. Sie beginnen mit einem einfachen Python-Skript, definieren Anwendungsressourcen und ...

LFS458 Kubernetes Administration

- u.a. in Nürnberg, Berlin, Stuttgart, München, Köln

In diesem 4-tägigen Seminar „LFS458 Kubernetes Administration“ erhalten Sie fundiertes Wissen zu den grundlegenden Konzepten und herstellerunabhängigen Werkzeugen für den Aufbau und die Verwaltung von Kubernetes-Clustern in Produktionsumgebungen. Sie setzen sich mit ...

LFD420 Linux Kernel Internals und Development

- u.a. in Paderborn, Zürich, Mannheim, Virtual Classroom, Nordhausen

In diesem 4-tägigen Seminar „LFD420 Linux Kernel Internals und Development“ erwerben Sie ein tiefgehendes Verständnis für die Entwicklung im Linux-Kernel. Sie lernen die Architektur von Linux kennen, machen sich mit grundlegenden Entwicklungsmethoden im Kernel vertraut ...

Linux Security

- u.a. in Bremen, Frankfurt am Main, Heidelberg, Mannheim, Freiburg

In dieser 4-tägigen Schulung "Linux Security" erlangen Sie umfassendes Wissen im Bereich der Informationssicherheit. In einer Zeit, in der Sicherheitslücken wie Shellshock und Heartbleed immer wieder auftreten, wird die Absicherung von Daten zunehmend entscheidend. ...