The Yocto Project is ideal for rapid prototyping and provides the tools and processes required to develop an embedded Linux-based product. The collaboration has widespread support from leading hardware manufacturers, open-source operating systems vendors, and electronics companies looking to address the challenges of developing embedded technology. This course has been designed to help you understand how to use the Yocto Project tools to manage key components of a Linux distribution: toolchains, bootloaders, kernels and package management systems.
The course is divided into eight sections.
Section 1 : Introduction to Yocto Project
In this section students will learn how to setup Yocto build environment, build and run minimal image and GUI based images for x86 target, build a minimal image for Beaglebone Black board.
Section 2: Understand Yocto build system components
In this section students will learn concept of Yocto recipes,packages,images . Additionally you will learn how to create new recipes,layers and images. Analysis of a few recipes and layers are also included in this section.
Section 3: Understand Bitbake Tool
This section's focus is on understanding how to use the Bitbake tool to perform various tasks when using the Yocto project.
Section 4: Application Development
In this section students will learn how to develop applications using the Yocto project.Students will learn how to use various recipes to create basic application, CMake based application, Makefile based application, Autotools based application. Students will then learn how to create static and dynamic libraries using recipes and write recipes to create test applications to test the created libraries. Students will then learn how to create standard SDK and use it with Eclipse IDE. Students will then learn how to generated enhanced Software Development Kit (eSDK) and how to use it using the Devtool. Finally in this section , students will learn how to use Toaster to create images using web interface.
Section 5: Kernel Development
In this section students will learn how to work with different types of kernel recipes. Students will start with using the traditional kernel recipes. Students will then learn how to use yocto-kernel recipes and finally custom kernel recipes. Students will learn how to customize kernel images, edit kernel source code,enable kernel features using configuration fragments. Example recipes for adding kernel modules are also added to this section.
Section 6: Board Support Package (BSP) Development
In this section students learn how to develop BSP packages with the Yocto project. Students will analyze BSP layers for x86 , Beaglebone Black and Raspberry Pi boards to understand concept of BSP layers. Students will also learn how to create new BSP layers . Student will learn how to use the BSP packages created and boot it on x86 emulator,Raspberry Pi and Beaglebone Black targets.
Section 7: Package Management
In this section students will learn how to use package management when developing software applications with the Yocto project. The main focus of this section will be to try and use OPKG package manager.
Section 8: Application Debugging
In this section students will learn how to debug application developed earlier in section 4. Students learn how to debug application using Eclipse IDE and gdbserver.