Yocto Project
Cost and registration »
After the training, participants will be ready to develop and maintain Embedded Systems and custom BSP using Yocto Project and OpenEmbedded. Attendees will understand how the system works, how to configure, modify and extend build system and its components.
Detailed Agenda
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 Project
- Quick overview of Embedded Linux on ARM and x86 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.
Exercises
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 users/groups
- 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.