Get in Touch

Course Outline

Course Outline

Introduction

  • History of Unix/Linux, licenses, standards, working with free software, finding assistance, exploration techniques, and the Unix philosophy

Embedded Specifics

  • Comparison between Linux on desktops and in embedded systems, cross-native toolchains, pre-built toolchains, build systems, C libraries, and more

Evaluation Board

  • Understanding the boot process and observing the boot sequence

Yocto Introduction

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

The YP Autobuilder

  • Understanding the YP Autobuilder, Docker container operations (pulling and launching the container)

The YP Workflow

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

BitBake

  • History
  • Syntax
  • Debugging (debug levels, finding recipes/images/packagegroups, BitBake environment/tasks/logging, forcing builds/specific tasks, cleansstate, invalidating stamps, devshell, dependency explorer, terminating 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 fragments, 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 + Makefile/Autotools/Autotools library + App, recipes)
    • Using the ADT Installer (Introduction, Web Server, Building the image + 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 + fdt, rootfs, installing JDK, installing Eclipse, configuring Eclipse, installing the Yocto Plug-in, configuring the Yocto Plug-in, creating an Autotooled Project, configuring the Cross-Toolchains, building the project)

Debugging

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

Profiling/Tracing

  • Introduction, 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 device

Licensing

  • Introduction, adding custom licenses, Open Source License Compliance

Devtool

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

Except where otherwise noted, the 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
  • Foundational knowledge of user-space/kernel-space programming with GNU/Linux
  • Intermediate proficiency in C programming
  • You should have attended Embedded GNU/Linux Systems Architecture (5 days) (strongly recommended!) unless you are already familiar with the material covered in that training.
  • You must have practical experience with Embedded GNU/Linux (kernel, userspace, root file system, tools) to successfully follow the Yocto training.
  • While not a strict prerequisite, it may be beneficial to have attended Embedded GNU/Linux Device Drivers and Kernel Internals (5 days). It is sufficient to know how to build the GNU/Linux kernel, in-tree and out-of-tree kernel drivers, and the device tree source (dtb) from the kernel side to follow the Yocto training.
 28 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories