Unsere umfassende Einführung in Embedded . Von den Grundlagen bis hin zur Interprozesskommunikation und Echtzeit-Linux.
Ziele des Kurses
Das Ziel dieses Kurses ist es, die Grundlagen von Embedded Linux zu vermitteln.
Wir werden Themen wie diese sehen:
- Wie fügen sich die Puzzleteile zusammen?
- Welche Komponenten werden zum Aufbau eines eingebetteten Linux-Systems benötigt?
- Woher bekommt man sie und wie kann man sie konfigurieren/erstellen/installieren?
- Wie können Sie Hilfe von der "Gemeinschaft" erhalten?
- Wie sieht es mit Softwarelizenzen und der Einhaltung von Open-Source-Lizenzen aus?
- Grundlagen der Kommunikation zwischen Prozessen
- Real-Time
Praktische Übungen vermitteln Ihnen die nötige Praxiserfahrung, um nach erfolgreichem Abschluss des Workshops eigene Embedded Linux-Systeme zu entwickeln.
Beschreibung
In diesem fünftägigen Kurs werden die Konzepte von Embedded anhand praktischer Übungen in Verbindung mit theoretischen Inhalten veranschaulicht. Die praktischen Übungen werden auf dem Host-Rechner mit einem Yocto Project® Software Development Kit (SDK) und der Zielhardware (z. B. i.mx8) durchgeführt. Der gesamte Workshop ist darauf ausgelegt, Sie so schnell wie möglich auf den neuesten Stand zu bringen. Die Philosophie, Konzepte und Befehle, die für den effektiven Einsatz Embedded erforderlich sind, werden durch eine einzigartige Kombination aus Theorie und Praxis vermittelt. Anstatt alles selbst herauszufinden, lernen Sie von einem erfahrenen Trainer und wenden Sie das neu erworbene Wissen über Embedded in Ihren eigenen Embedded-Entwicklungsprojekten an.
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
- Grundkenntnisse über eingebettete Prozessoren und Entwicklungsboards
- ...und/oder keine Angst, mehr über die oben genannten Themen zu erfahren
Kurs-Fahrplan

