Das Yocto Projekt - Ein Überblick

Das Yocto Projekt - Ein Überblick

title-1

Kursziele

Aufbauend auf Ihr Wissen über Embedded GNU/Linux, dem GNU/Linux Kernel und weiteren Komponenten eines GNU/Linux Systems möchten wir Ihnen das Wesentliche zur Nutzung des Yocto Projekts vermitteln. Wir werden sehen, wie ein BSP/Framework-Betreuer das Yocto Projekt verwenden würde, sowie Entwickler, die vielleicht nicht einmal wissen wollen, dass sie es verwenden.

Einführung

Dieses viertägige Training kombiniert Theorie mit praktischen Übungen, um das Yocto-Projekt vorzustellen.
Es beantwortet häufig gestellte Fragen wie:

  • Ist es wirklich notwendig, für jedes GNU/Linux Projekt eine andere Version der Toolchain/Bibliotheken/Pakete zu verwenden, und dann auch noch bei jedem Projekt einem anderen Workflow zu folgen?
  • Können Sie sicherstellen, dass die Entwicklungsumgebung für alle Entwickler/Lieferanten identisch ist und dass man in 10+ Jahren immer noch die gleichen Builds wie heute reproduzieren kann?
  • Kann das YP dabei helfen herausfinden, unter welchen Softwarelizenzen die von Ihnen verwendeten Pakete lizenziert sind?
  • ... und vieles mehr

Auf der Zielhardware (z.B. phyBOARD-Mira i.MX 6 Quad - Full Featured) werden praktische Übungen durchgeführt. Nach dem Training können die Teilnehmer ein Docker-Image mit Ubuntu 16.x und allen vorinstallierten Abhängigkeiten sowie die Beispiele herunterladen, um mit dem Kursmaterial in ihren eigenen Labors zu arbeiten. Bitte beachten Sie, dass dies kein Einführungskurs zu Embedded GNU/Linux ist, wie wir ihn hier anbieten. Sie sollten bereits wissen, wie Embedded GNU/Linux funktioniert und vielleicht sogar den Linux Kernel für einige Ihrer Projekte konfiguriert/gebaut haben.

Wer sollte teilnehmen?

Sie verwenden bereits GNU/Linux für Ihre Projekte und haben wahrscheinlich schon von dem Yocto Projekt gehört, haben es aber nicht gewagt, es näher zu betrachten oder hatten Schwierigkeiten damit. Sie wissen nicht, ob und wie Ihr täglicher Workflow in dem YP untergebracht werden kann und finden das YP im Allgemeinen ziemlich kompliziert. Warum brauchen wir all das, obwohl (angeblich) alles bisher viel einfacher war? Nach dem Training sollten Sie entscheiden können, ob Sie das YP brauchen oder nicht. Der Workshop richtet sich an Software-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Ingenieure und andere an dem YP Interessierte, die bereits fundierte Kenntnisse von Embedded GNU/Linux haben.

Voraussetzungen

  • Grundlegende Vertrautheit mit der Verwendung eines GNU/Linux-Systems (z.B. Ubuntu) als Endbenutzer im user space
  • Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
  • Grundkenntnisse der Programmierung von User/Kernel-Space mit GNU/Linux
  • Mittelmäßige Programmierkenntnisse in der Sprache C
  • Sie sollten an ”Embedded GNU/Linux Systems Architecture (5 days)" oder ”Introduction to Embedded Linux in Theory and Practice - a Crash Course (3 days)” teilgenommen haben. (dringend empfohlen!) ...ausser Sie sind bereits mit dem in diesen Trainings vorgestellten Material vertraut.
  • Sie sollten Erfahrung mit Embedded GNU/Linux (Kernel, Userspace, Root-Filesystem, Tools) mitbringen, um sich auf das Yocto Training konzentrieren zu können - überprüfen Sie Inhalte, die Sie hier bereits kennen sollten hier.
  • Es kann hilfreich sein, wenn Sie ”Embedded GNU/Linux Device Drivers and Kernel Internals (5 days)” besucht haben, aber das ist nicht wirklich eine Voraussetzung. Es genügt zu wissen, wie man den GNU/Linux-Kernel, Kernel-Treiber in/out of tree und den fdt baut, um dem BSP/Kernel Teil des Yocto Trainings zu folgen.

Welche Vortragsmethoden dürfen wir Ihnen anbieten?

