embedded linux kurs

Einführung in Embedded Linux & Real-Time, Vogelperspektive des Yocto Projekts

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 Registerkarte "Öffentlich", um die öffentlichen Sitzungen zu sehen.

Privat online
ab 3 Teilnehmern
Vor Ort in Ihren Räumlichkeiten
ab 3 Teilnehmern
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Viertel wählen Quartal Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
3. Quartal 2023 privat remote virtuell Englisch UTC+2 01. Oktober 2023
4. Quartal 2023 privat remote virtuell Englisch UTC+2 Jan 01, 2024
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Datum auswählen Datum Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis

Inhalt wie unten beschrieben.

Öffentlich online
ab 1 Teilnehmer
Öffentlicher Workshop im Klassenzimmer
ab 1 Teilnehmer
Wir werden Ihre E-Mail niemals an Dritte weitergeben.
Datum auswählen Datum Status Zugang Lieferung Standort Sprache Zeitzone Buchen bis
13. November 2023 öffentlich Klassenzimmer München Deutsch UTC+2 13. Oktober 2023

Ein grundlegender Überblick über Embedded Linux, Real-Time Linux sowie das Yocto Project® aus der Vogelperspektive.

Ziele des Kurses

Wir werden uns mit den folgenden Themen befassen:

  • Welche Komponenten sind für die Erstellung eines Embedded Linux-Systems erforderlich?
  • Woher bekommt man sie und wie kann man sie konfigurieren/erstellen/installieren?
  • Wo kann man Hilfe bekommen?
  • Wie sieht es mit Lizenzen aus?
  • Was ist das Yocto-Projekt aus der Vogelperspektive?
  • Wie fügt man Real-Time zu Linux hinzu?

Praktische Übungen vermitteln Ihnen die nötige praktische Erfahrung, um ein Embedded Linux-System mit Mainline-Komponenten und Real-Time-Patches zu konfigurieren/erstellen.

Beschreibung

Dieser viertägige Schulungskurs verwendet praktische Übungen in Kombination mit Anleitungen, um einige grundlegende Konzepte von Embedded Linux zu veranschaulichen.
Die praktischen Übungen werden auf dem Host mit einem Yocto Project® SDK und auf einer Zielhardware (z.B. i.mx6) durchgeführt. Der gesamte Workshop ist darauf ausgelegt, Sie schnell auf den neuesten Stand zu bringen. Die Konzepte und Befehle, die für eine effektive Nutzung von Embedded Linux notwendig sind, werden durch eine Kombination aus Theorie und praktischen Übungen beschrieben. Erfinden Sie das Rad nicht neu, sondern lernen Sie von einem erfahrenen Trainer und nehmen Sie das neu erworbene Wissen über Embedded Linux und die Fähigkeit, es effektiv in Ihre eigenen Embedded-Entwicklungsprojekte zu integrieren, mit nach Hause.

Voraussetzungen

  • Grundlegende Vertrautheit mit der Verwendung eines Linux-Systems (z. B. Ubuntu) als Endbenutzer im Benutzerbereich
  • Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
  • Vertrautheit mit eingebetteten C-Konzepten und Programmierung
  • Fähigkeit zur Entwicklung von Software unter Verwendung der C-Syntax
  • Grundkenntnisse über eingebettete Prozessoren und Entwicklungsboards
  • ...und/oder keine Angst, mehr über die oben genannten Themen zu erfahren...

Kurs-Fahrplan

Wer sollte teilnehmen?

Projektleiter, Software-, Hardware-, Entwicklungs-, Systemingenieure, Techniker und Technikinteressierte, die so schnell wie möglich verstehen wollen, wie Embedded Linux funktioniert. Sie müssen Linux verwenden oder haben den Luxus zu entscheiden, ob es sinnvoll ist, es zu verwenden oder nicht. Vielleicht benutzen Sie bereits Embedded Linux, sind sich aber nicht ganz sicher, ob Sie alles richtig machen. Sie verwenden derzeit ein anderes Betriebssystem und wollen herausfinden, ob Linux vielleicht kostengünstiger wäre.

Gliederung des Kurses

