Ziel dieses Crashkurses ist es, einen grundlegenden Überblick über Embedded Linux zu geben.
Ziele des Kurses
Wir werden Themen wie diese sehen:
- Welche Komponenten werden für den Aufbau eines Embedded-Linux-Systems benötigt?
- Woher bekommt man sie und wie kann man sie konfigurieren/erstellen/installieren?
- Wo kann man Hilfe bekommen?
- Wie sieht es mit Lizenzen aus?
Durch praktische Übungen erwerben Sie die notwendigen praktischen Kenntnisse, um ein Embedded-Linux-System mit Mainline-Komponenten zu konfigurieren bzw. aufzubauen.
Beschreibung
Dieser dreitägige Kurs vermittelt anhand von praktischen Übungen in Kombination mit theoretischem Unterricht einige grundlegende Konzepte von Embedded . Die praktischen Übungen werden auf dem Host-Rechner mit einem Yocto Project® SDK sowie auf Zielhardware (z. B. i.mx8) durchgeführt. Der gesamte Workshop ist darauf ausgelegt, Sie schnell auf den neuesten Stand zu bringen. Die Konzepte und Befehle, die für den effektiven Einsatz von Embedded erforderlich sind, werden durch eine Kombination aus Theorie und praktischen Übungen vermittelt. Erfinden Sie das Rad nicht neu, sondern lernen Sie von einem erfahrenen Trainer und nehmen Sie das neu erworbene Wissen über Embedded sowie die Fähigkeit, es effektiv in Ihre eigenen Embedded-Entwicklungsprojekte zu integrieren, mit nach Hause.
Voraussetzungen
- Grundlegende Vertrautheit mit der Verwendung eines Linux-Systems (z. B. Ubuntu) als Endbenutzer im Benutzerbereich
- Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
- Vertrautheit mit eingebetteten C-Konzepten und Programmierung
- Fähigkeit zur Entwicklung von Software unter Verwendung der C-Syntax
- Grundlegende Kenntnisse über Entwicklungsboards für eingebettete Prozessoren
- … und keine Scheu, mehr darüber zu erfahren
Kurs-Fahrplan

Wer sollte teilnehmen?
Projektmanager, Software- und Hardwareentwickler, System- und Testingenieure, Administratoren, Techniker und Technikinteressierte möchten so schnell wie möglich verstehen, wie Embedded Linux funktioniert. Sie müssen Linux einsetzen oder entscheiden, ob dessen Einsatz sinnvoll ist. Vielleicht nutzen Sie Embedded bereits, sind sich aber nicht ganz sicher, ob Sie alles richtig machen. Oder Sie verwenden derzeit ein anderes Betriebssystem und möchten herausfinden, ob Linux möglicherweise kostengünstiger oder zu kompliziert wäre.
Gliederung des Kurses
Tag 1
Einführung
- Geschichte von Unix/Linux | Lizenzierung | Standards | Unix-Philosophie
Embedded Besonderheiten
- Linux auf dem Desktop im Vergleich zu Linux in einem eingebetteten System | Cross-/Native Toolchains | Vorgefertigte Toolchains | Build-Systeme | C-Bibliotheken |...
Evaluation Board
- Wie bootet Linux auf einem PC und auf dem Evaluation Board? | Boot-Sequenz | SD-Karten-Partitionen | Booten sehen
Yocto Einführung
- Was ist Yocto?| Wasist das Yocto Project®? (Funktionen/Herausforderungen) | Einige Tools unter dem Dach des Yocto Project® (Poky | BitBake | OE-Core | Metadaten ) | Warum sollte man das Yocto Project® nutzen?
Was wird benötigt...
- Gastgeber
- Toolkit
- Das Yocto Project® | Die Yocto Project®-Build-Umgebung | Installation des Yocto Project® SDK
- Vorbereitung der SD-Karte | Terminal-Emulation
screen | byobu | minicom
- Server
- DHCP | TFTP | NFS
- Root-Dateisysteme
- Toolkit
Tag 2
- Zielsystem
- Kernel
- checkout | config - kconfig | build - kbuild | Kernel-Module | installieren
- Flacher Gerätebaum (fdt)
- Untersuchen | Bauen | Installieren
- Kernel
Anpassungen (optional)
- Anpassungen: System hängt sich auf | Pseudo tty | getty | Runlevel | statische ip
- Init: Sys-V | Verschiedenes | systemd | bootgraph | bootchart
Tag 3
Kernel-Module
- init/Ausgang | Lizenzvergabe |
taintedModul/Kernel | EXPORT_SYMBOL |out of tree.ko makefile - module-init-tools
- Modul in den Kernel-Baum einbinden
- Parameterübergabe
Character Driver
- Gerätedateien | Gerätetypen | Major-/Minor-Nummern von Geräteknoten | Kernel-Treiber-Schnittstelle
- Gerätetreiber: Einführung | Registrierung | Initialisierung | Öffnen/Freigeben
Miscellaneous Character Drivers
Debugging im Userspace
- Einfache Werkzeuge | Erweiterte Werkzeuge | Was ist ein Debugger?
- gdb: Ziel gdb | gdb
remoteFehlersuche
Kernel-Debugging (optional)
- kgdb/kdb + agent-proxy | JTAG
Profilierung/Verfolgung
- Profiling/Tracing-Werkzeuge: strace |
system timers| gprof | gcov | ftrace/kernelshark | systemtap | perf | LTTng - top und verwandte Anwendungen: top |
latencytop| powertop | powerdebug crash: gdb auf Steroiden
Kursbroschüre (PDF)
- "Einführung in Embedded Linux in Theorie und Praxis - ein Crashkurs (3 Tage)"
Verwandte Kurse
- "Embedded Linux - Von der Systemarchitektur bis zur Echtzeit (5 Tage)"
- "Auffrischung zu Embedded Linux & Einführung in das Yocto Projekt (5 Tage)"
- "Embedded Linux Kernel Interna und Gerätetreiber (5 Tage)"
- "Das Yocto-Projekt - Ein gründlicher Überblick (4 Tage)"
- "Einführung in Embedded Linux & Real-Time, Vogelperspektive des Yocto-Projekts (4 Tage)"
- "(Embedded) Linux-Fehlerbehebung (3 Tage)"
- "FreeRTOS in Theorie und Praxis (3 Tage)"