Kontakt aufnehmen

Schulungsübersicht

1. Einführung in den Linux-Kernel

  • Übersicht über Embedded Linux
  • Architektur des Linux-Kernels
  • Benutzerraum vs. Kernelraum
  • Verantwortlichkeiten des Kernels
  • Entwicklungsworkflow für Kernel
  • Übersicht über unterstützte eingebettete Plattformen

2. Einrichten der Entwicklungsumgebung

  • Vorbereitung der Entwicklungsarbeitsstation
  • Konzepte der Querkompilierung
  • Installation der erforderlichen Entwicklungswerkzeuge
  • Einrichten des BeagleBone Black-Entwicklungsboards
  • Konfiguration der seriellen Konsole
  • Starten des Zielsystems

3. Beschaffen und Verstehen des Kernel-Quellcodes

  • Linux-Kernel-Quellbaum
  • Stabile vs. langzeitunterstützte Kernel
  • Hermunterladen der Kernel-Quelltexte
  • Untersuchen der Quellcode-Struktur
  • Kernel-Dokumentation
  • Verwaltung der Kernel-Versionen

4. Konfigurieren, Kompilieren und Starten des Kernels

  • Kernel-Konfiguration mit menuconfig
  • Auswahl der Kernel-Funktionen
  • Querkompilieren des Kernels
  • Erstellen von Kernel-Abbildungen
  • Installieren von Kernel-Modulen
  • Übersicht über Bootloader
  • Starten eines benutzerdefinierten Kernels

5. Grundlagen des Device Tree

  • Zweck des Device Tree
  • Device Tree Source (DTS)-Dateien
  • Device Tree Blob (DTB)
  • Konzepte der Hardware-Beschreibung
  • Anpassen von Device Tree-Dateien
  • Erstellen und Ausrollen von Device Trees

6. Linux-Kernel-Module

  • Architektur von Kernel-Modulen
  • Erstellen von ladbaren Kernel-Modulen
  • Laden und Entladen von Modulen
  • Modulparameter
  • Modulabhängigkeiten
  • Interaktion mit Kernel-Modulen
  • Techniken zur Fehlersuche in Modulen

7. Fehlersuche im Linux-Kernel

  • Kernel-Protokollierung mit printk()
  • Nutzung von dmesg
  • Dynamische Fehlersuche
  • Analyse von Kernel-Panics
  • Oops-Nachrichten
  • Fehlersuche mit GDB
  • Grundlegende Leistungs-Verfolgungswerkzeuge

8. Zeichenorientierte Gerätetreiber

  • Linux-Gerätetreibermodell
  • Zeichenorientierte Geräte
  • Registrierung von Treibern
  • Dateioperationen
  • Lesen- und Schreiboperationen
  • IOCTL-Schnittstelle
  • Speicherverwaltung
  • Bereinigung von Treibern

9. Treiberintegration und Hardware-Zugriff

  • Plattformgeräte und -treiber
  • GPIO-Programmierung
  • Interruptionen
  • Timer und verzögerte Aufgaben
  • Zugriff auf Hardware-Register
  • Arbeit mit speichergemapperter E/A

10. Versionsverwaltung mit Git

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

11. Praktische Laborarbeit zur Kernel-Entwicklung

  • Konfigurieren eines benutzerdefinierten Kernels
  • Erstellen und Ausrollen des Kernels
  • Erstellen eines einfachen Kernel-Moduls
  • Entwicklung eines grundlegenden zeichenorientierten Gerätetreibers
  • Anpassen von Device Tree-Dateien
  • Fehlersuche bei Kernel-Problemen auf BeagleBone Black

12. Best Practices und Zusammenfassung

  • Codestyle für den Kernel
  • Schreiben wartbarer Treiber
  • Häufige Entwicklungsfehler
  • Ressourcen der Kernel-Dokumentation
  • Workflow für Open-Source-Beiträge
  • Wiederholung der wichtigsten Konzepte
  • Fragen und Antworten
  • Nächste Schritte für die Linux-Kernel-Entwicklung

Voraussetzungen

Grundlegende Vertrautheit mit der Nutzung eines GNU/Linux-Systems

 14 Stunden

Teilnehmerzahl


Preis je Teilnehmer (exkl. USt)

Erfahrungsberichte (2)

Kommende Kurse

Verwandte Kategorien