Introduction to Embedded Linux & Real-Time, bird’s eye view of the Yocto Project

Introduction to Embedded Linux & Real-Time, bird’s eye view of the Yocto Project

4-day class

The course content could be tailored to better suit your needs and objectives. If time permits consulting during the training can be included. Please click the public tab to see the public sessions.

Private online
Onsite at your premises
We'll never share your email with anyone else.
Pick Quarter Quarter Status Access Delivery Location Language Timezone Book Until
1st quarter 2024 private remote virtual German/English (to be defined) UTC+2 (to be defined) Apr 01, 2024
2nd quarter 2024 private remote virtual German/English (to be defined) UTC+2 (to be defined) Jul 01, 2024
3rd quarter 2024 private remote virtual German/English (to be defined) UTC+2 (to be defined) Oct 01, 2024
4th quarter 2024 private remote virtual German/English (to be defined) UTC+2 (to be defined) Jan 01, 2025

Content as described below. Starting from three attendees from the same company please check our private sessions.

Public online
Public workshop in classroom
We'll never share your email with anyone else.
Pick Date Date Status Access Delivery Location Language Timezone Book Until
May 28, 2024 public classroom Munich German UTC+2 May 03, 2024
Jun 18, 2024 public remote virtual German/English (to be defined) UTC+2 May 10, 2024
Sep 10, 2024 public classroom Munich German UTC+2 Aug 16, 2024
Sep 24, 2024 public remote virtual German/English (to be defined) UTC+2 Aug 16, 2024
Nov 19, 2024 public classroom Munich German UTC+2 Oct 25, 2024

A basic overview of Embedded Linux, Real-Time Linux plus the Yocto Project® from a bird’s eye view.

Course Objectives

We’ll have a look at the following topics:

  • What are the components needed to build an Embedded Linux system?
  • Where to get them from and how to configure/build/install them?
  • Where to get help from?
  • What about licenses?
  • What’s the Yocto Project from a bird’s-eye view?
  • How to add Real-Time to Linux?

Hands-on exercises provide you with the necessary practical experience to go ahead and configure/build an Embedded Linux system with mainline components and Real-Time patches.

Description

This four-day training class uses hands-on exercises combined with instruction to illustrate some basic concepts of Embedded Linux.
Hands-on sessions are performed on the host with a Yocto Project® SDK and on some target hardware (e.g. i.mx6). The whole workshop is designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of Embedded Linux are described through a combination of theory and hands-on exercises. Don’t re-invent the wheel, but learn from an experienced trainer and take the newly acquired knowledge of Embedded Linux and the ability to effectively integrate it into your own embedded development projects back home.

Prerequisites

  • Basic familiarity with using a Linux system (e.g. Ubuntu) as an end user in user space
  • Basic familiarity with a command-line shell
  • Familiarity with embedded C concepts and programming
  • The ability to develop software using C syntax
  • Basic knowledge concerning embedded processors and development boards
  • …and/or no fear to learn more of the above…

Course Roadmap

Who should attend?

Project managers, software, hardware, development, systems engineers, technicians, and those interested in technology trying to understand as quickly as possible how Embedded Linux works. You have to use Linux or have the luxury to decide whether it makes sense to use it or not. You may already use Embedded 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

Day 1

Introduction

  • History of Unix/Linux | Licensing | Standards | Unix Philosophy

Embedded Specifics

  • Linux on the desktop compared to Linux in an embedded system | cross-/native toolchains | pre-built toolchains | build systems | C libraries

Eval Board

  • How does Linux boot on a PC and on the Eval board? | SD card partitions | See it booting

Yocto Introduction

  • What is Yocto? | What is the Yocto Project®? (features/challenges) | Some tools under the Yocto Project® umbrella (Poky | BitBake | OE-Core | Metadata) | Why would you use the Yocto Project®?

The Yocto Project® Workflow

  • Intro
  • Workflow | OE architecture
  • Configuration (User | Metadata(Recipes) | Machine(BSP) | Distribution/Policy)
  • Features | Recipe Versioning | Layers
  • Sources
  • Build (Source fetching | Patching | Configure/Compile/Staging | SSTATE | Pseudo | recipetool | Examples of Recipes | PACKAGECONFIG | Packages and their contents | Output analysis/Packaging | Image Generation | SDK Generation) | Tasks

Day 2

What’s needed on…

  • host
    • Toolkit
      • The Yocto Project® | The Yocto Project® build environment | Install the Yocto Project® SDK
    • SD card preparation | terminal emulation
      • screen | byobu | minicom
    • servers
      • DHCP | tftp | NFS
    • root file systems
  • target system
    • git | u-boot
      • scripting | fancy stuff | checkout | config | build | install
    • kernel
      • checkout | config – kconfig | build – kbuild | kernel modules | install
    • Flat device tree (fdt)
      • Let’s investigate the flat device tree | build | install

Customizations (optional)

  • Customizations: The system hangs | pseudo tty | getty | runlevel | static ip
  • Init: Sys-V | Various options | systemd | bootgraph | bootchart

Day 3

Kernel Modules

  • init/exit | Licensing | tainted module/kernel | EXPORT_SYMBOL | out of tree .ko makefile
  • module-init-tools
  • put module in kernel tree
  • parameter passing

Character Driver

  • 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: gdb on the target system | gdb remote debugging

Kernel Debugging (optional)

  • kgdb/kdb + agent-proxy | JTAG

Day 4

Profiling/Tracing

  • Profiling/Tracing tools: strace | system timers | gprof | gcov | ftrace/kernelshark | systemtap | perf | LTTng
  • top and similar tools: top | latencytop | powertop | powerdebug
  • crash: gdb on steroids

Real-Time

  • prerequisites
    • interrupts | re-entrant code
  • Real-Time Intro
    • What is Real-Time? | What is hard Real-Time?
  • Real-Time Linux
    • Hypervisor | Dual kernel | Fully Preemptive Kernel
  • Degrees of Real-Time behavior
    • explicit/implicit preemption points | real-time preemption patch | fully preemptive kernel | hard real-time extensions
  • Dual Kernel: Adeos/Xenomai
    • Adeos patch | Xenomai | patch/config/build kernel | test it on target system
  • Real-Time Myths

Course Brochure (pdf)

What customers are saying