Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Course Outline
Introduction
- History of Unix/Linux, licenses, standards, working with free software, finding resources, exploring codebases, and the Unix philosophy.
Embedded Specifics
- Comparison of Linux on desktops versus embedded systems, cross-compilation and native toolchains, pre-built toolchains, build systems, and C libraries.
Evaluation Board
- Boot process overview and practical observation of the boot sequence.
Yocto Introduction
- Definition and purpose of the Yocto Project (YP), introduction to Poky, BitBake, OE-Core, and Metadata.
The YP Autobuilder
- Overview of the YP Autobuilder and usage of Docker containers (pulling and launching).
The YP Workflow
- Introduction
- Workflow overview and OpenEmbedded architecture
- Configuration (User, Metadata, Machine, Distribution Policy)
- Source management
- 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 techniques (debug levels, locating recipes/images/packagegroups, BitBake environment/tasks/logging, force building specific tasks, cleansstate, invalidating stamps, devshell, dependency explorer, killing BitBake instances, BitBake graphical wrapper)
Layers
- Introduction, bitbake-layers tool, and yocto-layer tool.
BSP (Board Support Package)
- 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, QEMU Emulator, User Space Tools.
- Installing ADT & Toolchains
- Using a Cross-Toolchain tarball (Introduction, Building/Installing the tarball, Cross-Toolchain + Makefile/Autotools/Autotools library + App, recipes).
- Using the ADT Installer (Introduction, Web Server, Building image + ADT installer, Configuring and running ADT installer, adding ADT installer to web server, ADT installer on host).
Eclipse
- Introduction, Application Development Workflow.
- Working with Eclipse (rootfs features, kernel + fdt, rootfs, installing JDK and Eclipse, configuring Eclipse, installing Yocto Plugin, configuring the Yocto Plugin, creating an Autotool project, configuring Cross-Toolchains, building the project).
Debugging
- Introduction, gdb, remote gdb debugging, debugging with Eclipse (gdb remote), running from Eclipse (remote).
Profiling/Tracing
- Introduction, perf, gprof, gcov, strace, ftrace, systemtap, oprofile, LTTng, and data visualization with Eclipse.
Package Management
- Working with packages, IPK format, creating a package feed, and installing packages with opkg on the target.
Licensing
- Introduction, adding custom licenses, and Open Source License Compliance.
Devtool
- Introduction, devtool usage, and a real-world showcase using 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.
- Basic knowledge of user-space and kernel-space programming with GNU/Linux.
- Intermediate proficiency in C programming.
- Attendance at Embedded GNU/Linux Systems Architecture (5 days) is strongly recommended, unless you are already familiar with the material covered in those sessions.
- Practical experience with Embedded GNU/Linux (kernel, user space, root file system, tools) is required to follow the Yocto training effectively.
- While helpful, attending Embedded GNU/Linux Device Drivers and Kernel Internals (5 days) is not a strict prerequisite. It is sufficient to know how to build the GNU/Linux kernel, in-tree and out-of-tree kernel drivers, and the device tree blob (fdt) from a kernel development perspective to follow the Yocto training.
28 Hours
Testimonials (1)
That the trainer adapts to our needs