Dossiers
Mediathek
Forum
Whitepaper

Linux-Debugging in Theorie und Praxis

1. Embedded-Linux-Woche 2011 in Würzburg

Das Interesse Linux in industriellen und embedded Anwendungen einzusetzen steigt ständig. Doch es gibt Unsicherheiten, Einstiegshürden und auch Probleme in der Anwendung, die überwunden werden wollen. Deshalb veranstaltet ELEKTRONIKPRAXIS vom 22. bis 25. März die erste Embedded-Linux-Woche in Würzburg.

Zielgruppe sind sowohl Einsteiger als auch Fortgeschrittene, die ihr Linux-Wissen vertiefen wollen. Als Referenten sind erfahrene Linux-Experten aus der Automatisierung und der Embedded-Branche im Einsatz.

Das Programm der Linux-Woche besteht aus den folgenden drei zweitägigen Hands-on-Seminaren:


Zum Start am 22. März spricht Dr. Carsten Emde von der Open Source Automation Development Lab eG in einer Keynote zum Thema:

Wann ist Linux für Industrie- und Embedded-Applikationen sinnvoll und was muss der Anwender über Opensource wissen?
(22. März, 9:00 – 10:00)


Das Programm der Linux-Woche im einzelnen:


Agenda Echtzeit-Linux am 22./23. März

Erster Tag, harte und weiche Echtzeit:

  • Linux-Scheduling-Klassen
  • hochauflösende Timer (hrtimer-Framework)
  • Virtualisierung von Interrupts und SoftIRQ’s
  • echtzeitfähige Synchronisierungsmechanismen
  • Übung: Linux mit RT-Preemption-Patch
  • Erstellung einer Anwendung / eines Treibers mit echtzeitfähigen Tasks
  • Messung von Latenzen und Jitter


Zweiter Tag, Systemintegration, Anbindung von Echtzeitperipherie:

  • Design und Integration eines Echtzeit-Systems
  • Visualisierung des Echtzeitverhaltens
  • Kontinuierliches Latenz-Monitoring
  • Besonderheiten bei Single-Core- bzw. Multi-Core-Systemen
  • Virtualisierung und Echtzeit
  • Echtzeitperipherie: Welche Limitationen gibt es?
  • Praxis-Beispiel: Echtzeit-Ethernet mit Peer-to-peer-UDP-Verbindung


Zielgruppe:
Entwickler und System-Designer mit grundlegenden Kenntnissen im Umgang mit der Linux-Shell sowie Programmierkenntnissen in C

Agenda Embedded-Linux-Kernel-Treiber am 24./25. März

Erster Tag: Kernel-Architektur und -Treiber:

  • Aufbau des Kernels
  • virtuelles Filesystem (VFS)
  • System-Call-Schnittstelle
  • Kernel-Module
  • Treiber (Character-Devices, Filesystem)
  • Flash-Filesystem
  • Übung: Kernel-Treiber auf Basis eines Treiber-Grundgerüstes erstellen


Zweiter Tag: Interrupts, Scheduling und Synchronisierung:

  • Scheduling, Warteschlangen
  • Interrupts, Sekundärreaktionen
  • Speicherverwaltung
  • Synchronisation
  • Übung: Erweiterung des Treibers um Interruptbehandlung, Synchronisation, dynamisch allozierten Speicher und blockierende System-Calls


Zielgruppe:
Entwickler und System-Designer mit grundlegenden Kenntnissen im Umgang mit der Linux-Shell sowie Programmierkenntnissen in C

Agenda Linux-Debugging am 22./23. März und 24./25. März

Erster Tag: Debugging im User- und Kernel-Space:

  • GDB – GNU Debugger
    • GUIs für den GDB
    • Nutzung der GDB Kommandozeile
    • Debug Sitzungen
    • Breakpoints, Watchpoints, Catchpoints
    • Stack Analyse
    • Postmortem Debugging
    • Remote- und Cross-Debugging
    • Thread Debugging
    • Kernel Module Debugging
    • Reverse Debugging


Zweiter Tag: Profiling im User-Space, Tracing im Kernel- und User-Space:

  • Valgrind – Framework für Debugging und Profiling
    • Speicherfehler, Speicherlöcher aufdecken
    • Finden nicht initialisierter Variablen
    • Cache Analyse
    • Profiling
    • Lockingfehler in multithreaded Anwendungen
  • Systemtap
    • Das Systemtap Framework
    • Die Systemtap Script-Sprache
    • Tapset - Eine Script Bibliothek
    • Schreiben Sie ihr eigenes Systemtap Script
    • Probing des Kernel-Space
    • Tracepoints
    • Probing des User-Space
  • Ftrace
    • Steuerung von ftrace
    • Die unterschiedlichen Tracer
    • Tracen von Ereignissen
    • Trace Optionen
    • Aktivieren/Deaktivieren des Tracing aus dem Userspace
    • Filtern von Trace-Ereignissen 
    • trace-cmd
    • Kernelshark
  • Überblick über weitere Tools
