Ziel dieses Crashkurses ist es, einen grundlegenden Überblick über Embedded Linux zu geben.
Ziele des Kurses
Wir werden Themen wie diese sehen:
- Welche Komponenten sind für die Erstellung eines Embedded Linux-Systems erforderlich?
- Woher bekommt man sie und wie kann man sie konfigurieren/erstellen/installieren?
- Wo kann man Hilfe bekommen?
- Wie sieht es mit Lizenzen aus?
Praktische Übungen vermitteln Ihnen die nötige praktische Erfahrung, um ein Embedded Linux-System mit Mainline-Komponenten zu konfigurieren/erstellen.
Beschreibung
In diesem dreitägigen Kurs werden einige grundlegende Konzepte von Embedded Linux anhand von praktischen Übungen in Kombination mit Anleitungen veranschaulicht. Die praktischen Übungen werden auf dem Host mit einem Yocto Project® SDK und auf einer Zielhardware (z.B. i.mx6) durchgeführt. Der gesamte Workshop ist darauf ausgelegt, Sie schnell auf den neuesten Stand zu bringen. Die Konzepte und Befehle, die für eine effektive Nutzung von Embedded Linux notwendig sind, werden durch eine Kombination aus Theorie und praktischen Übungen beschrieben. Erfinden Sie das Rad nicht neu, sondern lernen Sie von einem erfahrenen Trainer und nehmen Sie das neu erworbene Wissen über Embedded Linux und 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/oder keine Angst, mehr über die oben genannten Themen zu erfahren
Kurs-Fahrplan
Wer sollte teilnehmen?
Projektleiter, Software-, Hardware-, Entwicklungs-, System-, Testingenieure, Administratoren, Techniker und Technikinteressierte, die möglichst schnell verstehen wollen, wie Embedded Linux funktioniert. Sie müssen Linux einsetzen oder entscheiden, ob der Einsatz sinnvoll ist oder nicht. Vielleicht benutzen Sie bereits Embedded Linux, sind sich aber nicht ganz sicher, ob Sie alles richtig machen. Sie benutzen derzeit ein anderes Betriebssystem und wollen herausfinden, ob Linux vielleicht kostengünstiger oder zu kompliziert ist.
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 |...
Eval 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? | Was ist das Yocto Project®? (Funktionen/Herausforderungen) | Einige Werkzeuge unter dem Dach des Yocto Project® (Poky | BitBake | OE-Core | Metadata) | Warum sollten Sie das Yocto Project® nutzen?
Was wird benötigt...
- Gastgeber
- Toolkit
- Das Yocto-Projekt® | 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 |
tainted
Modul/Kernel | EXPORT_SYMBOL |out of tree
.ko makefile - module-init-tools
- Modul in den Kernelbaum aufnehmen
- Parameterübergabe
Character Driver
- Gerätedateien | Gerätetypen | Geräteknoten major/minor | 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
remote
Fehlersuche
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
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)"