Header Background
 
 
 

LFD430 Entwicklung von Gerätetreibern für Linux-Systeme

Seminardauer: 4 Tage

Ziele der Schulung

In dieser 4-tägigen Schulung "LFD430 Entwicklung von Gerätetreibern für Linux-Systeme" lernen Sie, wie Sie Gerätetreiber für Linuxsysteme entwickeln. Erfahren Sie mehr über verschiedene Arten von Linux Gerätetreibern, die entsprechenden APIs und Methoden, mit denen Geräte mit dem Kernel interagieren. Die Bandbreite der Gerätetreiber in Linux Interaktion zwischen Geräten (Hardware und Software) und dem Kernel Wichtige Module und Methoden zur Entwicklung und Fehlerbehebung von Linux-Treibern Zusätzliches Wissen und mehr. Die vermittelten Kenntnisse sind in allen führenden Linux-Distributionen anwendbar.

Zielgruppe Seminar

  • erfahrene Entwickler

Voraussetzungen

Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:

  • Erfahrung in der C-Programmierung
  • Vertrautheit mit Linux Dienstprogrammen und Texteditoren
  • Kenntnisse zu Kernel-Schnittstellen und Methoden wie Schreiben, Kompilieren, Load und Unload von Modulen, Synchronisation
  • Grundkenntnisse im Bereich Speicherzuweisung und Speicherverwaltung, entsprechend LFD420

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.

Seminarinhalt

Einführungen

  • Linux Distributionen
  • Plattformen
  • Vorbereitung Ihres Systems
  • Verwendung und Herunterladen einer virtuellen Maschine

Preliminaries

  • Verfahren
  • Kernel-Versionen
  • Kernel-Quellen und Verwendung von git
  • Eigenen Kernel erstellen
  • Hardware
  • Staging tree

Wie man in OSS-Projekten arbeitet

  • Überblick über die korrekte Durchführung von Übertragungen.
  • Sicherheit und Qualität durch die Nähe zur Mainline
  • Projekt-DNA erforschen und verstehen
  • Das Anliegen erkennen und verfolgen
  • Bestimmung der Entwickler und deren Arbeitsabläufe und Methoden
  • Frühzeitige Informationen einholen und freier arbeiten
  • Tragen Sie inkrementelle Bits bei und meiden Sie große Code-Dumps.
  • Kein Platz für Ego: Denke nicht engstirnig.
  • Seien Sie geduldig, entwickeln Sie langfristige Partnerschaften und seien Sie hilfreich

Gerätetreiber

  • Gerätetypen
  • Mechanismen vs. Richtlinien
  • Vermeidung von Binary Blobs
  • Energie-Management
  • Wie Applikationen Gerätetreiber verwenden
  • Durchlaufen eines Systemaufrufs Zugriff auf ein Gerät
  • Fehlermeldungen
  • printk()
  • Geräte: Verwaltungs-Ressourcen für Geräte

Modul- und Gerätetreiber

  • Die module_driver()-Makros
  • Module und Hot-Plug

Speichermanagement und Zuweisung

  • Virtual- und physikalischer Speicher
  • Speicherbereiche
  • Seiten-Tabellen
  • kmalloc()
  • __get_free_pages()
  • vmalloc()

Character Devices

  • Geräte-Knotenpunkte
  • Major- und Minor-Nummern
  • Reservierung von Major-/Minor-Nummern
  • Zugriff auf den Geräte-Knotenpunkt
  • Registrierung des Geräts
  • udev
  • dev_printk() und zugehörige
  • file_operations-Struktur
  • Treiber-Einstiegspunkte
  • Die Datei- und Inode-Strukturen
  • Diverse Charakter-Treiber

Kernel Funktionen

  • Bestandteile des Kernels
  • Anwenderbereich vs. Kernel-Bereich
  • Was sind Systemaufrufe?
  • Verfügbare Systemaufrufe
  • Zeitplanungsalgorithmen und Task-Strukturen
  • Prozess-Kontext

Übertragung von Benutzer- und Kernelbereich

  • Übertragung zwischen den Bereichen
  • put(get)_user() und copy_to(from)_user()
  • Direkte Übertragung: Kernel-E/A und Speicher-Mapping
  • Kernel-E/A
  • Zuordnung von Benutzerseiten
  • Speicher-Zuordnung (Memory Mapping)
  • Anwender-Funktionen für mmap()
  • Treibereinstiegspunkt für mmap()
  • Dateizugriff aus dem Kernel

Störungen und Ausnahmen

  • Was sind Interrupts und Exceptions?
  • Ausnahmen
  • Asynchrone Interrupts
  • MSI
  • Aktivieren/Deaktivieren von Interrupts
  • Was Sie zur Interrupt-Zeit nicht tun können
  • IRQ-Daten-Strukturen
  • Installieren eines Interrupt-Handlers

Zeitmessung

  • Verschiedene Arten von Zeitmessungen
  • Jiffies
  • Bestimmung der aktuellen Zeit
  • Zeitquellen
  • Real Time Clock
  • Programmierbarer Intervall-Timer
  • Zeitstempelzähler
  • HPET

Kernel-Timer

  • Verzögerungen einfügen
  • Was sind Kernel-Timer?
  • Timer-Funktionen mit niedriger Auflösung
  • Timer-Implementierung mit niedriger Auflösung
  • Timer mit hoher Auflösung
  • Einsatz von hochauflösenden Timern

