Seminare in der Embedded-Linux-Programmierung

Wie entwickelt man eigentlich gute Software? Software, die tolle Features hat und keine Bugs? Treiber, die das Letzte aus der Hardware herauskitzeln? GUIs mit hoher Usability? Die prämierten Referenten der Embedded-Linux-Woche geben Antworten auf diese Fragen in den verschiedenen Seminaren.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

Alle Kurse und Kombinationsmöglichkeiten im Überblick

Für die Embedded-Linux-Wochen im Frühjahr, Sommer und Herbst sind folgende Seminare geplant. Sie können sowohl einzeln, als auch kombiniert gebucht werden. Nachstehend finden Sie die Kombinationsmöglichkeiten.

Embedded-Linux-Woche vom 28. März bis 1. April 2022 | Digitale Veranstaltung

Level Montag
Anfänger/Fortgeschrittene Grundlagen
Fortgeschrittene/ Könner Gerätetreiber
Dienstag Mittwoch
Grundlagen Vortragstag
Gerätetreiber Gerätetreiber
Donnerstag Freitag
Embedded Linux Embedded Linux
Security Security

Embedded-Linux-Woche vom 11. bis 15. Juli 2022 | Vogel Convention Center Würzburg

Level Montag
Anfänger/Fortgeschrittene Grundlagen
Fortgeschrittene/Könner Systemprogrammierung
Könner/Experten Grafikoberflächen entwicklen mit QT
Dienstag Mittwoch
Grundlagen Vortragstag
Systemprogrammierung Systemprogrammierung
Grafikoberflächen entwicklen mit QT Grafikoberflächen entwicklen mit QT
Donnerstag Freitag
Embedded Linux Embedded Linux
YOCTO YOCTO
Realtime Realtime

Embedded-Linux-Woche vom 10. bis 14. Oktober 2022 | Vogel Convention Center Würzburg

Level Montag
Anfänger/Fortgeschrittene Grundlagen
Fortgeschrittene/Könner Systemprogrammierung
Könner/Experten Open-Source Compliance
Dienstag Mittwoch
Grundlagen Vortragstag
Systemprogrammierung Systemprogrammierung
Open-Source Compliance Open-Source Compliance
Donnerstag Freitag
Embedded Linux Embedded Linux
Security Security
Realtime Realtime

Ihre Referenten

Kursinhalte

  • Kurs: Grundlagen
  • Kurs: Embedded Linux
  • Kurs: Systemprogrammierung
  • Kurs: Open-Source Compliance
  • Kurs: Realtime
  • Kurs: YOCTO
  • Kurs: Gerätetreiber
  • Kurs: Security
  • Kurs: Grafikoberflächen entwickeln mit QT
Kurs: Grundlagen

Voraussetzungen: Interesse für Embedded-Linux; dieses Seminar ist geeignet für Teilnehmer ohne spezifische Vorkenntnisse in Linux.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Embedded Linux", „Realtime" oder „Security" gebucht werden.

Nächste Termine:

  • 28. - 30. März 2022 | Online-Kurs
  • 11. - 13. Juli 2022 | Würzburg
  • 10. - 12. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Linux-Grundlagen (10:00-18:00 Uhr)

Referent: H. Dengler

  • Linux: Historischer Überblick (Wie entstand Linux? Was sind die Konzepte? Wie wird Linux entwickelt?)
  • Aufbau des Linux Dateisystems (Linux Standard Base, virtuelle Dateisysteme, etc.)
  • Wie bootet Linux?
  • Wichtige Kommandos, wie bewege ich mich auf der Shell?
  • Einführung in die Shell Programmierung
 

Tag 2 – Einführung in die Applikationsentwicklung (9:00-17:00 Uhr)
Referent: H. Dengler

  • Einführung in die Applikationsentwicklung: Gnu Compiler Collection, Binutils, etc.
  • Wie ist ein Executable aufgebaut?
  • Wie ist ein Prozess aufgebaut?
  • Editoren / Entwicklungsumgebung (vim, emacs, Eclipse)
  • Makefiles
  • Debugging (GDB interaktiv, GDB post mortem, remote debugging, memory debugging, strace)
  • Cross Applikationsentwicklung (Cross Compiler, NFS, etc.)
 

