Get in Touch

Course Outline

Course Outline

Introduction

  • History of Unix/Linux, licenses, standards, working with free software, finding assistance, navigating complex systems, and the Unix philosophy.

Embedded Specifics

  • Comparison of Linux on desktops versus embedded systems, cross/native toolchains, pre-built toolchains, build systems, C libraries, etc.

Evaluation Board

  • Boot process overview and observing the boot sequence.

Yocto Introduction

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

The YP Autobuilder

  • What is the YP Autobuilder?, Docker container usage (pulling and launching the container).

The YP Workflow

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

BitBake

  • History.
  • Syntax.
  • Debugging (debug level, locating recipes/images/packagegroups, BitBake environment/tasks/logging, force building specific tasks, cleansstate, invalidating stamps, devshell, dependency explorer, killing all BitBake instances, BitBake graphical wrapper).

Layers

  • Introduction, bitbake-layers tool, yocto-layer tool.

BSP

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

Kernel

  • Introduction, System Development Workflow, Kernel Development Manual (defconfig, defconfig plus configuration fragment, in-tree kernel modules, out-of-tree kernel modules, fdt, etc.).

Application Development Toolkit

  • Introduction, Cross-Development Toolchain, Sysroot, ADT-Eclipse Yocto Plug-in, The QEMU Emulator, User Space Tools.
  • Installing ADT & Toolchains
    • Using a Cross-Toolchain tarball (Introduction, Building/Installing the Cross-Toolchain tarball, Cross-Toolchain plus Makefile/Autotools/Autotools library plus Application, recipes).
    • Using the ADT Installer (Introduction, Web Server, Building the image plus ADT installer, Configuring and running the ADT installer, adding the ADT installer to the web server, ADT installer on the host).

Eclipse

  • Introduction, Application Development Workflow.
  • Working with Eclipse (rootfs features, kernel plus fdt, rootfs, installing JDK, installing Eclipse, configuring Eclipse, installing the Yocto Plug-in, configuring the Yocto Plug-in, creating an Autotooled project, configuring cross-toolchains, building the project).

Debugging

  • Introduction, gdb, gdb remote debugging, (gdb remote) debugging with Eclipse, (remote) running from Eclipse.

Profiling/Tracing

  • Introduction, perf, gprof, gcov, strace, ftrace, systemtap, oprofile, LTTng plus Eclipse (data visualization).

Package Management

  • Working with packages, IPK, creating a package feed, installing a package with opkg on the target device.

Licensing

  • Introduction, adding a custom license, Open Source License Compliance.

Devtool

  • Introduction, devtool, real-world showcase using 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 covered in those training sessions.
  • You must have practical experience with Embedded GNU/Linux (kernel, userspace, root file system, tools) to successfully follow the Yocto training.
  • It may be beneficial if you attended Embedded GNU/Linux Device Drivers and Kernel Internals (5 days), but this is not a strict prerequisite. It is sufficient to know how to build the GNU/Linux kernel, kernel drivers (both in-tree and out-of-tree), and the device tree blob (fdt) from the kernel side to follow the Yocto training.
 28 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories