LFD450 Embedded Linux Entwicklung

Der Kurs Embedded-Linux-Entwicklung vermittelt erfahrenen Entwicklern eine solide Basis für die Anwendung von Methoden zur Anpassung des Linux-Kernel und User-Space-Bibliotheken und Dienstprogrammen insbesondere an Embedded-Umgebungen, wie sie z.B. in den Bereichen Unterhaltungselektronik, Militär, Medizintechnik, Industrie oder Automotive eingesetzt werden. Der fünftägige Kurs beinhaltet umfangreiche praktische Übungen und Vorführungen mit Schwerpunkt auf den erforderlichen Tools für die Entwicklung von Embedded-Linux-Geräten. Nach erfolgreicher Teilnahme an diesem Kurs haben Sie ein tiefgehendes Verständnis der folgenden Themen:

  • Linux-Kernel-Architektur, insbesondere die für eine Anpassung des Kernels an eine kundenspezifische Embedded-Plattform relevanten Themen
  • Größenbestimmungsmethoden zur Einhaltung des Projektrahmens
  • Vielfältige Möglichkeiten zum Erstellen einer Cross-Development-Umgebung für Embedded-Projekte
  • Möglichkeiten zum Befüllen von Bibliotheken und Application-User-Spaces, im Sinne der Ziele und Einschränkungen von Embedded-Systemen

Sie durchlaufen alle Phasen der Embedded-Linux-Entwicklung mit begleitenden praktischen Übungen auf einem Embedded-Board (Bereitstellung durch Linuxhotel). In diesen Übungen sammeln Sie praktische Erfahrungen, die Sie direkt in Ihrem Projekt nutzen können. Nach dem Kurs können Sie Ihr Embedded-Linux-Entwicklerkit zum weiteren Üben mitnehmen.

Voraussetzungen

Der Kurs richtet sich in erster Linie an erfahrene Entwickler, Programmierer und Ingenieure, die lernen wollen, wie man Linux an ein Embedded-System anpasst, bzw. diejenigen, die mit dem Entwurf eines solchen Systems betraut sind. Mit dem Ziel einer verkürzten Lernkurve deckt der Kurs alle relevanten Inhalte zur Architektur eines Linux-Systems ab.

Das Thema Anwendungen wird in diesem Kurs kurz behandelt; der Schwerpunkt ist jedoch das Innenleben und der Entwurf von Embedded-Systemen und nicht die Programmierung von Applikationen für diese Systeme.

Kenntnisse der wesentlichen Kernel-Schnittstellen und Techniken, wie dem Compilieren und Schreiben bzw. Load und Unload von Modulen, die Anwendung von Synchronisationsfunktionen sowie die Grundlagen von Speicherzuweisung und -verwaltung wie im Kurs Linux-Systemprogrammierung vermittelt.

Inhalt

  • Einführung
  • Embedded- und Echtzeit-Systemkonzepte
  • Cross-Development-Umgebungen: Ziele und Anforderungen
  • Cross-Development-Toolchain
  • Erstellen eines Target-Entwicklungsboards
  • KBuild-System
  • Bootloader und U-Boot
  • Kernel-Konfiguration, -Kompilierung, Booten
  • Gerätetreiber**
  • Gerätebäume **
  • Target-Dateisystem-Packaging
  • Erstellen eines Target Root-Dateisystems
  • Auswahl des Root-Dateisystems
  • Konfigurieren von uClibc
  • Erstellen der BusyBox Utility Suite
  • Kernel-Überwachung und Debugging
  • Größenbestimmung
  • Speichermedien**
  • Komprimierte Dateisysteme
  • System-Upgrades
  • Echtzeiterweiterungen

** Diese Abschnitte können entweder zum Teil oder in vollem Umfang abgehandelt werden. Sie beinhalten z.B. Hintergrundinformationen, spezielle Themen oder fortgeschrittene Themen. Je nach Erfahrungsstand der Teilnehmergruppe oder zeitlichen Gegebenheiten entscheidet der Kursleiter, ob und welchem Umfang diese Abschnitte behandelt werden.

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.