Yocto for Embedded Systems
After the training, participants will be ready to develop and maintain Embedded Systems and custom BSP using Yocto Project and OpenEmbedded.
Atendees will understand how the system works, how to configure, modify and extend build
system and its components.
- 3 days (24h)
Lectures to hands-on exercises: 50/50. During exercises a real hardware will be used - usually RaspberryPi, NXP i.MX6 or any other agreed device.
Day 1. Using Yocto
- Quick overview of Embedded Linux on ARM and i.MX6 architecture.
- Understanding the Yocto Project : Overview of the Yocto Project and the Poky reference
- Configuring and using Yocto for given hardware (versions, BSP): NXP i.MX6, TI AM335x, Atmel AT91 and more
- Customizing the kernel selection
- Booting, U-BOOT - integrating into Yocto, Extending the existing BSP
- Customizing the package selection
- Customizing image creation (SD card, NAND), update procedure (Using
ROOTFS_POSTPROCESS_COMMAND to modify the final rootfs)
- Filesystems for block and NAND flash devices - comparision, creating and handling
- Building and using SDK.
- Build optimizations and speed-ups: creating and using mirros, cache.
Configuring Yocto and using it to build a root filesystem for SD card and NAND
Flash devices (UBI) and run it on the board. Considering various build optimizations (build-
server, process automation). Modifying build process and target images.
After ‘Day 1’:
- Participants will Build the BSP and image using Yocto and get knowledge about
customizing versions of recipes build, selecting bootloader and kernel.
- Use-case will be covered: configuring an embedded Linux build system, developing and deploying organization-wide solutions.
Day 2. Customizing Yocto
- Building custom software using Yocto
- Layers: what are they, where to find layers, creating layers
- Writing recipes: writing a minimal recipe, adding dependencies, development workflow
- Extending and overriding recipes, Adding steps to the build process, using classes.
- Adding: Wi-Fi drivers (and supporting programs), opencv (w/o X11), QT5 (with new
QT3D) – or any other custom software.
- Logging and debugging dependencies
After ‘Day 2’:
- Additional layer will be created, to host in-house software and override versions.
- All external software packages will be integrated into Yocto using custom recipes or modifying
Day 3. Customizing Yocto - advanced topics.
- Continuation of Day 2 topics
- Adding users/groups
- Adding custom configuration
- Writing and using package groups recipes
- Using systemd: overview, configuration, network settings, services settings, hotplug
- Application development using Yocto BSP.
- Working with kernel sources using Eclipse or QTCreator. Using Eclipse with Yocto SDK
with or without Eclipse plugins.
- Remote debugging with Eclipse (with Yocto plugin) or QTCreator
The proposed training program can be adjusted to your needs.