Tag 3 – Vortragstag (9:00-17:00 Uhr)

Referenten: C. Emde, T. Jaeger

  • Open Innovation und Open Source – Hürden, Chancen und Vision (C. Emde)
  • Qualitätssicherung von Embedded Systemen: was muss ich melden (C. Emde)
  • Ein juristischer Blick auf Linux (T. Jaeger)
  • Rechtliche Relevanz der Verwendung von Open Source Software
  • GPL: Lizenzpflichten, Copyleft oder "virale Effekte"
  • Was gehört zum Complete Corresponding Source Code?
  • LGPL: GNU C Library und Lizenzpflichten
  • Haftung für Lizenzverletzungen
  • Lizenzkompatibilität
  • Praktische Umsetzung von Lizenzpflichten
  • Aufbau eines internen Compliance Systems
  • Ab 18.30 Uhr: Linux-Weinprobe

Zur Anmeldung

Kurs: Embedded Linux

Voraussetzungen: Die Inhalte des Kurses „Grundlagen/Einführung" werden vorausgesetzt.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Grundlagen/Einführung", "Yocto" oder „Systemprogrammierung" gebucht werden.

Nächste Termine:

  • 30. März - 1. April 2022 | Online-Kurs
  • 13. - 15. Juli 2022 | Würzburg
  • 12. - 14. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Vortragstag (9:00-17:00 Uhr)
Referenten: C. Emde, T. Jaeger

  • Open Innovation und Open Source – Hürden, Chancen und Vision (C. Emde)
  • Qualitätssicherung von Embedded Systemen: was muss ich melden (C. Emde)
  • Ein juristischer Blick auf Linux (T. Jaeger)
  • Rechtliche Relevanz der Verwendung von Open Source Software
  • GPL: Lizenzpflichten, Copyleft oder "virale Effekte"
  • Was gehört zum Complete Corresponding Source Code?
  • LGPL: GNU C Library und Lizenzpflichten
  • Haftung für Lizenzverletzungen
  • Lizenzkompatibilität
  • Praktische Umsetzung von Lizenzpflichten
  • Aufbau eines internen Compliance Systems
  • Ab 18.30 Uhr: Linux-Weinprobe

Bringen Sie Ihre Fragen mit: Nutzen Sie die Chance, und stellen Sie Herrn Jaeger die Fragen, die Sie in Ihrem Projekt oder in Ihrer Abteilung beschäftigen.

 

Tag 2 – Embedded Linux Teil 1 (9:00-17:00 Uhr)
Referent: A. Klinger

  • Konfiguration und Erstellen eines Bootloaders (barebox) für ein Embedded-Board
  • SD-Karte als Bootmedium für Target erstellen
  • Linux-Kernel konfigurieren, erstellen und verwenden
  • Flattended-Device-Tree: Wie funktioniert er und wie verwende ich ihn?
  • Root-Filesystem erstellen
 
Tag 3 – Embedded Linux Teil 2 (9:00-15:00 Uhr)
Referent: A. Klinger
  • Kernel-Module erstellen und verwenden
  • Anpassungen am Root-Filesystem vornehmen
  • Flash-Filesysteme (managed Flash, unmanaged NAND- und NOR-Flash, JFFS2, UBIFS)
  • Einbindung von GPIO-, I2C- und SPI-Sensoren in das Linux-System mittels Industrial-IO

Zur Anmeldung

Kurs: Systemprogrammierung

Voraussetzungen: Der Inhalte des Seminars „Grundlagen/Einführung" werden vorausgesetzt. Insbesondere sind der sichere Umgang in der Linux-Shell sowie gute Kenntnisse in der C-Programmierung unter Linux erforderlich.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit den Seminaren „Realtime", „Embedded Linux" oder „Yocto" gebucht werden.