Tag 1

Einführung

  • Geschichte von Unix/Linux | Lizenzvergabe | Normen | 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

Eval Board

  • Wie bootet Linux auf einem PC und auf dem Eval-Board? | SD-Karten-Partitionen | Sehen Sie es booten

Yocto Einführung

  • Was ist Yocto? | Was ist das Yocto Project®? (Merkmale/Herausforderungen) | Einige Werkzeuge unter dem Dach des Yocto Project® (Poky | BitBake | OE-Core | Metadaten) | Warum sollten Sie das Yocto Project® verwenden?

Der Yocto Project® Arbeitsablauf

  • Intro
  • Arbeitsablauf | OE-Architektur
  • Konfiguration (Benutzer | Metadaten(Rezepte) | Maschine(BSP) | Distribution/Policy)
  • Eigenschaften | Versionierung von Rezepten | Layers
  • Quellen
  • Bauen (Quellenabruf | Patching | Konfigurieren/Kompilieren/Staging | SSTATE | Pseudo | recipetool | Beispiele von Rezepten | PACKAGECONFIG | Pakete und ihr Inhalt | Output-Analyse/Verpackung | Image Generation | SDK-Erzeugung) | Tasks

Tag 2

Was wird benötigt...

  • Gastgeber
    • Toolkit
      • Das Yocto-Projekt® | Die Yocto Project® Build-Umgebung | Installieren Sie das Yocto Project® SDK
    • Vorbereitung der SD-Karte | Terminal-Emulation
      • screen | byobu | minicom
    • Server
      • DHCP | tftp | NFS
    • Root-Dateisysteme
  • Zielsystem
    • git | u-boot
      • Skripting | schickes Zeug | checkout | Konfiguration | bauen | installieren
    • Kernel
      • checkout | Konfig - kconfig | bauen - kbuild | Kernel-Module | installieren
    • Flacher Gerätebaum (fdt)
      • Untersuchen wir den flachen Gerätebaum | bauen | installieren

Anpassungen (optional)

  • Anpassungen: Das System hängt sich auf | Pseudo tty | getty | runlevel | statische IP
  • Init: Sys-V | Verschiedene Optionen | systemd | bootgraph | bootchart

Tag 3

Kernel-Module

  • init/exit | Lizenzvergabe | tainted Modul/Kernel | EXPORT_SYMBOL | out of tree .ko makefile
  • module-init-tools
  • Modul in den Kernelbaum aufnehmen
  • Parameterübergabe

Character Driver

  • Gerätedateien | Gerätetypen | Geräteknoten major/minor | Kernel-Treiber-Schnittstelle
  • Gerätetreiber: Intro | Anmeldung | Initialisierung | Öffnen/Freigeben
  • Miscellaneous Character Drivers

Debugging im Userspace

  • Einfache Werkzeuge | Erweiterte Tools | Was ist ein Debugger?
  • gdb: gdb auf dem Zielsystem | gdb remote debugging

Kernel-Debugging (optional)

  • kgdb/kdb + agent-proxy | JTAG

Tag 4

Profilierung/Verfolgung

  • Profiling/Tracing-Werkzeuge: strace | system timers | gprof | gcov | ftrace/kernelshark | systemtap | perf | LTTng
  • top und ähnliche Werkzeuge: top | latencytop | powertop | powerdebug
  • crash: gdb auf Steroiden

Real-Time

  • Voraussetzungen
    • interrupts | ablaufinvarianter Code
  • Echtzeit-Intro
    • Was ist Real-Time? | Was ist harte Real-Time?
  • Echtzeit-Linux
    • Hypervisor | Doppelter Kernel | Vollständig präemptiver Kernel
  • Abgestuftes Echtzeitverhalten
    • explizit/implizit preemption points | Echtzeit-Preemption-Patch | vollständig präemptiver Kernel | Harte Echtzeit-Erweiterungen
  • Dualer Kernel: Adeos/Xenomai
    • Adeos Patch | Xenomai | patch/config/build kernel | auf dem Zielsystem testen
  • Echtzeit-Mythen

Was die Kunden sagen