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)

Related Courses

Yocto Project

28 Hours

Embedded Linux Systems Architecture

35 Hours

Embedded Linux Kernel and Driver Development

14 Hours

Introduction to Embedded Linux (Hands-on training)

14 Hours

Embedded Linux: Building a System from the Ground Up

14 Hours

Embedded System Programme

140 Hours

Embedded GNU/Linux Kernel Internals and Device Drivers

35 Hours

NetApp ONTAP

35 Hours

TensorFlow Lite for Embedded Linux

21 Hours

LEDE: Set Up a Linux Wireless Router

7 Hours

Shadowsocks: Set Up a Proxy Server

7 Hours

Buildroot: a Firmware Generator for Embedded Systems

7 Hours

Related Categories

1