Embedded-Linux

Für all diejenigen, welche den Einstieg in Embedded-Linux suchen.
Je nach Vorkenntnissen kann die Agenda mit grundlegenden Linux-Basis-Know-How ergänzt werden oder auch auf bereits vorhandene Linux-Kenntnisse aufbauen.
In einem Vorab-Gespräch werden die Inhalte und das Einstiegsniveau entsprechend abgestimmt.
Dementsprechend ist die Kursdauer mit 3 - 5 Tagen zu veranschlagen.

Besonderheit an diesem Kurs sind die vielen Praxisbeispiele und Übungen.
So wird während des Seminars ein komplettes Embedded-Linux-System für einen ARM-Single-Board-Computer beginnend bei der Toolchain über den Bootloader, Linux-Kernel und Root-Filesystem erstellt.
Optional werden Übungen zu Spezialthemen angeboten:

  • Bootzeitoptimierung: Init-RAM-FS-Boot
  • Anbindung von Sensoren mit GPIO, I2C, SPI
  • Booten von NAND mit UBI-FS
  • Konfiguration von systemd

Agenda

Entwicklungssystem

Unterschiede zwischen Desktop-, Server- und Embedded-Linux
Cross-Development-Toolchain
Buildsysteme

Bootloader

Aufgaben des Bootloaders
Bootloader u-boot, barebox und grub
Konfiguration und Erstellung
Booten von SD-Karte
Reduzierung des Bootloaders

Linux-Kernel

Kernel-Boot-Prozeß
Auswahl des Kernels (Vanilla, Manufacturer)
Device-Tree
Konfiguration, Erstellung und Installation

Root-Filesystem

Schlankes Root-Filesystem: busybox
C-Library (glibc, uClibc, musl)
Dämonen (cron, ssh)
System-V-Init-Verfahren
systemd (Units, Einbindung eigener Dienste)
systemd-Tools (systemctl, journalctl, timedatectl)

Buildsysteme im Vergleich

Toolchain-only: crosstool-ng
Schnelle und einfache Erstellung: buildroot
Viele Features: yocto
Debian-basierend: elbe

Bootzeit optimieren

Init- / systemd-Prozeß optimieren
Minimalst-Root-Filesystem
Konfiguration eines "tiny"-Kernels
Kernel-Module nutzen
Bootloader reduzieren
Init-RAM-FS-Bootverfahren

System-Update im Feld

Bootloader-Unterstützung
Redundante Update-Partitionen
Paketverwaltung nutzen
Synchronisierung von Verzeichnissen