Das Trainingsmaterial ist auf Englisch, aber die Präsentation kann sowohl auf Englisch als auch auf Deutsch gemacht werden, ganz wie Sie es wünschen und zwar welt- bzw. europaweit.

  • vor Ort (öffentliche Schulung oder in-house bei Ihnen) - mit Trainer *)
  • Online - mit Trainer **)
  • On-site/Online-Kombination - mit Trainer *)**)

Während des Trainings bieten wir Laptops *), Boards *) **), Arbeitshefte und Nachschlagewerke (in Englisch - elektronisch oder gedruckt) *) **), Fernzugriff auf Server und Boards **), Screen-Sharing **), Audio-Bridge * *) an. Wenn Sie genaueres zum Thema "Trainings Vortragsmethoden" wissen möchten schauen Sie bitte hier nach und/oder fragen Sie hier.

Die Bücher und Beispiele nehmen die Schulungsteilnehmer normalerweise nach der Schulung mit nach Hause.

Zeitplan

  • 4 Tage in Folge 09:00 bis 17:00 mit Pausen (Ihre Zeitzone - festzulegen)

Dozent

Kursinhalt

Tag 1

Einführung

  • Einführung
  • Geschichte
  • Lizenzierung
  • Standards
  • Die Unix-Philosophie

Besonderheiten an Eingebetteten Systemen

  • Was ist ein eingebettetes System?
  • Embedded- im Vergleich zu Desktop Linux
  • Software Release
  • Für das Zielsystem bauen
  • Toolchains
  • C-Bibliotheken

Eval Board

  • Eval Board
  • GNU/Linux auf einem PC booten
  • GNU / Linux auf einem eingebetteten System booten
  • Bootsequenz
  • SD-Kartenpartitionen

Einführung in Yocto

  • Was ist Yocto?
  • Warum das YP benutzen?
  • Was ist das YP?
  • Poky
  • BitBake
  • OE-Core
  • Metadaten

Der Yocto Autobuilder

  • Was ist der Yocto Autobuilder?
  • Docker container (pull, launch container)
  • Yocto Build-Umgebung ohne Docker/Yocto Autobuilder

Tag 2

Der YP Workflow

  • Einführung
  • Arbeitsablauf (Workflow)
    • OE-Architektur
  • Konfiguration
    • Benutzer Konfiguration
    • Eigenschaften (Features)
      • Maschinen Eigenschaften (Machine Features)
      • Distro Eigenschaften (Distro Features)
      • Kombinierte Eigenschaften (Combined Features)
      • Image Eigenschaften (Image Features)
    • Recipe Versionierung
      • Einführung
      • Bindestriche
      • Basierend auf Versions Kontrollsystemen (Source Code Management)
      • Fallstricke
      • Entwicklungs-/Stabile Versionen
      • Overrides
    • Metadaten (Recipes)
    • Maschinen (BSP) Konfiguration
    • Distributions Policy
  • Sourcen
  • Bauen
    • Sources fetchen: do_fetch, do_unpack
    • Patchen
    • Konfigurieren/Kompilieren/Installieren
    • Pseudo
    • recipetool
    • Beispiele fürRecipes
      • Paket von einer einzelnen .c Datei
      • Paket basierend auf Autotools
      • App. in mehrere Pakete aufgeteilt
    • Analyse der Ausgabe/Verpackung (Packaging)
    • Generierung von Images
    • Generierung von SDKs
  • Images anpassen
    • Einführung
    • local.conf
    • IMAGE_FEATURES
    • Benutzerdefinierte .bb-Dateien - von core-image vererbt
    • Benutzerdefinierte .bb-Dateien - basierend auf core-image-minimal
    • Benutzerdefinierte packagegroups

BitBake

  • Geschichte
  • Syntax
    • Variable Erweiterung (Variable Expansion)
    • Variable Zuweisung (Variable Assignment)
    • Vor-/Anhängen (Pre-/Append)
    • Entfernen (Override Stil Syntax)
    • Variable Flag-Syntax
    • Bedingte (Conditional) Syntax (Overrides)
  • Fehlersuche/-behebung
    • BitBake Fehlersuche/-behebung
    • Recipes finden
    • Images finden
    • Packagegroups finden
    • BitBake Umgebung
    • BitBake logs
    • Noch mal BitBaken
      • das Bauen eines spezifischen Tasks erzwingen
      • cleansstate
      • Stamp ungültig machen
    • Devshell
    • Abhängigkeiten
    • Pakete
    • Killall Bitbake
    • BitBake mit Ncurses-Wrapper
    • Werkzeuge/Tweaks
  • Aufräumen
    • Aufräumen um Speicherplatz zu gewinnen
    • Aufräumen damit neu gebaut werden muss