ioctls

  • Was sind ioctls?
  • Einstiegspunkt des Treibers für ioctls
  • Definition von ioctls

Unified Device Model und sysfs

  • Einheitliches Geräte-Modell
  • Grundlegende Strukturen
  • Reale Geräte
  • sysfs
  • kset- und kobject-Beispiele

Firmware

  • Was ist Firmware?
  • Laden der Firmware

Sleeping und Wait Queues

  • Was sind Queues?
  • Sleep und Waking Up
  • Sleep Details
  • Exclusive Sleeping
  • Waking Up Details
  • Polling

Störungs-Handling: Verzögerte Funktionen und Benutzer Treiber

  • Top and Bottom Halves
  • Softirqs
  • Tasklets
  • Work Queues
  • New Work Queue API
  • Kernel Threads erstellen
  • Threaded Interrupt Handlers
  • Interrupt Handling im User-Space

Hardware I/O

  • Anschlüsse und Ports
  • Speicherbarrieren
  • Registrierung von E/A-Ports
  • Daten aus E/A-Registern lesen und schreiben
  • Zuweisung und Mapping von I/O-Speicher
  • Zugriff auf I/O-Speicher
  • Benutzerzugriff - ioperm(), iopl(), /dev/port

PCI

  • Was ist PCI?
  • PCI-Gerätetreiber
  • Lokalisierung von PCI-Geräten
  • Zugriff auf den Konfigurationsbereich
  • Zugriff auf I/O- und Speicherbereiche
  • PCI-Express

Plattformtreiber

  • Was sind Plattformtreiber?
  • Hauptdatenstrukturen
  • Registrierung von Plattformgeräten
  • Festcodierte Plattformdaten
  • Der neue Weg: Gerätestrukturen

Direkter Speicherzugriff (DMA)

  • Was ist DMA?
  • Direktzugriff (DMA) zum Anwender
  • Unterbrechungen und DMA
  • DMA-Speicherbeschränkungen
  • DMA-Masken
  • DMA-API
  • DMA-Pools
  • Scatter/Gather-Zuordnungen

Netzwerktreiber I: Grundlagen

  • Netzwerkschichten und Datenkapselung
  • Datenverbindungsebene
  • Netzwerk-Gerätetreiber
  • Laden/Entladen
  • Öffnen und Schließen

Netzwerk-Treiber II: Datenstrukturen

  • net_device Struktur
  • net_device_ops Struktur
  • sk_buff Struktur
  • Socket-Buffer-Funktionen
  • netdev_printk() und Konsorten

Netzwerktreiber III: Senden und Empfangen

  • Senden von Daten und Timeouts
  • Empfangen von Daten
  • Statistik

Netzwerktreiber IV: Ausgewählte Themen

  • Multicasting
  • Änderungen im Link-Status
  • ioctls
  • NAPI und Unterbrechungsunterdrückung
  • NAPI-Details
  • TSO und TOE
  • MII und ethtool

USB-Treiber

  • Was ist USB?
  • USB-Topologie
  • Terminologie
  • Endpunkte
  • Deskriptoren
  • USB-Geräte-Klassen
  • USB-Unterstützung in Linux
  • Registrierung von USB-Gerätetreibern
  • Daten verschieben

Energie-Management

  • ACPI und APM
  • Zustände der Systemleistung
  • Rückruffunktionen

Blocktreiber

  • Was sind Blocktreiber?
  • Puffern
  • Registrieren eines Blocktreibers
  • Gendisk-Struktur
  • Behandlung von Anfragen

Open Badge für dieses Seminar - Ihr digitaler Kompetenznachweis

Digital Skills Open Badges

Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erhalten Sie zusätzlich zu Ihrem Teilnehmerzertifikat ein digitales Open Badge (Zertifikat) – Ihren modernen Nachweis für erworbene Kompetenzen.

Ihr Open Badge ist jederzeit in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com-Konto verfügbar. Mit wenigen Klicks können Sie diesen digitalen Nachweis in sozialen Netzwerken teilen, um Ihre Expertise sichtbar zu machen und Ihr berufliches Profil gezielt zu stärken.

Übersicht: Linux Foundation Schulungen Portfolio

Mehr zu den Vorteilen von Badges

Seminare kurz vor der Durchführung

TerminStandortAktion
03.06. - 06.06.2025 Hamburg Seminar jetzt anfragen
28.07. - 31.07.2025 München Seminar jetzt anfragen
05.08. - 08.08.2025 Köln Seminar jetzt anfragen
02.09. - 05.09.2025 Nürnberg Seminar jetzt anfragen
 
Anmeldungen vorhanden

1.) Wählen Sie den Seminartyp:




2.) Wählen Sie Ort und Datum:

1.995,00 € Preis pro Person

spacing line2.374,05 € inkl. 19% MwSt
inkl. Schulungsumgebung (LAB)
zzgl. Seminarunterlage
zzgl. Verpflegung 30,00 €/Tag bei Präsenz

Seminar jetzt anfragen Auf den Merkzettel
PDF IconPDF Icon
Folgende Schulungsthemen könnten Sie alternativ interessieren.
 

Diese Seite weiterempfehlen:

0
Merkzettel öffnen
0
Besuchsverlauf ansehen
IT-Schulungen.com Control Panel
Warnung Icon Sie haben in Ihrem Browser Javascript deaktiviert! Bitte aktivieren Sie Javascript um eine korrekte Darstellung und Funktionsweise von IT-Schulungen zu gewährleisten. Warnung Icon