Praktische Übungen:
Die theoretisch erlernten Kenntnisse werden in mehreren praktischen Übungen vertieft. Die Übungen werden teilweise mit Eclipse oder dem Kommandozeilen Tools durchgeführt.


Zielgruppe:
Entwickler mit grundlegenden Kenntnissen im Umgang mit der Linux-Shell, der Linux-Kernel-Programmierung sowie Programmierkenntnissen in C/C++

Mindestkonfiguration:
VMWare-Player V2.5/3.0, mind. 15 GByte freier Festplattenspeicher

  • Windows: Unter Windows muss das Dateisystem als NTFS formatiert sein, kein FAT32!
  • Linux: Stellen Sie sicher dass sie *.rar Dateien entpacken können. Installieren Sie das Tool unrar.

Für die Übungen wird ein fertiges VMWare-Image zur Verfügung gestellt, das alle benötigten Tools und Beispiele enthält.

Zeitplan der Seminare
 
Die Keynote findet am 22. März nach der Begrüßung von 9:00 bis 10:00 Uhr statt. Die Seminare beginnen jeweils am ersten Tag um 10:15 Uhr und enden um 18 Uhr. Der zweite Tag beginnt dann jeweils um 9:00 Uhr und endet um 17:00 Uhr.

Preise und Leistungen

Jedes zweitägige Seminar kostet 780 € (zzgl. MwSt.). Im Preis enthalten sind Schulungsunterlagen (Papier und Software), Essen und Getränke sowie ein Teilnahmezertifikat. Da es sich um Hands-on-Seminare handelt, ist die Teilnehmerzahl begrenzt. Am 22. März lädt ELEKTRONIKPRAXIS alle Teilnehmer und Referenten zu einer Weinprobe im Weingut Juliusspital ein. Beginn: 19:30 Uhr. Details dazu erhalten Sie rechtzeitig vor Beginn der Veranstaltung.

Anforderungen

Die Teilnehmer des Echtzeit-Linux-Seminars am 22./23. März sowie des Linux-Kernel-Treiber-Seminars am 24./25. März arbeiten auf ihrem eigenen Notebook. Dabei besteht aber keine Gefahr für das vorhandene Betriebssystem und darauf gespeicherte Daten; denn es wird entweder auf einem USB-Stick oder in einer virtuellen Umgebung gearbeitet. Details zu diesen Verfahren werden rechtzeitig bekanntgegeben, so dass die Teilnehmer vor der Veranstaltung die jeweilige Installation testen können.

Anmeldung


Die Anmeldung kann bis 14 Tage vor der Veranstaltung kostenlos storniert werden. Danach ist die komplette Seminargebühr zu entrichten. Es ist möglich einen Ersatzteilnehmer/in zu senden.

Zur Anmeldung

Partner und Referenten

Partner von ELEKTRONIKPRAXIS bei der Gestaltung der 1. Linux-Woche sind IT-Klinger, Open Source Automation Development Lab eG und Mixed Mode. Sie stellen auch die Referenten und Trainer für die einzelnen Seminare.

Fragen und Auskünfte

Fragen beantworten Ihnen gerne Jürgen Dölling (Organisation) unter Tel. 09314182054 und Johann Wiesböck (Redaktion) unter Tel. 09314183081.

Links und Downloads
Die Referenten

Unsere Referenten der Linux-Woche 2011 erhielten für die Linux-Seminaren von ELEKTRONIKPRAXIS und auf dem ESE Kongress 2010 durchwegs Bestnoten.



Andreas KlingerAndreas Klinger ist seit 1998 Trainer, Berater und Entwickler im Bereich der systemnahen Softwareentwicklung mit den Schwerpunkten Treiberentwicklung, Embedded-Linux und Echtzeit. Als Spezialist für Linux beschäftigt er sich mit dem internen Aufbau des Kernels, den Systemmechanismen sowie vor allem mit deren Einsatz in Embedded-Systemen.



Dr. Carsten EmdeDr. Carsten Emde blickt auf eine mehr als 25-jährige Tätigkeit als Software-Entwickler, System-Integrator und Software-Consultant für industrielle Computersysteme zurück. Seit der Gründung des OSADL (Open Source Automation Development Lab eG) im Jahr 2005 ist er dessen Geschäftsführer.



Wolfram GettertWolfram Gettert ist als Softwareentwickler bei der Mixed Mode GmbH tätig und besitzt umfangreiche Erfahrungen im Einsatz von Embedded-Linux. Diese erstrecken sich von der Boot-Firmware über den Linux-Kernel bis zur Applikationsebene. Sein besonderes Interesse gilt dem Bereich „Design for Testability“ von Embedded Systemen.



Christian PössingerChristian Pössinger arbeitet bei der Mixed Mode GmbH im Bereich der industriellen Echtzeitsysteme. Er befasst sich mit dem Einsatz von Embedded-Linux zur Entwicklung von BSPs, Treibern und dem Erstellen von Embedded-Linux-Distributionen für verschiedene Hardwareplattformen. Hier liegt eines seiner Hauptaugenmerke auf der Minimierung von Systemstartzeiten.