Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Learn Embedded Linux using Yocto Project
Rating: 3.3 out of 5(107 ratings)
595 students

Learn Embedded Linux using Yocto Project

Learn Embedded Linux development using Raspberry Pi, Beaglebone Black or qemux86 emulator and Yocto Project
Created bySonu Abraham
Last updated 6/2020
English

What you'll learn

  • 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. You will learn how to use a Yocto Project based toolchain and tools to develop, debug and test your software, as well as how to use Yocto to customize and maintain an Embedded Linux distribution for multiple boards.
  • Students will be able to apply the techinques used in the course with other Embedded Linux based projects.
  • Students will be able to develop , test , debug embedded Linux systems using yocto project.

Course content

8 sections61 lectures4h 57m total length
  • Introduction to Yocto project4:24

    Understand basics of using Yocto project for embedded Linux development.

  • Setting up host build environment0:46

    Learn how to install software components for setting up the yocto project on host system.

  • Getting Yocto source1:05

    Learn how to get the source code for building embedded Linux images with the yocto project

  • Buiding basic image for x86 and boot on qemu emulator4:36

    Learn how to build an x86 32 bit command line based image which can be used with  qemux86 emulator.

  • Build GUI based image for x86 and boot image on qemu emulator3:34

    Learn how to create GUI based sato image which can be run on qemux86 emulator.

  • Build basic minimal image for Beaglebone Black2:30

    Learn to build a minimal image which can be used to boot a Beaglebone Black board.

  • Yocto Quiz 1
  • Build yocto image for x86-64 architecture

Requirements

  • A basic understanding of C programming and experience with systems programming is needed.
  • Some experience with Python and GIT are helpful but not required.

Description

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.



Who this course is for:

  • The course is intended for embedded Linux Engineers who are not familiar with OpenEmbedded/ Yocto, who are interested in learning how to build Embedded Linux distributions.
  • The course is also useful for Project managers and engineers who are evaluating the use of Linux for their projects.
  • This course can be taken up by college students who want to learn embedded Linux development