Nächste Termine:

  • 11. - 13. Juli 2022 | Würzburg
  • 10. - 12. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Systemprogrammierung - Teil I (10:00-18:00 Uhr)
Referent: A. Klinger

  • Dateioperationen, Pipes, FIFO
  • Generierung von Prozessen und Threads, Statusabfragen, Zombies
  • GPIO-Zugriff mittels ioctl()
  • Übung: Kindprozess für Hardwareansteuerung (GPIO's) erstellen
 

Tag 2 – Systemprogrammierung - Teil II (9:00-17:00 Uhr)
Referent: A. Klinger

  • Scheduling-Klassen (Deadline-, Realtime-, Batch- und Idle-Tasks)
  • Interprozesskommunikation: Shared-Memory, Semaphore, Message Queue
  • Multithreading mit pthread-Library
  • Prioritätsvererbende Mutexe (PI-Mutex)
  • Übung: Kommunikation mit Kindprozess mittels Shared Memory und PI-Mutex
 
Tag 3 – Systemprogrammierung - Teil III (9:00-17:00 Uhr)
Referent: A. Klinger
  • Systemaufrufe überwachen (strace, ltrace)
  • Signal-Handling, Reaktion auf unerwartete Signale (SEGV, backtrace)
  • Core-Dump generieren und auswerten
  • Übung: Hardware-Zugriff auf I2C-Device

Zur Anmeldung

Kurs: Open-Source Compliance

Voraussetzungen: Erste Erfahrungen in der Nutzung von Open-Source Software und Grundkenntnisse im Umgang mit Linux (auch auf der Kommandozeile) sind wünschenswert.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit anderen Seminaren gebucht werden. Der Vortragstag kann ebenfalls hinzu gebucht werden.

Nächster Termin:

  • 10. - 11. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Grundlagen der Open-Source Compliance (10:00-18:00 Uhr)
Referent: J. Altenberg

  • Einführung in das Thema der Open-Source Lizensierung: Historische Aspekte, rechtliche Grundlagen, Kategorisierung von Open-Source Lizenzen 
  • Tipps zum Umgang mit Open-Source Software
  • Übersicht der wichtigsten Open-Source Lizenzen und den damit verbundenen Lizenzpflichten 
  • Ermittlung der eingesetzten Lizenzen 
  • Lizenzkompatibilität 
  • Prozess-Standards (OpenChain) 
  • Vorstellung von Werkzeugen für informelles Scanning (Ermittlung der Lizenzen, extrahieren von Lizenztexten und Urheberrechtsvermerken)
 

Tag 2 – Praktische Umsetzung (9:00-17:00 Uhr)
Referent: J. Altenberg

  • Praktische Übungen zu informellem Scanning: Vorstellung von FOSSology und Scancode 
  • Ableitung von Lizenzpflichten: Informationsquellen, Unterstützende Verbände, OSADL License Checklist, Lizenzkompatibilitätslisten
  • Umsetzung von Lizenzpflichten: Bereitstellung des kompletten und korrespondierenden Sourcecodes und Bereitstellung von Lizenztexten und Urhebervermerken 
  • Auditieren der umgesetzten Lizenzpflichten

Zur Anmeldung

Kurs: Realtime

Voraussetzungen:

  • Kenntnis der Grundlagen der Verarbeitung asynchroner Events
  • Kenntnis von häufig benötigten Shell- und Unix-Kommandos
  • Beherrschung der Sprache C und der Tool-Chain
  • Erfahrung mit Konzept und Funktionen der /proc und /sys-Filesysteme

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Grundlagen/Einführung" oder „Systemprogrammierung" gebucht werden.

Nächste Termine:

  • 14. - 15. Juli 2022 | Würzburg
  • 13. - 14. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Echtzeit-Kernel (9:00-17:00 Uhr)

Referent: C. Emde
  • Kurzer Überblick über die Geschichte von Echtzeit-Linux, Echtzeit-Extension (dual-kernel approach) vs. PREEMPT_RT (single-kernel approach)
  • Einführung in die wesentlichen Bausteine von Echtzeit-Linux des Standard-Kernels
  • Übung: Konfiguration und Herstellung eines Echtzeit-Linuxkernels auf dem im Kurs verfügbaren Embedded-System. Wie kann ich nachmessen, inwieweit der hergestellte Echtzeit-Linuxkernels tatsächlich Echtzeiteigenschaften besitzt?
  • Übung: Messung der Echtzeiteigenschaften des Echtzeit-Linuxkernels, Kalibrierung des Messverfahrens. Was kann ich tun, wenn das System nicht die erwarteten Echtzeiteigenschaften aufweist?
Tag 2Energie-Effizienz und Echtzeit (9:00-15:00 Uhr)
Referent: C. Emde
  • System-Integration eines komplexen Echtzeit-Systems Kommandozeilen-Funktionen und Task- bzw. Thread-spezifische Systemaufrufe mit Bezug zur Echtzeit
  • Verwendung einer geeigneter Clock
  • Übung: Programmierung eines Echtzeit-Programms. Übersicht über häufige Fehler bei der Einrichtung eines Echtzeit-Systems. Warum spielen Threads eine so wichtige Rolle bei der Programmierung einer Echtzeit-Applikation?
  • Übung: Überwachung eines Echtzeit-Programms im Hinblick auf die Einhaltung der System-Voraussetzungen

Zur Anmeldung

Kurs: YOCTO

Voraussetzungen: Die zwei Seminartage richten sich an Teilnehmer, die in Projekten mit Yocto eingebunden sind oder zukünftig eingebunden werden. Geeignet sind die Tage auch für grundlegend Interessierte, die sich Fachwissen in dem Themenbereich aufbauen wollen. Solide Linux-Kenntnisse sind Voraussetzung (bauen/konfigurieren des Kernels und des Bootloaders, Cross-compile von Bibliotheken und Anwendungen).

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Embedded Linux", „Realtime" oder „Security" gebucht werden.

Nächster Termin:

  • 14. - 15. Juli 2022 | Würzburg

Agenda:

Tag 1 – YOCTO Teil I (9:00-17:00 Uhr)
Referent: V. Haspel

  • Was ist YOCTO / was ist es nicht (Kurzübersicht)
  • YOCTO am Beispiel poky und qemu
  • x86 Cross-compile einer eigenen Applikation fürs Target Integration der Cross-compile
  • Toolchain in Eclipse + Remote Debugging
 
Tag 2 – YOCTO Teil II (9:00-15:00 Uhr)
Referent: V. Haspel
  • Yocto Layers am Beispiel Poky und VEGA Board
  • Integration von Kernel und Bootloader für das VEGA Board
  • Erstellen eines SDcard Images
  • Eigene Applikationen (Makefile, autotools, QT, cmake) integrieren

Zur Anmeldung

Kurs: Gerätetreiber

Voraussetzungen: Die Inhalte der Kurse „Embedded Linux" und „Systemprogrammierung" werden vorausgesetzt.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Embedded Linux", „Realtime" oder „Security" gebucht werden.

Nächster Termin:

  • 28. - 30- März 2022 | Online-Kurs

Agenda:

Tag 1 – Gerätetreiber Teil I (10:00-18:00 Uhr)
Referent: A. Klinger

  • virtuelles Filesystem (VFS), System-Call-Schnittstelle
  • Character-, Block- und Net-Devices, Dateisystemtreiber
  • Kernel-Treiber: Aufbau, Datei-Schnittstelle, Device-Nodes
  • Flattened-Device-Tree und /sys-FS-Unterstützung im Treiber

Tag 2 – Gerätetreiber Teil II (9:00-17:00 Uhr)

Referent: A. Klinger

  • Zugriff auf Hardware im Treiber (GPIO, I2C, ...)
  • Kernel Threads und Workqueue
  • Interrupts, SoftIRQ's (Kernel-Timer, Tasklet)
  • Kernel-Preemption

Tag 3 – Gerätetreiber Teil III (9:00-17:00 Uhr)
Referent: A. Klinger

  • Wait-Queue, blockierende Operationen, poll()
  • High-Resolution-Timer (hrtimer)
  • Memory Management
  • Synchronisierungsmechanismen (Mutex, Spin-Lock, Sequence-Lock, RCU)

Zur Anmeldung

Kurs: Security

Voraussetzungen: Die Inhalte der Kurse „Embedded Linux", „Systemprogrammierung" und „Gerätetreiber" werden vorausgesetzt.

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar "Grundlagen/Einführung", "Systemprogrammierung" oder "Yocto" gebucht werden. Der Vortragstag kann ebenfalls hinzu gebucht werden.

Nächste Termine:

  • 31. März - 1. April 2022 | Online-Kurs
  • 13. - 14. Oktober 2022 | Würzburg

Agenda:

Tag 1 – Security - Teil I (9:00-17:00 Uhr)

Referent: H. Dengler
  • ecurity basics
  • Terminology
  • Design Aspects
  • Risk Analysis
  • Security aspects in application design
  • Memory protection
  • Process
  • Thread
  • Data Security basics (Multi-User)
  • Adminitrative Syscall Access (Capabilities)
  • Application isolation
  • Namespaces
  • Container
  • Resource Access Whitelisting
  • (SELinux
  • /Tomoyo
  • SMACK)
  • Network security
  • Firewall
  • Virtual Private Network
  • Secure Remote Access
 

Tag 2 – Security - Teil II (9:00-15:00 Uhr)
Referent: H. Dengler

  • Cryptography
  • Algorithms
  • Methods
  • Public Key Infrastructure: Concepts and Terminology Boot-Time Integrity check
  • Secure Boot
  • signed Kernel-Modules
  • System Security pitfalls Bootloader commandline Console shell Root-only Systems

Zur Anmeldung

Kurs: Grafikoberflächen entwickeln mit QT

Buchungsmöglichkeiten: Dieses Seminar kann auch in Kombination mit dem Seminar „Embedded Linux", „Realtime" oder „Yocto" gebucht werden.

Nächster Termin:

  • 11. - 13. Juli 2022 | Würzburg

Agenda:

Tag 1 – Einführung und Grundlagen (10:00-18:00 Uhr)
Referent: A. Nassian

  • Aufbau und Ziele der Bibliothek
  • Überblick über den Funktionsumfang
  • Werkzeuge und Entwicklungsszenarien
  • Wichtige Konzepte (Signal/Slot, Events, Speicherverwaltung)
 
Tag 2 – GUI Programmierung (9:00-17:00 Uhr)
Referent: A. Nassian
  • QtWidgets Grundlagen
  • Aufbau einer typischen, widgetbasierten, Anwendung
  • GUI Design mit dem Qt Designer, Layouting
  • Eigene Steuerelemente
  • Drucken, Erstellung von PDFs
  • Qt Quick Grundlagen
  • Aufbau einer Anwendung mit QML/QtQuick
  • C++, QML und JavaScript Integration
  • Performance Tipps & Tricks
 

Tag 3 – Datenverarbeitung (9:00-17:00 Uhr)
Referent: A. Nassian

  • Dateiverarbeitung
  • De-/Serialisierung von JSON Daten
  • Einbindung von SQL Datenbanken
  • Netzwerkkommunikation mit TCP und UDP
  • Multithreading und -processing
  • Richtiges Design von Nebenläufigkeit
  • Implementierungshinweise

Zur Anmeldung

Embedded Linux-Skilltest

Wie gut sind Ihre Programmierkünste, wenn es um Embedded Linux geht? Mit dem Embedded Linux-Skilltest finden Sie es heraus.

Entwickelt mit den Fachreferenten der Embedded-Linux-Woche, gießt der Multiple-Choice-Test Ihre Fähigkeiten am Ende in ein Ergebnis, das sich natürlich wunderbar mit den Ergebnissen anderer Entwickler vergleichen lässt. Leiten Sie den Test also gerne an Kollegen weiter. Wir wünschen gutes Gelingen!