LFD435: Developing Embedded Linux Device Drivers
Ihre Termine
* Preise inkl. der gesetzlichen Mehrwertsteuer
Beschreibung
In dieser 4-tägigen Schulung erhalten Sie fundierte Kenntnisse über die Erstellung von Gerätetreibern sowie ein tiefgehendes Verständnis für den Linux-Kernel. Dabei erlernen Sie die Arbeit mit APIs und Treiberarten und vertiefen Ihr Wissen durch praxisnahe Übungen, beispielsweise Cross-Compiling auf ARM-Hardware.
Dieser Kurs zeigt Ihnen nicht nur die wichtigsten Funktionen und Mechanismen der Gerätetreiberentwicklung, sondern bietet auch Einblicke in Kernel-Architekturen und Algorithmen.
Leistungsumfang:
- inkl. Offizielle Schulungsumgebung (LAB)
- inkl. Verpflegung bei Präsenz
- zzgl. Offizielle Linux Foundation-Unterlage (digital, engl.) à 700 € netto pro Person (verbindliche Zusatzkosten)
- zzgl. optionalem Prüfungsvoucher. Bei der Buchung ist ein zweiter Prüfungsversuch (Retake) kostenfrei inklusive, auf Wunsch separat erhältlich (345,00 €)
Inhalte
Einführung & Überblick:
- Verwendung von git und Kernel-Versionen
- Hardwareanforderungen und Cross-Compiler
Arbeiten mit OSS-Projekten:
- Beitragen, Maintainer finden, Arbeitsabläufe verstehen
- Geduld, langsame Verbesserung und Teamarbeit
Entwicklungstools:
- Verschiedene Toolchains: Yocto, Buildroot, Linaro, etc.
- QEMU zur Emulation und Entwicklung
Gerätetreiber & Speicherverwaltung:
- Gerätetreiber für verschiedene Geräte und Ressourcenverwaltung
- Virtueller/physischer Speicher, Slab-Caching, kmalloc, etc.
Interrupts & Fehlerbehandlung:
- IRQs, asynchrone Interrupts und deren Handhabung
- Direkter Speicherzugriff (DMA), I/O-Zuweisung
Speicherverwaltung:
- Zuweisung von Seiten, Buddy-System und Speicherpools
- Arbeiten mit Cache- und Slab-Methoden
Timer und Zeitmessungen:
- Nutzung von Kernel-Timern, Messmethoden und Jiffies
- High-/Low-Resolution Timer
Synchronisation und Race Conditions:
- Spinlocks, Semaphore, RCU, Mutex und atomare Operationen
Spezialthemen:
- Device Trees und deren Syntax
- USB-Treiberentwicklung und Flash-Dateisysteme
Übertragung zwischen User-Space und Kernel-Space:
- Speichermapping, Datenübertragung, Systemaufrufe
System- und Kernel-Architektur:
- Unterschiede zwischen Monolithischen und Mikrokernen
- Umgang mit Prozessen und Threads im Kernel
Kernel-Konfiguration und -Kompilierung:
- Kompilieren und Erstellen von Kernel-Patches
- Kernel-Quellcode, Makefiles, initrd
Voraussetzungen
Für eine erfolgreiche Teilnahme sollten Sie mit folgenden Themen vertraut sein:
- Kernel-Schnittstellen und Techniken wie das Schreiben, Kompilieren sowie das Laden und Entladen von Modulen.
- Anwendung von Synchronisationsfunktionen.
- Grundlegendes Wissen über Speicherzuweisung und -verwaltung.
Zielgruppe
Die Schulung richtet sich an Programmierer und Entwickler, die ihre Kenntnisse in der Erstellung von Gerätetreibern für eingebettete Linux-Systeme ausbauen möchten.
Hinweise
Lernformate
Unsere Seminare bieten dir maximale Flexibilität: Du kannst zwischen Live-Online und Vor Ort in unseren modernen Schulungszentren im D-A-CH Raum wählen. Beide Formate garantieren dir die gleiche hohe Qualität und interaktive Lernerfahrung.
Schulungsarten
Wir bieten dir verschiedene Schulungsarten: Offene Seminare, Firmenseminare für Teams und Inhouse-Schulungen direkt bei dir vor Ort. So findest du genau das Format, das zu deinen Bedürfnissen passt.
Aktuelle Software
In unseren offenen Kursen arbeiten wir mit der aktuellsten Software-Version. So lernst du direkt mit den Tools und Features, die du auch in deinem Arbeitsalltag verwendest – praxisnah und zukunftsorientiert. Bei Inhouse- und Firmenschulungen bestimmt ihr die Version.
D