LFD450 Embedded Linux Entwicklung
Classroom training | German | Claim
Duration of training: 4 days
Objectives
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.
Target audience
- Erfahrene Entwickler
- Programmierer und Ingenieure
Requirements
- 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
Objectives
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.
Target audience
- Erfahrene Entwickler
- Programmierer und Ingenieure
Requirements
- 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