Anmeldung beendet
Info
Please see below for English version.
Auffrischungskurs Embedded Linux & Einführung in das Yocto Projekt
Nach einem kurzen ”Auffrischungskurs Embedded Linux (2 Tage)”, möchten wir Ihnen das Wesentliche zur Nutzung des ”Yocto Projekts (3 Tage)” vermitteln. Nach der ”Auffrischung” werden wir sehen, wie BSP/Framework-Betreuer das ”YoctoYocto-Projekt” verwenden würden. Wir werden auch sehen wie Entwickler es verwenden können, die vielleicht nicht einmal wissen wollen, dass sie es verwenden.
Dieses Seminar können Sie auch als Online-Privat-Seminar buchen! Schreiben Sie uns einfach eine unverbindliche Mail mit Ihrem Wunschtermin und Ort mit Anzahl der Teilnehmer: training@eclipseina.com
Wir bieten auch ein eigenes Seminar zum Yocto Projekt an.
Blättern Sie durch den Seminarkatalog der Embedded Academy, um viele weitere hochwertige Trainings zu entdecken!
Zielgruppe
Software-, Entwicklungs-, Systemingenieure, Tester, Administratoren, Ingenieure und andere an dem YP Interessierte, die bereits grundlegende Kenntnisse von (Embedded) Linux haben
Voraussetzungen
- Vertrautheit mit der Verwendung eines Linux-Systems (z.B. Ubuntu) als Endbenutzer im user space
- Grundlegende Vertrautheit mit einer Befehlszeilen-Shell
- Grundkenntnisse der Programmierung von User/Kernel-Space mit Linux
Inhalte des Seminars
1. Tag:
- 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 | Konfigurieren | Bauen | Installieren
- Linux kernel
- Runterladen | Konfgurieren - kconfig | Bauen - kbuild | Kernel Module | Installieren
- Flat device tree (fdt)
- Den fdt untersuchen | Bauen | Installieren
- git | u-boot
- Kernel Module
- init/exit | Lizenzierung | verschmutzes(r) Modul/Kernel | EXPORT_SYMBOL | out of tree .ko makefile
- Modul-Init-Werkzeuge
- Modul im Kernel Tree
- Parameterübergabe
- Character Treiber
- Gerätedateien | Gerätetypen | Geräteknoten major/minor | Kernel-Treiber-Schnittstelle
- Gerätetreiber: Einführung | Anmeldung | Initialisierung | Öffnen/Schließen
- Miscellaneous Character Treiber
- User Space Fehlersuche/-behebung
- Einfache Tools
- lsof | ltrace | strace | procfs | top | netstat | syslog | ...
- Fortgeschrittene Tools
- Was ist ein Debugger?
- gdb: gdb auf Zielhardware | gdb Remote-Debugging
- Einfache Tools
- Kernel Fehlersuche/-behebung (optional)
- Einführung | kgdb/kdb + agent-proxy | JTAG
2. Tag:
- 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.4 Nachrichtenwarteschlangen (Message Queues) | Semaphor | Mutex | gemeinsam genutzter Speicher (Shared Memory) | Sockets | select | poll
- Andere Interprozesskommunikations-Mechanismen | Interprozesskommunikations-Techniken die man vermeiden sollte
- 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
- 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
- Voraussetzungen
3. Tag:
- 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?
- So werden Sie Teil unserer Yocto Project-Community (optional)
- Erste Schritte | So erreichen Sie uns | Sich beteiligen (Participate) | Beitragen (Contribute) | Soziale Medien | Veranstaltungen
- Entwicklungsumgebung
- Was wird für einen YP-Build benötigt? | Layer Versionen/Abhängigkeiten | Hostabhängigkeiten | Kongurationsdateien | Host-/Kernel-Abhängigkeiten
- Der YP Workflow
- Einleitung
- Konfiguration (Benutzer | Meta Daten | Maschine | Regeln für die Distribution)
- Eigenschaften (Features) | Versionierung von Rezepten | Layers
- Quellen
- Quellen fetchen | Patchen | Kofigurieren/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)
4. Tag:
- BitBake
- Geschichte
- Syntax (Ersetzen des Variablennamens durch den Inhalt [Variable Expansion] | Variablenzuweisung [Variable Assignment] | 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)
- Layer
- Intro | bitbake-layers tool | dynamische Layer
- 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-Workflow| Kernel-Entwicklungsanleitung (defconfig | defconfig+Konfigurationsfragment | in tree kmod | out oftree kmod | "klassischer"fdt | fdt mit devicetree.bbclass | ...)
5. Tag:
- Software Entwicklungskit
- Einführung |Cross-Entwicklungs Toolchain | Sysroot | BBCLASSEXTEND | Multilib|Der QEMU-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
- Einführung |Cross-Entwicklungs Toolchain | Sysroot | BBCLASSEXTEND | Multilib|Der QEMU-Emulator | Eclipse Yocto Plug-in (veraltet) | User Space Werkzeuge | Installieren von SDKs und Toolchains
- Paketverwaltung
- Softwareaktualisierungen (SW Update) im Vergleich zu "Paket Management" | 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
Technische Voraussetzungen für die Teilnahme an einer Remote Schulung
- (ship-it/Web/Host/Zielhardware/Telefon) E-Mail-Adresse, um Login Informationen zu erhalten.
- (Web) Screen Sharing/Audio/Video/Whiteboard/Chat/Fragen&Antworten: https://www.bigmarker.com erfordert dies: https://rlbl.me/bm-req.
- Backup: (Web)/Audio (Telefon) Telefonkonferenz: https://www.turbobridge.com/international.html
- (Host/Zielhardware) Shell: Port 22 nicht blockiert: so etwas wie: ssh @vlabx.dyndns.org
- Backup: (Host/Zielhardware) Shell über Browser: Port 443 nicht blockiert: so etwas wie: https://vlabx.dyndns.org
Veranstalter:
Eclipseina GmbH | Embedded Academy
Technologiezentrum TechBase
Franz-Mayer-Straße 1
93053 Regensburg
Tel.: +49 941 / 462 974 20
Fax: +49 941 / 462 974 30
--------------------------------------------------------------- English ---------------------------------------------------------------
Refresher to Embedded Linux & Intro to the Yocto Project
After a quick ”Refresher to Embedded Linux (2 days)” to provide an understanding of the essentials to utilize the ”Yocto Project (3 days)”. After the ”Refresher” we’ll see how BSP/framework maintainers would use the ”Yocto Project”. We’ll also see how developers can use it, who might not even want/need to know they are using it
You can also book this seminar as an online-private-seminar! Just write us a short non-binding e-mail with the desired date and location as well as the number of participants: training@eclipseina.com
We also offer a training on the topic of the Yocto Project.
Get an overview of all our seminars on embedded-academy.com!
Target Group
Software-, development-, system engineers, testers, administrators, engineers and other parties interested in the YP, with a basic knowledge of Embedded Linux
Prerequisites
- Basic familiarity with using a Linux system (e.g. Ubuntu) as an end user in user space
- Basic familiarity with a command line shell
- Basic knowledge of user/kernel space programming with Linux
- Intermediate C programming knowledge
Training Content
1st day:
- Introduction
- Introduction | History
- Eval Board
- How does Linux boot on a PC and on the Eval Board? | Boot Sequence | SD card partitions | See it booting
- Stuff needed
- git | u-boot
- scripting | fancy stuff | checkout | config | build | install
- kernel
- checkout | config - kconfig | build - kbuild | kernel modules | install
- Flat device tree (fdt)
- investigate | build | install
- git | u-boot
- Kernel Modules
- init/exit | Licensing | tainted module/kernel | EXPORT_SYMBOL | out of tree .ko makefile
- module-init-tools
- put module in kernel tree
- parameter passing
- Character Driver
- Device Files | Device Types | Device Nodes major/minor | Kernel Driver Interface
- Device Driver: Intro | Registration | Initialization | Open/Release
- Miscellaneous Character Drivers
- User Space Debugging
- Simple Tools
- lsof | ltrace | strace | procfs | top | netstat | syslog | ...
- Advanced Tools
- What’s a debugger?
- gdb: target gdb | gdb remote debugging
- Simple Tools
- Kernel Debugging (optional)
- Debugging Intro | kgdb/kdb + agent-proxy | JTAG
2nd day:
- Processes and Inter Process Communication
- Linux architecture | operating system | scheduler - priorities - scheduling classes | process - task - thread | errno | fork | process termination | process states | zombies | watch processes | simple IPC
- shell redirection | shelling out | tmpfiles
- advanced IPC
- pipes | signals | interrupted system calls | message queues | semaphores | mutex | shared memory | sockets | select | poll
- other IPC methods | IPC techniques to avoid
- Linux architecture | operating system | scheduler - priorities - scheduling classes | process - task - thread | errno | fork | process termination | process states | zombies | watch processes | simple IPC
- Real-time
- prerequisites
- interrupts | re-entrant code
- Real-Time Intro
- What is Real-Time? | What is hard Real-Time?
- Real-Time Linux
- Hypervisor | Dual kernel | Fully Preemptive Kernel
- Degrees of Real-Time behavior
- explicit/implicit preemptionpoints | real-timepreemptionpatch | fullypreemptive kernel | hard real-time extensions
- Dual Kernel: Adeos/Xenomai
- Adeos patch | Xenomai | patch/config/build kernel | run it on board
- Real-Time Myths
- prerequisites
3rd day:
- Yocto Introduction
- What is Yocto? | What is the YP? (features/challenges) | Some tools under the YP umbrella (Poky | BitBake | OE-Core | Metadata) | Why use the YP?
- How to become part of our Yocto Project community (optional)
- First steps | How to get in touch | Participate | Contribute | Social Media | Events
- Development Environment
- What is needed for a YP build? | Layer versions/dependencies | host dependencies | config files | host/kernel dependencies
- The YP Workflow
- Intro
- Workflow | OE architecture
- Configuration (User | Metadata(Recipes) | Machine(BSP) | Distribution Policy)
- Features | Recipe Versioning | Layers
- Sources
- Source fetching | Patching | Configure/Compile/Staging | SSTATE | Pseudo | recipetool | Examples of Recipes | PACKAGECONFIG | Packages and their contents | Output analysis/Packaging | Image Generation | SDK Generation | Tasks
- Customizing Images (Intro | local.conf | IMAGE_FEATURES | custom image recipes (.bb files) | custom packagegroups)
4th day:
- BitBake
- History
- Syntax (Variable Expansion | Variable Assignment | Pre-/Append | Removal | Variable Flags | Conditional Syntax - OVERRIDES) 4
- BitBake Debugging (debug level | find recipes/images/packagegroups | BitBake environment/tasks/logging | force build/specific task | cleansstate | invalidate stamp | devshell | dependencies | packages | kill all BitBake instances | BitBake graphical wrapper)
- Cleaning (gain disk space | rebuild)
- Layers
- Intro | bitbake-layers tool | dynamic layers
- BSP
- Intro | System Development Workflow | BSP Developer’s Guide (bsp-tool - ported to recent Poky versions) | BSP creation | non-mainline kernel patches
- Kernel
- Intro | System Development Workflow | Kernel Development Manual (defconfig | defconfig + configuration fragment | in tree kmod | out of tree kmod | fdt classic | fdt with devicetree.bbclass | ...)
5th day:
- Software Development Kit
- Intro | Cross-Development Toolchain | Sysroot | BBCLASSEXTEND | Multilib | The QEMU Emulator | SDK- Eclipse Yocto Plug-in (deprecated) | User Space Tools | Installing SDKs & toolchains
- Cross-Toolchains/SDKs
- Building a Cross-Toolchain installer
- Using the Standard SDK (Cross-Toolchain + Makefile/Autotools/Autotools lib + App | recipes)
- Building/Using the Extensible SDK
- Package Management
- SW update vs. Package Management | Working with Packages | IPK | creating a package feed | installing a package with opkg on the target
- Licensing
- Intro | Add custom license | Add commercial license | Firmware License | Open Source License Compliance
- Devtool
- Intro | Add recipe/Build/Deploy | Create/Add layer | Finish | Modify/Update-Recipe | Build/Run | Build Image
Technical requirements to attend a remote/online training
- (ship-it/web/host/target/phone) e-mail address to get login credentials
- (web) screen sharing/audio/video/whiteboard/chat/Q&A: https://www.bigmarker.com requires this: https://rlbl.me/bm-req.
- backup: (web)/audio (phone) conference call: https://www.turbobridge.com/international.html
- (host/target) shell: port 22 not blocked: something like: ssh @vlabx.dyndns.org
- backup: (host/target) shell via browser: port 443 not blocked: something like: https://vlabx.dyndns.org
Organiser:
Eclipseina GmbH | Embedded Academy
Technologiezentrum TechBase
Franz-Mayer-Straße 1
93053 Regensburg
Tel.: +49 941 / 462 974 20
Fax: +49 941 / 462 974 30
Veranstaltungsort
Technologiezentrum TechBaseEclipseina GmbH im 1. Stock
Franz-Mayer-Straße 1
93053 Regensburg | 09:00 - 17:00
Deutschland
Koordinaten (Lat, Long):
49.002216, 12.100555
Karte anzeigenRoutenplanung