Introduction to Embedded Linux - a short Crash Course


Reliable Embedded Systems provides trainings to help you create better embedded software!


Embedded Linux - From
Systems Architecture to Real-Time:

Our in-depth introduction to Embedded GNU/Linux.

Read more

Embedded GNU/Linux Kernel Internals and Device Drivers:
We describe processes, concepts and commands necessary to write GNU/Linux device drivers.

Read more

The Yocto Project - An Overview:
After the training you should have a much better overview about the Yocto Project and be able to decide whether you need it or not.

Read more

Introduction to Embedded Linux and the Yocto Project:
A quick introduction to Embedded Linux (2 days), essentials to utilize the Yocto Project (3 days).

Read more

Introduction to Embedded Linux in Theory and Practice - a Crash Course:
The aim of this crash course is to provide a basic overview of embedded GNU/Linux.

Read more

(Embedded) Linux Debugging:
We'll give you a basic overview of debugging/tracing/profiling facillitites available with (embedded) GNU/Linux kernel/user-space.

Read more

Embedded Linux Hardware Interfacing:
Is it really that hard to use digital I/O, Analog I/O(pwm), Sensors/Actors, IoT and friends with Linux?

Coming soon

FreeRTOS in Theory and Practice:
Take home a working knowledge of FreeRTOS and the ability to use it effectively in your own embedded development project.

Read more

The Zephyr Project - An Overview:
Take home a working knowledge of the Zephyr Project and the ability to use it effectively in your own embedded development project.

Coming soon

FlexNgage + Training:
Add trainings as you like to the various steps of your development process.

Read more

Custom Training:
Ask for a custom training e.g. by combining stuff from various trainings or something totally new.

Read more

3rd Party Training Material:
We customize/deliver your Embedded Linux training material in English/German.

Read more

Public Events

No events

FlexNgage + Training

you can add trainings as you like to the various steps of your development process

More Detail

Products & Services

We provide flexible engagement models to enable you to leverage exactly the capabilities you need. Although our expertise lies in the domains of Embedded Systems Software (Training) the options we can offer range from consulting to full turnkey engagements. We can bring you in touch with our worldwide network of experts. They either handle everything for you or just parts of your system. This enables you and Reliable Embedded Systems to focus on their core competencies.

  • our experts can help guide you
  • we can work with you
  • we can do it for you

First in time, first in line!

Please check for available days and/or just ask.

Available days

Course Objectives

The aim of this short 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? What about licenses? Compared to other trainings offered here the time spend with hands-on will be limited in order to meet the one day goal. You will be provided with handouts and exercises so you can can go through them at your own pace at home in order to be able to go ahead and configure/build an embedded GNU/Linux system with mainline components. After this one day overview you might even want to book one of the more in-depth trainings which can be offered on-site and on-line as well. Feel free to ask for a quote.


This one 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 a toolchain from the the freely available Yocto Project, on a Beagle Bone Black. This enables you to take the course material home and work with it. 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 above ...

Who should attend?

Managers, 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


  • What is GNU/Linux?
  • Licensing
  • Standards
  • Working with free software
  • The Unix Philosophy

Stuff needed (part 1)

  • Toolchain
  • nfs server
  • tftp server

Eval board

  • What is the Beagle?
  • Booting
  • Booting the Beagle
  • Partition/Format SD card
  • Populate partitions with given boot-loader, kernel, rootfs
  • Configure serial console
  • Board booting Linux 

Stuff needed (part 2)

  • U-boot
    • What is U-boot?
    • What does it do?
    • Fancy Stuff
    • Get/configure/build install
  • Flat device tree
    • What is a flat device tree?
  • Linux kernel
    • What is uImage?
    • Get/configure/build install
    • Kernel modules
  • Rootfs
    • Use rootfs from the Yocto Project

Kernel Modules

  • Hello Kernel, module-init-tools, Kconfig, Kbuild
  • out of tree, in tree

Device Drivers

  • Device Nodes
  • Registration, Initialization, Open, Release,...
  • Miscellaneous Character Drivers


  • Simple debugging tools
    • lsof, ltrace, strace, proc, top, netstat, syslog
  • Advanced debugging tools
    • What’s a debugger?
    • gdb
      • target gdb
      • gdbserver
      • kgdb/kdb + agent-proxy
      • JTAG
  • What is profiling?
  • What is tracing?
  • Profiling tools
    • time, gprof, gcov, oprofile
  • Tracing tools
    • ftrace, kernelshark, LTTng
  • Misc. tools
    • top, latencytop, powertop, powerdebug, crash, systemtap

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.