Kontakt aufnehmen
 Dauer 14 Stunden

Schulungsübersicht

1. Einführung in den Linux-Kernel

  • Überblick über eingebettetes Linux
  • Architektur des Linux-Kernels
  • User Space vs. Kernel Space
  • Aufgaben des Kernels
  • Workflow der Kernel-Entwicklung
  • Überblick über unterstützte eingebettete Plattformen

2. Einrichten der Entwicklungsumgebung

  • Vorbereitung des Entwicklungswirkplatzes
  • Grundlagen des Cross-Compilings
  • Installation der erforderlichen Entwicklungstools
  • Einrichten der BeagleBone Black-Entwicklungsplatine
  • Konfiguration der seriellen Konsole
  • Start des Zielgeräts

3. Beschaffung und Verständnis der Kernel-Quellcode

  • Linux-Kernel-Quellcodebaum
  • Stabile vs. Langzeit-Support-Kerne
  • Herkunft der Kernel-Quellen
  • Untersuchung der Quellcode-Struktur
  • Kernel-Dokumentation
  • Verwaltung der Kernel-Versionen

4. Konfiguration, Kompilierung und Start des Kernels

  • Kernel-Konfiguration mit menuconfig
  • Auswahl der Kernel-Funktionen
  • Cross-Compilierung des Kernels
  • Erstellung von Kernel-Images
  • Installation von Kernel-Modulen
  • Überblick über den Bootloader
  • Start eines benutzerdefinierten Kernels

5. Grundlagen des Device Tree

  • Zweck des Device Tree
  • Device Tree Source (DTS)-Dateien
  • Device Tree Blob (DTB)
  • Begriffe zur Hardware-Beschreibung
  • Anpassung von Device-Tree-Dateien
  • Erstellung und Deployment von Device Trees

6. Linux-Kernel-Module

  • Architektur von Kernel-Modulen
  • Erstellung ladbarer Kernel-Module
  • Laden und Entladen von Modulen
  • Modulparameter
  • Modulabhängigkeiten
  • Wechselwirkung mit Kernel-Modulen
  • Debugging-Techniken für Module

7. Debugging des Linux-Kernels

  • Kernel-Logging mit printk()
  • Nutzung von dmesg
  • Dynamisches Debugging
  • Analysen von Kernel Panics
  • Oops-Meldungen
  • Debugging mit GDB
  • Grundlegende Werkzeuge zur Leistungsanalyse (Tracing)

8. Charaktergeräte-Treiber

  • Linux-Gerätetreiber-Modell
  • Charaktergeräte
  • Registrierung von Treibern
  • Dateioperationen
  • Lese- und Schreiboperationen
  • IOCTL-Schnittstelle
  • Speicherverwaltung
  • Bereinigung des Treibers (Cleanup)

9. Treiberintegration und Hardware-Zugriff

  • Plattform-Geräte und -Treiber
  • GPIO-Programmierung
  • Unterbrechungsbearbeitung (Interrupts)
  • Timer und verzögerte Arbeitsaufgaben
  • Zugriff auf Hardware-Register
  • Arbeiten mit Memory-mapped I/O

10. Versionskontrolle mit Git

  • Git-Grundlagen
  • Verwaltung des Kernel-Quellcodes
  • Branching und Merging
  • Erstellung von Patches
  • Prüfung von Änderungen
  • Zusammenarbeit bei der Kernel-Entwicklung

11. Praktische Übungen zur Kernel-Entwicklung

  • Konfiguration eines benutzerdefinierten Kernels
  • Erstellung und Deployment des Kernels
  • Anlegen eines einfachen Kernel-Moduls
  • Entwicklung eines einfachen Charaktergeräte-Treibers
  • Anpassung von Device-Tree-Dateien
  • Debugging von Kernel-Problemen auf der BeagleBone Black

12. Best Practices und Zusammenfassung

  • Coding-Stil für den Kernel
  • Schreibung pflegbarer Treiber
  • Häufige Stolpersteine in der Entwicklung
  • Ressourcen zur Kernel-Dokumentation
  • Workflow für Beiträge zur Open-Source-Community
  • Wiederholung der zentralen Konzepte
  • Fragen und Antworten
  • Weitere Schritte in der Linux-Kernel-Entwicklung

Voraussetzungen

Grundlegende Vertrautheit mit der Nutzung eines GNU/Linux-Systems

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (2)

Kommende Kurse

Verwandte Kategorien