Course Outline

Course Outline

Introduction

  • history of Unix/Linux, licenses, standards, work with free software, finding help, spelunking, the 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 it boot?, See it booting

Yocto Introduction

  • What is Yocto? Why use the YP? What is the YP?, Poky, BitBake, OE-Core, Metadata

The YP Autobuilder

  • What is the YP Autobuilder?, Docker container (pull, launch container)

The YP Workflow

  • Intro
  • Workflow, OE architecture
  • Configuration (User, Metadata, Machine, Distribution Policy)
  • Sources
  • Build (Source fetching, Patching, Configure/Compile/Install, Pseudo, Examples of recipes, Output analysis/Packaging, Image Generation, SDK Generation)
  • Customizing Images (Intro, local.conf, IMAGE_FEATURES, custom .bb files, custom packagegroups)

BitBake

  • History
  • Syntax
  • Debugging (debug level, find recipes/images/packagegroups, BitBake environment/tasks/logging, force build/specific task, cleansstate, invalidate stamp, devshell, dependency explorer, kill all BitBake instances, BitBake graphical wrapper)

Layers

  • Intro, bitbake-layers tool, yocto-layer tool

BSP

  • Intro, System Development Workflow, BSP Developer’s Guide (bsp-tool)

Kernel

  • Intro, System Development Workflow, Kernel Development Manual (defconfig, defconfig + configuration fragment, in tree kmod, out of tree kmod, fdt,…)

Application Development Toolkit

  • Intro, Cross-Development Toolchain, Sysroot, ADT- Eclipse Yocto Plug-in, The QEMU Emulator, User Space Tools
  • Installing ADT & Toolchains
    • Using a Cross-Toolchain tarball (Intro, Building/Installing the Cross-Toolchain tarball, Cross-Toolchain + Makefile/Autotools/Autotools lib + App, recipes)
    • Using the ADT Installer (Intro, Web Server, Build image + ADT installer, Configure + run ADT installer, add ADT installer to webserver, ADT installer on host)

Eclipse

  • Intro, Application Development Workflow
  • Working with Eclipse (rootfs features, kernel + fdt, rootfs, install JDK, install Eclipse, configure Eclipse, install Yocto Plugin, Configure the Yocto Plugin, Create Autotooled Project, Configuring the Cross-Toolchains, Build the Project)

Debugging

  • Intro, gdb, gdb remote debugging, (gdb remote) Debugging with Eclipse, (remote) Run from Eclipse

Profiling/Tracing

  • Intro, perf, gprof, gcov, strace, ftrace, systemtap, oprofile, LTTng + Eclipse (data visualization)

Package Management

  • Working with Packages, IPK, creating a package feed, installing a package with opkg on the target

Licensing

  • Intro, Add custom license, Open Source License Compliance

Devtool

  • Intro, devtool, real-world showcase meta-cfengine

Except where otherwise noted content and this course outline are licensed under Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Requirements

Prerequisites

  • Basic familiarity with using a GNU/Linux system (e.g. Ubuntu) as an end user in user space
  • Basic familiarity with a command line shell
  • Basic knowledge of user/kernel space programming with GNU/Linux
  • Intermediate C programming knowledge
  • You should have attended Embedded GNU/Linux Systems Architecture (5 days)  (strongly recommended!) unless you are already familiar with the material presented in those trainings.
  • You actually need to have experience with Embedded GNU/Linux (kernel, userspace, root file system, tools) to follow the Yocto training.
  • It might be helpful if you attended Embedded GNU/Linux Device Drivers and Kernel Internals (5 days), but that’s not really a prerequisite. It’s sufficient to know how to build the GNU/Linux kernel, kernel drivers in/out of tree and the fdt from the kernel side of things to follow the Yocto training.
 28 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses