Audience: This course is ideal for software engineers and system architects
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.
All students will receive: - A printed copy of the presentations and lab notes- Worked solutions to the problems, plus electronic copies of the course materials- A free copy of the trainer's book, "Mastering Embedded Linux Programming"
The Yocto Project• Introduction to OpenEmbedded and the Yocto Project• Using Yocto Project to build images for the BeagleBone Black• Booting the BeagleBone Black
Packages and Layers• Making Yocto Project extensible through layers• How to add a layer• How to create your own meta layer
Bitbake and recipes• Bitbake variables and tasks• Looking at recipes: .bb and .bbappends• Debugging: what to do when things go wrong
Recipes• How BitBake uses recipes• Writing a simple package recipe• Build-time and run-time dependencies
Bootloaders• Booting an embedded device• U-Boot and the U-Boot environment• Modifying U-Boot in Yocto Project
The Linux kernel• The Linux kernel: configuring and building• Device trees: how they work• Kernel recipes
The init process• SystemV and systemd• systemd units• Creating a systemd unit in Yocto Project
Images• Flash storage and flash filesystems• Image recipes• Using wic to create images
Software update• Requirements of a software updater• Review of software mechanisms• Overview of Mender.io
meta mender• The meta mernder layer• Dual redundant filesystems• Fallback and commit• Making the rootfs stateless