LFD450 Embedded Linux Entwicklung

Classroom Schulung | Deutsch | Anspruch

Schulungsdauer: 4 Tage

Ziele

In diesem Kurs lernen Sie die Techniken, die für Entwicklung von embedded Linux Geräten notwendig sind.

Dabei lernen Sie u.a.:

  • Linux Kernel Architektur, mit Schwerpunkt auf den essentiellen Punkten für die Adaption des Kernels auf eine embedded Plattform.
  • Techniken für die Bestimmtung der korrekten Größe des Systems für die Projektanforderungen
  • Eine Vielzahl der zur Verfügung stehenden Ressourcen für die Erstellung einer Cross-Entwicklungsumgebung für Embedded-Systeme
  • Die verfügbaren Optionen für die Bibliotheken und Application User-Spaces hinsichtlich der Anforderungen der Embedded-Systme

Die vermittelten Schulungsinhalte gelten für alle großen Linux-Distributionen.

Zielgruppe

  • Erfahrene Entwickler
  • Programmierer und Ingenieure

Voraussetzungen

  • Vertrautheit mit Linux-Dienstprogrammen
  • Kenntnisse in der C-Programmierung
  • Erfahrung in der Linux- oder Unix-Entwicklung

Agenda

Einführung

  • Linux-Distributionen
  • Plattformen
  • Ihr System vorbereiten
  • Was sich durch Linux ändert
  • Dokumentation und Links
  • Anmeldung zum Kurs

Konzepte von Embedded und Echtzeit-Systeme

  • Grundlegende Konzepte
  • Sicherheitsgründe
  • Off the Shelf (OTS)
  • Embedded Caveats
  • Echtzeit-Betriebssysteme
  • Echtzeit-Linux
  • Kundenspezifische Hardware-Unterstützung
  • Ressourcen

Cross-Development Umgebung: Ziele und Bedürfnisse

  • Einführung
  • Warum ist es schwierig?
  • Betrachtungen zum Projektziel

KBuild System

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

Cross-Development: Toolchain

  • Compiler-Triplet
  • Integrierter Linux-Distributions-Cross-Compiler
  • Linaro
  • CodeSourcery
  • crosstool-ng
  • Buildroot
  • OpenEmbedded
  • Yocto-Projekt
  • Clang

Einrichtung eines Target Development Board mit uSD

  • Verwendung virtueller Hardware
  • Ein leichterer Weg zur Entwicklung
  • Zielsetzungen der Labs

Boot Loader und U-Boot

  • Stufen des Boot-Codes
  • GPL Boot Loader
  • Das U-Boot
  • Die U-Boot Kommandozeile
  • Die U-Boot Umgebung

Kernel Konfiguration, Kompilation und Booting

  • Konfigurierung des Kernels für das Development Board

Gerätetreiber

  • Gerätetypen
  • Geräte-Knotenpunkte
  • Treibermerkmale

Device Trees

  • Was sind Device Trees?
  • Was ein Device Tree tut und was er nicht tut
  • Device-Tree-Syntax
  • Durchlaufen eines Device Trees
  • Device Tree Bindungen
  • Device-Tree-Unterstützung in Bootloadern
  • Verwendung von Device-Tree-Daten in Treibern
  • Koexistenz und Konvertierung von alten Treibern

Target Filesystem Packaging

  • Embedded-Dateisystem-Ziele
  • Verzeichnisse: ein Überblick
  • Embedded-Dateisystem-Typen

Erstellung eines Target Root Filesystem

Root Filesystem Auswahl

  • SysV-Init vs. BusyBox-Init
  • udev vs. BusyBox mdev
  • Systemd
  • Auswahl der C-Bibliothek

Konfiguration von uClibc

  • Konfigurieren von uClibc für NFS

BusyBox Utility Suite

  • Grundlagen der Funktionsweise
  • Integration mit Buildroot

Kernel Überwachung und Debugging

  • Verfolgung und Profilierung
  • Ftrace, Trace-Cmd, Kernelshark
  • Perf
  • Perf verwenden
  • sysctl
  • SysRq-Schlüssel und oops-Meldungen
  • Kernel-Debugger

Right-Sizing

  • Eingebettete Komponenten, die oft benötigt werden
  • Erfassung der Kernelgrößen

Speicher Technologie Devices

  • Was sind MTD-Bausteine?
  • NAND vs. NOR vs. eMMC
  • Treiber- und Anwendermodule
  • Flash-Dateisysteme

Komprimiertes Dateisystem

  • SquashFS
  • Bereitstellung in einer MTD-Partition

System Upgrades

  • Ab wann ist ein Update erforderlich?
  • Update Strategien
  • Vorkonzipierte Upgrade-Systeme

Real-Time-Erweiterungen

  • Vorhersehbarkeit und Voreinstellung und Sperren
  • PREEMPT_RT-Projekt
  • Real-Time Checkliste

