Get in Touch

Course Outline

Course Outline

Introduction

  • History of Unix/Linux, licenses, standards, working with free software, finding assistance, deep diving into code, and the Unix philosophy.

Embedded Specifics

  • Comparison of Linux on the desktop versus Linux in an embedded system, cross/native toolchains, pre-built toolchains, build systems, C libraries, etc.

Eval Board

  • Boot process overview, observing the boot sequence.

Yocto Introduction

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

The YP Autobuilder

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

The YP Workflow

  • Introduction
  • Workflow and 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 package groups)

BitBake

  • History
  • Syntax
  • Debugging (Debug levels, locating recipes/images/package groups, BitBake environment/tasks/logging, forcing specific tasks/builds, cleansstate, invalidating stamps, devshell, dependency explorer, killing 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 + configuration fragment, in-tree kmod, out-of-tree kmod, 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 lib + App, recipes)
    • Using the ADT Installer (Introduction, Web Server, Build image + ADT installer, Configuring/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 Plugin, configuring the Yocto Plugin, creating an autotooled project, configuring cross-toolchains, building the project)

Debugging

  • Introduction, gdb, remote gdb 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

Licensing

  • Introduction, adding custom licenses, Open Source License Compliance

Devtool

  • Introduction, 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 skills.
  • You should have attended Embedded GNU/Linux Systems Architecture (5 days) (strongly recommended!) unless you are already well-versed in the material covered in those sessions.
  • Practical experience with Embedded GNU/Linux (kernel, userspace, root file system, and tools) is required to follow the Yocto training.
  • Attending Embedded GNU/Linux Device Drivers and Kernel Internals (5 days) may be beneficial but is not a strict prerequisite. It is sufficient to understand how to build the GNU/Linux kernel, in-tree and out-of-tree kernel drivers, and the device tree source (fdt) from the kernel perspective.
 28 Hours

Number of participants


Price per participant

Testimonials (1)

Upcoming Courses

Related Categories