Tag 3

Layer

  • Einführung
  • bitbake-layers Werkzeug
  • yocto-layer Werkzeug

BSP

  • Intro
  • Systementwicklungs-Workflow
  • BSP Entwicklungsanleitung
    • bsp-tool

Kernel

  • Intro
  • Systementwicklungs-Workflow
  • Kernel-Entwicklungsanleitung
    • defconfig + Konfigurationsfragmente
    • in tree kmod
    • out of tree kmod
    • fdt

Anwendungs/Software Entwicklungskit

  • Software-Entwicklungskit
    • Einführung
    • Cross-Entwicklungs Toolchain
    • Sysroot
    • Der QEMU-Emulator
    • Eclipse Yocto Plug-in
    • Werkzeuge zur Leistungsverbesserung
  • Installieren von SDKs und Toolchains
  • Cross-Toolchains/SDKs
    • Einführung
    • Erstellen eines Cross-Toolchain-Installers
    • Verwenden des Standard-SDKs
    • Cross-Toolchain+Makefile
    • Cross-Toolchain+Autotools
    • Autotooled lib + App., recipes
    • Erweiterbares (Extensible) SDK

Eclipse

  • Einführung
  • Anwendungsentwicklungs-Workflow
  • Mit Eclipse arbeiten
    • rootfs features, kernel + fdt, rootfs
    • JDK installieren
    • Eclipse installieren
    • Eclipse konfigurieren
    • Das Yocto Plugin installieren
    • Das Yocto Plugin konfigurieren
    • Ein Autotooled Project generieren
    • Die Cross-Toolchains konfigurieren
    • Das Project bauen

Tag 4

User Space Fehlersuche/-behebung

  • Intro
  • gdb
    • gdb am Zielsystem
    • gdb Remote-Debugging
    • gdb Remote-Debugging mit Eclipse
    • Remote-Run mit Eclipse

Profiling/Tracing

  • Yocto Tracing tools
    • perf
    • gprof
    • gcov
    • strace
    • ftrace
    • systemtap
    • oprofile
    • LTTng
  • top und Freunde
    • top
    • latencytop
    • powertop
    • powerdebug
  • crash

Paketverwaltung

  • Softwareaktualisierungen
  • Mit Paketen arbeiten
    • IPK
    • Einen package feed erstellen
    • Installieren eines Pakets mit opkg auf dem Zielsystem

Lizenzierung

  • Einführung
  • Fügen Sie dem YP eine benutzerdefinierte Lizenz hinzu
  • Erfüllung der Open-Source-Lizenz Bestimmungen mit dem YP

Devtool

  • Einführung
  • Ein Recipe hinzufügen/bauen/installieren
  • Einen Layer erstellen/hinzufügen
  • Finish
  • Ein Recipe Ändern/Aktualisieren
  • Bauen/Ausführen
  • Ein Image bauen

Bitte füllen Sie dieses Formular aus, falls Sie weitere Fragen zu diesem oder einem anderen Training haben und zögern Sie nicht, uns zu kontaktieren.

Public Yocto

The Yocto Project - An Overview

in-house, 4-day training class
book until: 01 Dec 2018
title-1
15 Jan 2019
EU, German/English (TBD)

Pick a Training

public/private, 2 to 5 day training class
book until: 19 Jan 2019
title-1
04 Feb 2019
EU, German/English (TBD)

The Yocto Project - An Overview

in-house, 4-day training class
book until: 19 Jan 2019
title-1
19 Feb 2019
Essen-Horst/Germany, in German

Hinweis: Bei In-House-Schulungen stellen Unternehmen gerne Introduction to Embedded Linux - a short Crash Course diesem Kurs voran, um ihre Ingenieure schnell mit Embedded GNU/Linux vertraut zu machen. Alternativ dazu gibt es auch noch 2 Tage Embedded Linux und 3 Tage Yocto mit der Schulung Introduction to Embedded Linux and Yocto .