
If you are working with embedded Linux you will be aware that the Yocto Project is a key component for generating device firmware. This intensive four day training course will teach you how to make effective use of Yocto Project to create highly functional, reliable system images for your target device. It will show you how to select packages, how to customise system behaviour, and how to create your own meta layers. With the relevant information under your belt you will have your embedded Linux system up and running in no time!
The theory is backed up with hands-on labs where you will get a chance to try out all the concepts covered in the presentations. At the moment it is only available on-line, using a virtual classroom. You will build a fully-functional system using the QEMU emulator as the target
Download course details as a PDF
Click here for information about booking a course
Duration
4 days
Upcoming courses
None scheduled: contact us to request a quote
Audience
This course is ideal for anyone who needs to know about the Yocto Project and how to apply it to their work, and for anybody who is evaluating it for a future project
Prerequisites
Either a good background in embedded devices,
or a reasonable proficiency in Linux command-line tools. Delegates with neither will find the learning curve rather steep
Course materials
All students will receive:
- Electronic copies of the presentations and lab notes
- Worked solutions to the lab sessions
Course outline
The Yocto Project
- Introduction to OpenEmbedded and the Yocto Project
- Installing Yocto Project
- Building images for a target board
Packages and package managers
- The relationship between a recipe and the packages it generates
- Types of package: development, debug, release
- Simple customisations: adding packages and selecting image featurest
Meta layers
- Extending Yocto Project through layers
- Adding third party layers
- Creating your own meta layer
- Dependencies and layer priorities
Bitbake and recipes
- Bitbake variables and assignment
- Controlling bitbake
- Debugging: what to do when things go wrong
Bitbake tasks in detail
- What happens when you run Bitbake?
- How are tasks defined?
- How are tasks run?
Writing your own recipes
- Creating a package (application) recipe
- Declaring dependencies with other packages
- Building packages created with Autotools and CMake
Extending recipes with bbappend
- Overriding a recipe vs appending with bbappend
- Creating and adding a patch to a recipe
- Extending tasks with prepend and append
Init daemons
- Selecting the init daemon for your target: SystemV or systemd
- Adding a System V init script to your recipe
- Adding a systemd service unit to your recipe
Kernel recipes
- Selecting a kernel
- Custom kernel configuration
- Customising the device tree
Image recipes
- Images based on core-image
- Image features
- Creating images using package groups
Distros
- The Poky distro
- Distro features
- Creating your own distro
Board Support Packages
- Creating a BSP meta layer
- Setting the machine configuration
- Customising the kernel recipe
Creating an SDK
- Creating an SDK for application developers
- What goes into the SDK?
- The extended SDK (eSDK)
- Installing and using an SDK
Improving work-flow with devtool
- Modifying local copies of a recipe
- Testing on the target
- Integrating with the main repository