Training for Professionals – Auffrischungskurs Embedded Linux & Einführung in das Yocto Project
PROGRAMM
MONTAG BIS FREITAG JEWEILS 9:00 - 17:00 UHR MIT PAUSEN
Tag 1 | 25. JULI 2022
EINFÜHRUNG: Einführung | Geschichte
EVAL BOARD: Wie booted Linux auf einem PC und auf dem Eval Board? | Boot Sequenz | Partitionen auf der SD Karte | Sehen wir wie es booted
WAS MAN SO BRAUCHT: git | u-boot: Scripting | Schickes Zeug | Runterladen | Kongurieren | Bauen | Installieren - Linux kernel: Runterladen | Konfigurieren - kconfig | Bauen - kbuild | Kernel Module | Installieren - Flat device tree (fdt): Den fdt untersuchen | Bauen | Installieren
KERNELMODULE: init/exit | Lizenzierung | verschmutzes(r)Modul/Kernel | EXPORT_SYMBOL | out of tree .ko makefile - Modul-Init-Werkzeuge - Modul im Kernel Tree - Parameterübergabe
USER SPACE FEHLERSUCHE/-BEHEBUNG: Einfache Tools: lsof | ltrace | strace | procfs | top | netstat - Fortgeschrittene Tools: Was ist ein Debugger?; gdb: gdb auf Zielhardware | gdb Remote-Debugging
PROZESS UND INTERPROZESSKOMMUNIKATION: Linux-Architektur | Betriebssystem | Scheduler - Prioritäten - Scheduling Klassen | Prozesse - Tasks - Threads | errno | fork | Prozessbeendigung | Prozesszustände | Zombies | Sehen wir uns einen Prozess an | Einfache Interprozesskommunikation: Shell-Umleitung | Shelling out | temporäre Dateien; Fortgeschrittene Interprozesskommunikation: Pipes | Signale | Unterbrochene System Calls | POSIX.¢ Nachrichtenwarteschlangen (Message Queues) | Semaphor | Mutex | gemeinsam genutzter Speicher (Shared Memory) | Sockets | select | poll; Andere Interprozesskommunikations-Mechanismen| Interprozesskommunikations-Techniken die man vermeiden sollte
ECHTZEIT: Voraussetzungen: Interrupts | Reentrant Code; Echtzeit Einführung: Was ist Echtzeit? | Was ist harte Echtzeit?; Echtzeit-Linux: Hypervisor | Dual Kernel | Voll präemptiver Kernel; "Grade/Stufen" des Echtzeitverhaltens: explizite/implizite Präemptions-Punkte | Echtzeit Präemptions Patch | Voll präemptiver Kernel | harte Echtzeiterweiterungen; Dual Kernel: Adeos/Xenomai: Adeos Patch | Xenomai | Kernel patchen/konfigurieren/bauen | auf dem Board ausführen; Echtzeit Mythen
Tag 3 | 27. JULI 2022
YOCTO EINFÜHRUNG: Was ist Yocto? | Was ist das YP?(Features/Herausforderungen) | Einige Werkzeuge unter dem projektübergreifenden YP (Poky | BitBake | OE-Core | Meta Daten) | Warum sollte man das YP verwenden?
ENTWICKLUNGSUMGEBUNG - Was wird für einen YP-Build benötigt? | Layer Versionen/Abhängigkeiten | Hostabhängigkeiten | Konfigurationsdateien | Host-/Kernel-Abhängigkeiten
DER YPWORKFLOW: Einleitung - Konfiguration (Benutzer | Meta Daten | Maschine | Regeln für die Distribution); Eigenschaften (Features) | Versionierung von Rezepten | Layers; Quellen; Quellen fetchen | Patchen | Konfigurieren/Kompilieren/Installieren | SSTATE | Pseudo | recipetool | Beispiele für Rezepte | PACKAGECONFIG | Pakete und deren Inhalt | Output-Analyse/Packaging | Erzeugen von Images | Erzeugen von SDKs | Tasks; Anpassen von Images (Intro | local.conf | IMAGE_FEATURES | benutzerdefinierte .bb files | benutzerdefinierte Paketgruppen)
Tag 4 | 28. JULI 2022
BITBAKE: Geschichte; Syntax (Ersetzen des Variablennamens durch den Inhalt [Variable Expansion] | Variablenzuweisung [VariableAssignment] | Vor-/Anhängen [Pre-/Append] | Entfernen [Removal] | Bedingte [Conditional] Syntax - OVERRIDES); BitBake Debugging (Debug Level | Rezepte/Images/Packagegroups finden | BitBake Umgebung/- Tasks/Logging | bauen/spezifischen Task erzwingen | cleansstate | stamp für ungültig erklären | devshell | Abhängigkeits-Explorer | alle BitBake Instanzen töten | grafische Wrapper für BitBake); Aufräumen (um Speicherplatz zu gewinnen | damit neu gebaut werden muss)
BSP: Intro | Systementwicklungs-Workflow | BSP Entwicklungsanleitung (bsp-tool - auf die aktuelle Poky Version portiert | Erstellung eines BSPs | Patches, die noch nicht Mainline sind)
KERNEL: Intro | Systementwicklungs-Work.ow| Kernel-Entwicklungsanleitung (defconfig | defconfig+Kon- figurationsfragment | in tree kmod | out of tree kmod | "klassischer" fdt | fdt mit devicetree.bbclass | . . . )
Tag 5 | 29. Juli 2022
SOFTWARE ENTWICKLUNGSKIT: Einführung | Cross-Entwicklungs Toolchain | Sysroot | BBCLASSEXTEND | Multilib | DerQEMU-Emulator | Eclipse Yocto Plug-in (veraltet) | User Space Werkzeuge | Installieren von SDKs und Toolchains: Cross-Toolchains/SDKs (Erstellen eines Cross-Toolchain-Installers, verwenden des Standard-SDK (Cross-Toolchain+Makefile/Autotools/Autotools lib + App |Rezepte), Erstellen/Verwenden eines Erweiterbaren (Extensible) SDK)
PAKETVERWALTUNG: Softwareaktualisierungen (SWUpdate) im Vergleich zu "PaketManagement" | Mit Paketen arbeiten | IPK | Einen package feed erstellen | Installieren eines Pakets mit opkg auf dem Zielsystem
LIZENZIERUNG: Einführung | eine benutzerdefinierte Lizenz hinzufügen | eine "kommerzielle" Lizenz hinzufügen | Firmware Lizenzen | Open-Source-Lizenz Bestimmungen
DEVTOOL: Einführung | Ein Rezept hinzufügen/bauen/installieren | Einen Layer erstellen/hinzufügen | Finish | Ein Rezept Ändern/Aktualisieren | Bauen/Ausführen | Ein Image bauen
WEKA FACHMEDIEN EVENTS
In enger Zusammenarbeit mit anerkannten Experten und den verantwortlichen Redaktionen unserer bekannten Medienmarken
veranstalten wir jährlich rund 50 nationale und internationale B2B-Kongresse, Seminare und Workshops für ein fest definiertes Fachpublikum.
Dazu gehören Themen wie Embedded Systems, Automotive Ethernet, Batterietechnik, Datacenter, Safety&Security, electronic Displays,
Blockchain, IoT, Bordnetz, KI, Smart Building, Digital Workplace, TSN, Wireless-Technologien, Verkabelung und vieles mehr.