Embedded Linux in Theory and Practice

Training Fee: 1.790 Euro plus VAT tax
Dates and Booking

Embedded Linux in Theory and Practice

Linux is an extremely powerful tool to work with. The aim of this training is to make you familiar with the basic concepts of embedded Linux as well as provide you with information on how to work with Linux. We will discuss the advantages and disadvantages of Linux and which components are necessary to build an embedded GNU/Linux system. At the end of our seminar, you will know where to obtain relevant components and how to configure, translate and install those. Further we will explain which license models are used within the Linux environment. By looking at various hands-on examples, you will learn how to build an embedded GNU/Linux system from mainline components. Additionally, possible ways to achieve support in case of any uncertainties will be one of our topics.

This training is also available in German: Embedded Linux in Theorie und Praxis

Target Group

Project manager, software, hardware and system engineers


Basic knowledge of how to use Linux (Ubuntu), familiarity with embedded C concepts and programming, the ability to develop software using C-Syntax, also basic knowledge of embedded hardware (Eva Boards) is of advantage.

Training Content

1st day: basics

  • Introduction into GNU/ Linux: History, licenses, standards,working with open source, spelunking, Unix, philosophy
  • Characteristics of Embedded Linux:
    • Embedded Systems
    • Comparison of Embedded Linux vs. Desktop Linux
    • Identifying and solving dysfunctionalities
    • Portability
    • Building for the target: tool-chains, C-Libraries
  • Eval Board - Beagle Bone Black:
    • Booten (generic) or rather the Beagle Bone Black
    • Partitioning or rather formatting of SD cards
    • Partition with boot-loader, kernel, filling of rootfs
    • Configuring serial consoles
    • Booting a board with Linux/GNU

2nd day: installing and configuring the Host and the Target

  • Installing of the toolkit, the NFS server, tftp server
  • U boot: check out, configuration, cross compiling, installation
  • Flattened device tree
  • GNU/Linux kernel: uImage, check out, configuration, cross compiling, installation, kernel modules
  • Root File System
  • Adjustments: Adding network support to the board (U boot scripting, network support in U boot, customized kernel with network support)
  • Rootfs via NFS
  • Init (Sys-V, Upstart, Initng, Systemd), Bootgraph, Bootchart

3rd day: kernel modules, an overview of drivers and debugging

  • Kernel module: Hello Kernel, module-init-tools, Kconfig, Kbuild, out of tree, in tree
  • Device driver: Device nodes, writing a character driver, registration, initialization, Miscellaneous Character driver
  • An overview of debugging / profiling / tracing:
    • Simple debugging tools: lsof, ltrace, strace, proc, top, netstat, syslog
    • Further debugging tools: gdb and target gdb, gdbserver, kgdb/kdb and agent-proxy, JTAG
    • Profiling: time, gprof, gcov, oprofile
    • Tracing: race, kernelshark, LTTng
    • Multiple other tools: top, latencytop, powertop, powerdebug, crash, systemtap


Robert Berger