Embedded Linux

Erstellung eines individuellen Embedded-Linux-Systems

Bei der Aufgabe, ein embedded Linux-System zu erstellen fühlt man sich leicht von der Fülle an möglichen Varianten und verfügbaren Paketen erschlagen. Doch was benötige ich wirklich, um die gestellten Anforderungen zu erfüllen? Und wie kann ich diese Anforderungen unter Zuhilfenahme von Open-Source-Software erfüllen?

Dieser Kurs zielt darauf ab, einerseits einen Leitfaden für den Entwurf und das Design des Zielsystems zu geben. Und andererseits die verfügbaren Tools vorzustellen und ihren zielgerichteten Einsatz bei einem Embedded-Linux-System zu vermitteln.

Praktische Fähigkeiten werden in diesem Kurs durch den Aufbau eines Embedded-Linux-Systems, beginnend mit dem Bootloader bis zum Kernel inklusive Root-Filesystem in Form einer den Kurs begleitenden Übung erworben. Dabei wird ein in der Industrie eingesetztes ARM-basiertes Board von der reinen Hardware ohne Software bis zum fertigen Embedded-Linux-System aufgebaut.

Jedem Teilnehmer steht ein Board während des Kurses für die Übung zur Verfügung. Die Übungen sind so plattformneutral gestaltet, dass die erlernten praktischen Fähigkeiten leicht in eigene Projekte transferiert werden können. Es werden ausschließlich öffentlich zugängliche Open-Source-Komponenten, welche über alle gängigen Architekturen hinweg verfügbar sind, eingesetzt.

Der Kurs gliedert sich in vier Teile:

  • Komponenten und Design von Embedded-Linux
  • Aufbau eines Embedded-Linux-Systems
  • Dateisysteme für Embedded-Linux
  • Anpassungen und Optimierungen am Embedded-Linux-System

Der Teilnehmer lernt die notwendigen Fähigkeiten, um eigenständig ein Embedded-Linux-System zu erstellen. Die gezeigten Tools stehen beispielhaft und das erlernte Wissen kann leicht auf andere Tools transferiert werden.

Trainer und Dozenten

Andreas Klinger ist selbständiger Trainer und Entwickler. Als Spezialist für Linux beschäftigt er sich mit dem internen Aufbau des Kernels und vor allem mit dessen Einsatz in linuxbasierten Embedded-Systemen.

Als Autor von Fachartikeln und als Referent auf Kongressen vermittelt er Open-Source Software-Technologien.

Voraussetzungen

Der Teilnehmer benötigt solides Grundwissen in der Benutzung der Linux-Shell, um dem Kurs folgen zu können. Teilnehmer ohne Linux-Erfahrungen können dazu die Schulung Linux für Entwickler oder Linux Grundlagen vorbereitend besuchen.

Inhalt

Komponenten und Design von Embedded-Linux

  • Unterschied zwischen Embedded- und Desktop-/Server-Linux
  • Entwicklungssystem, Cross-Development-Toolchain
  • Aufgaben des Bootloaders, U-Boot, barebox und grub
  • Anpassungen an individuelles Board
  • Erstellung einer SD-Karte für das Target
  • Linux-Kernel konfigurieren, erstellen und installieren
  • boardspezifische Anpassungen am Kernel durchführen
  • Flattened-Device-Tree (FDT) anpassen
  • Kernel-Patch erstellen und anwenden

Aufbau des Embedded-Linux-Systems

  • Root-Filesystem-Aufbau, notwendige Bestandteile
  • Bibliotheken: glibc und uClibc
  • Buildsystem für die Generierung: buildroot
  • wichtige Dämonen: inetd, Web-Server, SSH-Server, syslogd, crond
  • Adaptionen am Zielsystem und dessen Generierung

Dateisysteme für Embedded-Linux

  • Raw-Flashes (NAND, NOR): Aufbau, Funktionsweise und Anforderungen
  • Flash-Filesysteme: JFFS2, UBIFS
  • FTL-Flash mit Controller (CF-Card, USB-Stick, SD-Card, ...)
  • Linux-Dateisysteme: ext-FS, squash-FS
  • Netzwerk-Filesysteme: NFS, CIFS
  • Pseudo-FS: Temp-FS, RAM-FS, procfs, sysfs, debugfs

Embedded-Linux anpassen und optimieren

  • Buildtools im Vergleich: yocto und buildroot
  • Bootstrategien, Bootzeitoptimierung
  • Update-Szenarien, reproduzierbarer Buildvorgang
  • Auswahl von Bootloader und Kernel für individuelles Board
  • Bewertung von Board-Support-Packages (BSP's)

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.