The Yocto Project - An Overview - hands-on ( yp1 | 28 hours )
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.
Description
This four day training combines theory with hands-on exercises in order to introduce the Yocto Project.
It answers frequently asked questions like:
- Is it really necessary to use another version of the toolchain/libraries/packages for each and every GNU/Linux project and an top of that to follow a different work-flow?
- Can you ensure that the development environment is identical for all developers/suppliers and that you can still produce identical builds like today in 10+ years from now?
- Can the YP help find out under what software licenses the packages you use are licensed?
Hands-on sessions are performed on target hardware (e.g. Beagle Bone Black Rev. C - http://beagleboard.org/BLACK). After the training you will be able to download a docker image with Ubuntu 14.x and all dependencies pre-installed plus the examples in order to work with the course material in your own labs. Please note that this is not an introductory course to Embedded GNU/Linux. You should already know how Embedded GNU/Linux works and how to configure/build the GNU/Linux kernel and kernel drivers.
Who should attend?
You already use GNU/Linux for your projects and have probably heard about the Yocto Project, but did not dare to have a closer look into it, or had difficulties using it. You don’t know whether and how your daily work-flow can be accommodated in the YP and generally find the YP rather complicated. Why do we need all this since up to know everything was (supposedly) much easier? After the training you should be able to decide whether you need the YP or not. The workshop is aimed at software-, development-, system engineers, testers, administrators, engineers and other parties interested in the YP, with a solid knowledge of Embedded GNU/Linux.
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).
Qatar - The Yocto Project - An Overview - hands-on
Egypt - The Yocto Project - An Overview - hands-on
Saudi Arabia - The Yocto Project - An Overview - hands-on
Brasil - The Yocto Project - An Overview - hands-on
澳門 - The Yocto Project - An Overview - hands-on
台灣 - The Yocto Project - An Overview - hands-on
Österreich - The Yocto Project - An Overview - hands-on
Schweiz - The Yocto Project - An Overview - hands-on
Deutschland - The Yocto Project - An Overview - hands-on
Czech Republic - The Yocto Project - An Overview - hands-on
Denmark - The Yocto Project - An Overview - hands-on
Estonia - The Yocto Project - An Overview - hands-on
Finland - The Yocto Project - An Overview - hands-on
Greece - The Yocto Project - An Overview - hands-on
Magyarország - The Yocto Project - An Overview - hands-on
Ireland - The Yocto Project - An Overview - hands-on
Israel - The Yocto Project - An Overview - hands-on
Luxembourg - The Yocto Project - An Overview - hands-on
Latvia - The Yocto Project - An Overview - hands-on
España - El Proyecto Yocto - Una Visión General - Práctico
Italia - The Yocto Project - An Overview - hands-on
Lithuania - The Yocto Project - An Overview - hands-on
Nederland - The Yocto Project - An Overview - hands-on
Norway - The Yocto Project - An Overview - hands-on
Portugal - The Yocto Project - An Overview - hands-on
România - The Yocto Project - An Overview - hands-on
Sverige - The Yocto Project - An Overview - hands-on
Türkiye - The Yocto Project - An Overview - hands-on
Malta - The Yocto Project - An Overview - hands-on
Belgique - The Yocto Project - An Overview - hands-on
France - The Yocto Project - An Overview - hands-on
日本 - The Yocto Project - An Overview - hands-on
Australia - The Yocto Project - An Overview - hands-on
Malaysia - The Yocto Project - An Overview - hands-on
New Zealand - The Yocto Project - An Overview - hands-on
Thailand - The Yocto Project - An Overview - hands-on
Vietnam - The Yocto Project - An Overview - hands-on
Argentina - El Proyecto Yocto - Una Visión General - Práctico
Chile - El Proyecto Yocto - Una Visión General - Práctico
Costa Rica - El Proyecto Yocto - Una Visión General - Práctico
Ecuador - El Proyecto Yocto - Una Visión General - Práctico
Guatemala - El Proyecto Yocto - Una Visión General - Práctico
Colombia - El Proyecto Yocto - Una Visión General - Práctico
Panama - El Proyecto Yocto - Una Visión General - Práctico
Peru - El Proyecto Yocto - Una Visión General - Práctico
Uruguay - El Proyecto Yocto - Una Visión General - Práctico
Venezuela - El Proyecto Yocto - Una Visión General - Práctico
Polska - The Yocto Project - An Overview - hands-on
United Kingdom - The Yocto Project - An Overview - hands-on
South Korea - The Yocto Project - An Overview - hands-on
Pakistan - The Yocto Project - An Overview - hands-on
Sri Lanka - The Yocto Project - An Overview - hands-on
Bulgaria - The Yocto Project - An Overview - hands-on
Bolivia - El Proyecto Yocto - Una Visión General - Práctico
Indonesia - The Yocto Project - An Overview - hands-on
Kazakhstan - The Yocto Project - An Overview - hands-on
Moldova - The Yocto Project - An Overview - hands-on
Morocco - The Yocto Project - An Overview - hands-on
Tunisia - The Yocto Project - An Overview - hands-on
Kuwait - The Yocto Project - An Overview - hands-on
Oman - The Yocto Project - An Overview - hands-on
Slovakia - The Yocto Project - An Overview - hands-on
Kenya - The Yocto Project - An Overview - hands-on
Nigeria - The Yocto Project - An Overview - hands-on
Botswana - The Yocto Project - An Overview - hands-on
Slovenia - The Yocto Project - An Overview - hands-on
Croatia - The Yocto Project - An Overview - hands-on
Serbia - The Yocto Project - An Overview - hands-on