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.
Duration: 2 days (16h)
Lectures to hands-on exercises: 50/50. During exercises a real hardwar ewill be used - usually RaspberryPi, NXP i.MX6 or any other agreed device.
Day 1. Using Yocto Project
Quick overview of Embedded Linux on ARM and i.MX6 architecture.
Understanding the Yocto Project : Overview of the Yocto Project and the Poky reference system
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 - comparison, creating and handling filesystems.
Building and using SDK.
Build optimizations and speed-ups: creating and using mirrors, 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 Project - advanced topics
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 with bitbake
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
Adding custom configuration
Writing and using package groups recipes
Using systemd: overview, configuration, network settings, services settings, hotplug events.
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
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 existing ones.
The proposed training program can be adjusted to your needs.