Introduction to Embedded Linux in Theory and Practice - a Crash Course

Introduction to Embedded Linux in Theory and Practice - a Crash Course


Course Objectives

The aim of this crash course is to provide a basic overview of embedded GNU/Linux. What are the components needed to build an embedded GNU/Linux system where to get them from and how to configure/build/install them? Where to get help from? What about licenses? Hands-on exercises provide you with the necessary practical experience to go ahead and configure/build an embedded GNU/Linux system with mainline components.


This 3-day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of Embedded GNU/Linux. Hands on sessions are performed with Yocto, on a Beagle-Bone Black Rev.C. The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded GNU/Linux are described through a combination of theory and on-the-job training. Don’t reinvent the wheel, but learn from an experienced trainer and take home a working knowledge of Embedded GNU/Linux and the ability to use it effectively in your own embedded development project.


  • Basic knowledge of how to use Linux (Ubuntu)
  • Familiarity with embedded C concepts and programming
  • Ability to develop software using C syntax
  • Basic knowledge of embedded processor development boards
  • ... or no fear to learn the aboveand programming

Who should attend?

Project managers, software, hardware, development and systems engineers, technicians and those interested in technology who want to try to understand as quickly as possible how Embedded GNU/Linux works. You have to use GNU/Linux, or have the luxury to decide whether it makes sense to use it or not. You may already use Embedded GNU/Linux, but you are not quite sure if you do everything right. You currently use another operating system and want to find out whether Linux would maybe be more cost effective. . . .

Course Outline


  • Introduction
  • History
  • Licensing
  • Standards
  • The Unix Philosophy

Embedded Specifics

  • What’s an Embedded System?
  • Embedded vs. Desktop Linux
  • Software Release
  • Build for your Target
  • Toolchains
  • C-libraries

Eval board

  • Eval Board
  • Booting GNU/Linux on a PC
  • Booting GNU/Linux on an Embedded System
  • Boot Sequence
  • SD card partitions

Stuff needed

  • Host
    • Toolkit
      • Install Yocto SDK
    • SD card
    • screen
    • minicom
    • tftp server
    • Root file systems
    • Nfs server
  • Target
    • U-Boot
      • Das U-Boot
      • Scripting
      • Fancy stuff
        • Spash Screen
        • U-Boot environment from Linux
        • Post mortem
        • Automatic SW update
        • How to contribute?
      • Get/Configure/Build/Install
      • Commands
    • Flat device tree
      • What is a flat device tree?
      • Device tree compiler
      • Examples/Documentation
    • Linux kernel
      • Get
      • Kbuild
      • Multi Platfrom Support
      • Configure/Build/Install
      • Get/configure/build install
      • What is uImage?
      • Build fdt
      • In-tree kernel modules


  • Customizations
    • System hangs
    • pseudo tty
    • getty
    • runlevel
    • static ip
  • Init
    • Sys-V
    • Various
    • Systemd
  • Bootgraph
  • Bootchart

Kernel Modules

  • init/exit
  • Licensing
  • tainted module/kernel
  • out of tree .ko
  • module-init-tools
  • put module in tree
  • loading/modprobe
  • parameter passing
  • access TCB

Device Drivers

  • 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
  • Advanced tools
  • What’s a debugger?
  • gdb
    • target gdb
    • gdb remote debugging

Kernel Debugging

  • kgdb/kdb + agent-proxy
  • JTAG


  • Profiling/Tracing tools
    • strace
    • system timers
    • gprof
    • gcov
    • ftrace/kernelshark
    • systemtap
    • oprofile
    • perf
    • LTTng
  • top an friends
    • top
    • latencytop
    • powertop
    • powerdebug
  • crash

Please fill in this form if you have further questions regarding this or any other training and do not hesitate to contact us if you have any further questions.

Public Elin

No events