Ziele

In diesem Kurs lernen Sie die Techniken, die für Entwicklung von embedded Linux Geräten notwendig sind.

Dabei lernen Sie u.a.:

  • Linux Kernel Architektur, mit Schwerpunkt auf den essentiellen Punkten für die Adaption des Kernels auf eine embedded Plattform.
  • Techniken für die Bestimmtung der korrekten Größe des Systems für die Projektanforderungen
  • Eine Vielzahl der zur Verfügung stehenden Ressourcen für die Erstellung einer Cross-Entwicklungsumgebung für Embedded-Systeme
  • Die verfügbaren Optionen für die Bibliotheken und Application User-Spaces hinsichtlich der Anforderungen der Embedded-Systme

Die vermittelten Schulungsinhalte gelten für alle großen Linux-Distributionen.

Zielgruppe

  • Erfahrene Entwickler
  • Programmierer und Ingenieure

Voraussetzungen

  • Vertrautheit mit Linux-Dienstprogrammen
  • Kenntnisse in der C-Programmierung
  • Erfahrung in der Linux- oder Unix-Entwicklung

Agenda

Einführung

  • Linux-Distributionen
  • Plattformen
  • Ihr System vorbereiten
  • Was sich durch Linux ändert
  • Dokumentation und Links
  • Anmeldung zum Kurs

Konzepte von Embedded und Echtzeit-Systeme

  • Grundlegende Konzepte
  • Sicherheitsgründe
  • Off the Shelf (OTS)
  • Embedded Caveats
  • Echtzeit-Betriebssysteme
  • Echtzeit-Linux
  • Kundenspezifische Hardware-Unterstützung
  • Ressourcen

Cross-Development Umgebung: Ziele und Bedürfnisse

  • Einführung
  • Warum ist es schwierig?
  • Betrachtungen zum Projektziel

KBuild System

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

Cross-Development: Toolchain

  • Compiler-Triplet
  • Integrierter Linux-Distributions-Cross-Compiler
  • Linaro
  • CodeSourcery
  • crosstool-ng
  • Buildroot
  • OpenEmbedded
  • Yocto-Projekt
  • Clang

Einrichtung eines Target Development Board mit uSD

  • Verwendung virtueller Hardware
  • Ein leichterer Weg zur Entwicklung
  • Zielsetzungen der Labs

Boot Loader und U-Boot

  • Stufen des Boot-Codes
  • GPL Boot Loader
  • Das U-Boot
  • Die U-Boot Kommandozeile
  • Die U-Boot Umgebung

Kernel Konfiguration, Kompilation und Booting

  • Konfigurierung des Kernels für das Development Board

Gerätetreiber

  • Gerätetypen
  • Geräte-Knotenpunkte
  • Treibermerkmale

Device Trees

  • Was sind Device Trees?
  • Was ein Device Tree tut und was er nicht tut
  • Device-Tree-Syntax
  • Durchlaufen eines Device Trees
  • Device Tree Bindungen
  • Device-Tree-Unterstützung in Bootloadern
  • Verwendung von Device-Tree-Daten in Treibern
  • Koexistenz und Konvertierung von alten Treibern

Target Filesystem Packaging

  • Embedded-Dateisystem-Ziele
  • Verzeichnisse: ein Überblick
  • Embedded-Dateisystem-Typen

Erstellung eines Target Root Filesystem

Root Filesystem Auswahl

  • SysV-Init vs. BusyBox-Init
  • udev vs. BusyBox mdev
  • Systemd
  • Auswahl der C-Bibliothek

Konfiguration von uClibc

  • Konfigurieren von uClibc für NFS

BusyBox Utility Suite

  • Grundlagen der Funktionsweise
  • Integration mit Buildroot

Kernel Überwachung und Debugging

  • Verfolgung und Profilierung
  • Ftrace, Trace-Cmd, Kernelshark
  • Perf
  • Perf verwenden
  • sysctl
  • SysRq-Schlüssel und oops-Meldungen
  • Kernel-Debugger

Right-Sizing

  • Eingebettete Komponenten, die oft benötigt werden
  • Erfassung der Kernelgrößen

Speicher Technologie Devices

  • Was sind MTD-Bausteine?
  • NAND vs. NOR vs. eMMC
  • Treiber- und Anwendermodule
  • Flash-Dateisysteme

Komprimiertes Dateisystem

  • SquashFS
  • Bereitstellung in einer MTD-Partition

System Upgrades

  • Ab wann ist ein Update erforderlich?
  • Update Strategien
  • Vorkonzipierte Upgrade-Systeme

Real-Time-Erweiterungen

  • Vorhersehbarkeit und Voreinstellung und Sperren
  • PREEMPT_RT-Projekt
  • Real-Time Checkliste

Tags

Diese Seite weiterempfehlen