LFD450 Embedded Linux Entwicklung
Ziele
In dieser 4-tägigen Schulung "LFD450 Embedded Linux Entwicklung" erlernen die Teilnehmer die essenziellen Techniken für die Entwicklung von Embedded Linux Geräten. Die Schulung legt besonderen Fokus auf verschiedene Schwerpunkte. Dazu gehören vertiefte Kenntnisse über die Architektur des Linux-Kernels, insbesondere in Bezug auf die Anpassung an eine eingebettete Plattform. Des Weiteren werden Methoden zur Ermittlung der optimalen Systemgröße entsprechend den individuellen Projektanforderungen behandelt. Die Schulung vermittelt außerdem das Know-how zur Nutzung verschiedener Ressourcen zur Einrichtung einer Cross-Entwicklungsumgebung für Embedded-Systeme. Teilnehmer werden dazu befähigt, die verfügbaren Optionen für Bibliotheken und Application User-Spaces zu analysieren und auf die Anforderungen von Embedded-Systemen abzustimmen. Die Schulung deckt eine breite Palette weiterer relevanter Themen ab.
Zielgruppe
- Erfahrene Entwickler
- Programmierer und Ingenieure
Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Vertrautheit mit Linux-Dienstprogrammen
- Kenntnisse in der C-Programmierung
- Erfahrung in der Linux- oder Unix-Entwicklung
Lernmethodik
Die Schulung bietet Ihnen eine ausgewogene Mischung aus Theorie und Praxis in einer erstklassigen Lernumgebung. Profitieren Sie vom direkten Austausch mit unseren projekterfahrenen Trainern und anderen Teilnehmern, um Ihren Lernerfolg zu maximieren.
Agenda
Einführung
- Die Linux Foundation
- Urheberrecht und keine vertraulichen Informationen
- Schulungen der Linux Foundation
- Zertifizierungsprogramme und digitale Auszeichnungen
- Linux-Distributionen
- Plattformen
- Vorbereitung Ihres Systems
- Änderungen in Linux
- Dokumentation und Links
Vorbereitungen
- Linux-Distributionen
- Installation der virtuellen Maschine
- Verfahren
Wie man in OSS-Projekten arbeitet
- Überblick, wie man richtig beiträgt
- Wissen, woher der Code kommt: DCO und CLA
- Nah am Mainline bleiben für Sicherheit und Qualität
- Herausfinden, welches Problem Sie lösen möchten
- Betreuer und ihre Arbeitsabläufe und Methoden identifizieren
- Frühzeitig Feedback einholen und offen arbeiten
- Schrittweise Beiträge leisten, keine großen Code-Dumps
- Geduldig sein, langfristige Beziehungen entwickeln, hilfreich sein
Eingebettete und Echtzeit-Systemkonzepte
- Grundlegende Konzepte
- Schutzmotivationen
- off the Shelf (OTS)
- Echtzeit-Betriebssysteme
- Echtzeit-Linux
- Unterstützung für benutzerdefinierte Hardware
- Ressourcen
Cross-Entwicklungsumgebungen: Ziele und Bedürfnisse
- Einführung
- Warum ist es schwierig?
- Projektzielüberlegungen
Kbuild-System
- Einführung
- Kbuild-Makefiles
- Kconfig-Grundlagen
- Kconfig durchsuchen
Cross-Entwicklungstoolchain
- Der Compiler-Triplet
- Eingebauter Cross-Compiler für Linux-Distributionen
- Linaro
- CodeSourcery
- crosstool-ng
- Buildroot
- OpenEmbedded
- Yocto-Projekt
- Clang
QEMU
- Was ist QEMU?
- Warum QEMU verwenden?
- Emulierte Architekturen
- Image-Formate
Booten eines Zielentwicklungsboards von uSD
- Warum verwenden wir uSD-Karten?
- Software auf eine uSD-Karte bekommen
- Von Flash booten
- Warum die Verwendung von uSD-Karten eine schlechte Idee ist?
Booten eines Zielentwicklungsboards über Ethernet
- Verwendung von virtueller Hardware
- Ein einfacherer Weg zu entwickeln
- Der Boot-Prozess mit TFTP und NFSroot
Bootloader und U-Boot
- Bootcode-Stufen
- Einige GPL-BIOSes
- Einige GPL-Bootloader
- Das U-Boot
- U-Boot-Kommandozeile
- U-Boot-Umgebung
Kernel-Konfiguration, -Kompilierung, -Booten
- Konfiguration des Kernels für das Entwicklungsboard
Gerätetreiber
- Gerätetypen
- Geräte Nodes
- Zeichentreiber
Device Trees
- Was sind Device Trees?
- Was Device Trees tun und was sie nicht tun
- Device Tree-Syntax
- Device Tree-Durchgang
- Device Tree-Bindungen
- Device Tree-Unterstützung in Bootloadern
- Verwendung von Device Tree-Daten in Treibern
- Koexistenz und Konvertierung alter Treiber
Ziel-Dateisystem-Packaging
- Ziele des eingebetteten Dateisystems
- Verzeichnisse: ein Überblick
- Typen von eingebetteten Dateisystemen
Root-Dateisystem-Auswahl
- SysV init vs. BusyBox init
- udev vs. BusyBox mdev
- Systemd
- Auswahl der C-Library
Konfiguration von uClibc
- Konfiguration von uClibc für NFS
Eine weitere alternative C-Bibliothek: musl
- Was ist musl?
- Konfiguration von BuildRoot für musl
BusyBox-Dienstprogrammsuite erstellen
- Grundlegende Funktionsweise
- Integration mit Buildroot
Kernel-Überwachung und -Debugging
- Tracing und Profiling
- Ftrace, Trace-Cmd, Kernelshark
- Perf
- Verwendung von perf
- sysctl
- SysRq-Taste
- oops-Meldungen
- Kernel-Debugger
- debugfs
Richtige Größe
- Oft benötigte eingebettete Komponenten
- Bestandsaufnahme der Kernelgrößen
Speichertechnologie-Geräte (Flash-Speicher-Dateisysteme)
- Was sind MTD-Geräte?
- NAND vs. NOR vs. eMMC
- Treiber- und Benutzer-Module
- Flash-Dateisysteme
Komprimierte Dateisysteme
- SquashFS
- Einsatz in einer MTD-Partition
- Labore
System-Upgrades
- Wann müssen wir aktualisieren?
- Update-Strategien
- Vorgefertigte Upgrade-Systeme
Echtzeit-Erweiterungen
- Vorhersagbarkeit und Präemption und Sperren
- PREEMPT RT-Projekt
- Echtzeit-Checkliste
Open Badge - Ihr digitaler Kompetenznachweis
Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erlangen Sie nicht nur Fachkenntnisse und Fähigkeiten, sondern bekommen zusätzlich zu Ihrem Teilnahmezertifikat ein Open Badge als digitalen Nachweis Ihrer Kompetenz.
Sie können diesen in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com Konto abrufen. Ihre verdienten Badges lassen sich problemlos in sozialen Netzwerken integrieren und weitergeben.
Kurz vor Durchführung
Termin | Standort | Aktion |
---|---|---|
20.01. - 23.01.2025 | Hamburg | |
10.02. - 13.02.2025 | München | |
25.03. - 28.03.2025 | Köln | |
14.04. - 17.04.2025 | Nürnberg |