Wer sollte teilnehmen?
Führungskräfte, Projektmanager, Software- und Hardwareentwickler, Systemingenieure, Tester, Administratoren, Techniker und andere an dieser Technologie Interessierte, die so schnell wie möglich verstehen möchten, wie Embedded Linux funktioniert.
- Sie müssen Linux verwenden, oder Sie können sich den Luxus gönnen, zu entscheiden, ob es sinnvoll ist, es zu verwenden.
- Vielleicht haben Sie bereits versucht, Embedded einzusetzen, sind sich aber nicht ganz sicher, ob Sie alles richtig gemacht haben.
- Sie nutzen derzeit ein anderes Betriebssystem und möchten herausfinden, ob Linux vielleicht besser oder günstiger ist.
Gliederung des Kurses
Tag 1
Einführung
- Geschichte von Unix/Linux | Lizenzierung | Standards | Arbeiten mit Freier Software | Spelunking | Unix Philosophie
Host-Spielplatz
- Architektur |
shell| Benutzer | su | Dateihierarchie-Standard (FHS) | daemons | statische Bibliotheken/shared Bibliotheken | Berechtigungen | Zugangskontrolle | umask | hard Links | soft Links | mehr Erlaubnis-Bits | (cross) compile Framework | real/effektivuser id(uid) | reale/effektive Gruppenkennung (gid)
Tag 2
Prozesse und Kommunikation zwischen Prozessen (IPC)
- Linux-Architektur | Was ist ein Betriebssystem? | Was ist ein
scheduler? | Linux: Scheduler: Prioritäten —schedulingKlassen | Prozess, Task, Thread |errno|fork| Prozessbeendigung | Prozesszustände | Zombies | Wie können Sie die Prozesse untersuchen? - einfache Interprozesskommunikation (IPC)
- Shell-Umleitung | shelling out | tmpfiles
- erweiterte Interprozesskommunikation (IPC)
- generisch |
pipe|signal|interrupted system call|message queue|semaphore|mutex|shared memory|socket|select|poll
- generisch |
- Andere Methoden der Interprozesskommunikation| IVermeidbare Techniken der Interprozesskommunikation
Tag 3
Linux-Hardware-Kit
- Wie bootet Linux auf einem PC und auf dem Evaluation Board? | Boot-Sequenz | SD-Karten-Partitionen | Booten sehen
Was wird benötigt...
- Gastgeber
- Toolkit
- Das Yocto Project® | Installieren Sie das Yocto Project® SDK
- Vorbereitung der SD-Karte | Terminal-Emulation
screen|byobu|minicom
- Server
tftp| NFS
- Root-Dateisysteme
- Toolkit
- Zielsystem
git|u-boot- Skripting | fancy stuff | checkout | config | build | install | variables and commands
- Flacher Gerätebaum (fdt)
- Was ist ein
fdt? | Device-Tree-Compiler | Beispiele
- Was ist ein
- Kernel
checkout| Konfig-kconfig| bauen-kbuild
- Flacher Gerätebaum (fdt)
- bauen | installieren
- Kernel-Module
- bauen | installieren
Tag 4
Root File Systems
- Ein minimales Root-Dateisystem vorbereiten |
tftpServer für Tests - ramdisk | mtd | jffs2 | mtdparts | cramfs | roEXT2 | rootfs Vergleich
Anpassungen
- Das System friert ein | Pseudo
tty|getty|runlevel| statische IP |mountnfs |sshServer
Debugging im Userspace
- Was ist ein Fehler/Debugging? | Arten von Fehlern | Fehlerbeseitigungsstrategie
- Einfache Werkzeuge
lsof|ltrace|strace|procfs|top|netstat|syslog| ...
- Erweiterte Tools
- Was ist ein Debugger?
gdb:gdbauf dem Zielsystem |gdbmit Fern-Debugging
JTAG-Debugging (optional)
- JTAG | JTAG-Einrichtung | Wie debuggt man u-boot vor relocation | Weitere Möglichkeiten
Profilierung/Verfolgung
- Profiling im Gegensatz zu Tracing
- Profiling/Tracing-Werkzeuge:
strace| Systemzeitgeber |gprof|gcov|perf topund ähnliche Programme:top|powertop|powerdebugcrash:gdbauf Steroiden
Tag 5
Real-Time
- Voraussetzungen
- Unterschied zwischen Kernel und Userspace | Programmabschnitte | Unterbrechungen | Re-Entrant Code
- Echtzeit-Intro
- Was ist Real-Time? | Was ist harte Echtzeit?
- Echtzeit-Linux
- Hypervisor | Dualer Kernel | Vollständig präemptiver Kernel
- Abgestuftes Echtzeitverhalten
- explizite/implizite Präemptionspunkte | Echtzeit-Präemptionspatch | vollständig präemptiver Kernel | harte Echtzeit-Erweiterungen
- (optional) Kernel patchen/konfigurieren/erstellen | auf dem Zielsystem testen
- Doppelter Kernel
- RTLinux | Real-time application interface (RTAI) | Xenomai
- Xenomai im Vergleich zu RTAI | Adaptive Domain Environment for Operating Systems (ADEOS) | Xenomai-Architektur/SW-Stack/Skins
- (optional) Kernel patchen/konfigurieren/erstellen | auf dem Zielsystem testen
- RTLinux | Real-time application interface (RTAI) | Xenomai
- Messergebnisse: Nicht-Echtzeit-Kernel | Preempt-rt-Kernel | Dualer Kernel (Xenomai)
- Echtzeit-Mythen
Kursbroschüre (PDF)
- "Embedded Linux - Von der Systemarchitektur bis zur Echtzeit (5 Tage)"
Verwandte Kurse
- "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)"
- "Einführung in Embedded Linux in Theorie und Praxis - ein Crashkurs (3 Tage)"
- "(Embedded) Linux-Fehlerbehebung (3 Tage)"
- "FreeRTOS in Theorie und Praxis (3 Tage)"