Linux Embedded & Yocto training

Linux training

Our most popular ‘combo‘ course because in just three days you can learn everything you need to begin to cross compile the Linux Kernel for an ARM card and use Yocto Project to generate recipes and custom layers.

Basic course aimed at beginners with a minimum knowledge of Linux, it provides the information needed to configure and cross-compile the u-boot Bootloader and the Kernel.

Yocto Project Participant

Koan has been contributing to the Yocto Project since its creation and is a Yocto Project Participant

This course also provides the information needed to configure and use Yocto Project (and Openembedded), git and bitbake by creating an embeddded Linux distribution from scratch. Management of recipes in overlays with custom layers.

Learn to build and manage embedded Linux systems with the Yocto Project and OpenEmbedded.
If you want to not waste time performing time-consuming tasks during the course, this intensive course is perfect for you.
In order to save time, some sections are shortened or skipped, such as downloading the packages and the long initial compilation, depending on the needs and interests of the participants.

Topics covered

The course, aimed at developers who need to quickly learn the Linux development environment.

  • Understanding the Linux Kernel
  • Understanding the Device Tree
  • Compiling the Kernel
  • Development with the Yocto Project project
  • Laboratory practice on ARM boards (BeagleBone Black)
  • Writing and extension of Yocto Project recipes
  • Creation of new Yocto Project layers
  • Integrate your card into a BSP
  • Creation of personalized Yocto Project images
  • Remote debugging of applications

At the end of this course, you will be ready to use the Yocto Project to develop your embedded Linux system and compiled cross applications.


  • Duration: 3 consecutive days (from 9:00 to 18:00)
  • Type: ~ 50% presentations, ~ 50% practical exercises
  • Slides language and material provided: English
  • Oral presentation language: Italian or English
  • Number of participants: maximum 10 people

Equipment required

Each participant must have a Laptop on which a Virtual Machine provided by the teacher at the beginning of the course will be installed. All the necessary material is provided by Koan except the PC. Therefore participants must have their own laptop with:

  • Laptop PC with at least 4 GB of RAM and 40 GB of free disk space.
  • Virtual Box installed (downloadable from here).
  • We will work with Lubuntu Desktop 14.04 (64 bit). (We don’t support other distributions, because we can’t test all possible versions).
  • Internet connection (direct or through the company proxy).
  • For security reasons it is necessary that each participant backup their computer before the course.

Hardware used

The practical exercises will be run on a BeagleBone Blackwith a Cortex ARM CPU provided on loan during the course.

beagleBone Black training

All exercises will be applicable to any other type of board supported by Linux.


To get the best results from this course it is advisable to know the following topics:

  • Basic Linux knowledge
  • Basic knowledge of the command line shell
  • Knowledge of the C language

Course structure

  • __ Day 1 – Morning __
  • Introduction to embedded linux
  • Virtual machine setup
  • Advantages of using linux
  • Systems running linux
  • Typical embedded hardware
  • System architecture
  • Linux commands
  • Linux filesystem
  • Virtual filesystems
  • Understanding the development process
  • Using the Unix command line
  • Using the vi text editor
  • Discovering procfs and sysfs
  • Using TFTP and NFS connect the board to develompent PC
  • __ Day 1 – Afternoon __
  • Configuring
  • Busybox
  • Autotools concepts
  • Bootloaders
  • u-boot
  • Booting the kernel using TFTP and NFS
  • Configuring TFTP server on the host machine
  • Configuring NFS server on the host machine
  • Flash a Linux image on a SDCard
  • Booting the target board using TFTP and NFS
  • __ Day 2 – Morning __
  • Learn Linux kernel sources structure
  • Details about the API provided to kernel drivers
  • Cross compilator toolchains
  • Cross-compiling the kernel for the target
  • Linux kernel introduction
  • Linux versioning
  • Generating patches with diff
  • Understanding the kernel development process
  • Extracting a generic linux kernel
  • Applying patches to the kernel with patch
  • Configuring the kernel
  • __ Day 2 – Afternoon __
  • Linux kernel configuration
  • Kernel boot parameters
  • Native and cross-compilation generated files
  • CPU pin muxing
  • Device Tree (examples from TI AM335x, NXP iMX6)
  • The init process
  • Cross compile a customized kernel
  • Run a modified Linux image on your target board
  • __ Day 3 – Morning __
  • General concepts of a build system
  • Origin of Yocto Project
  • Yocto Project overview
  • Yocto Project meta layers
  • Yocto Project recipes
  • How to setup the Yocto Project build system
  • Configuring the build system
  • Customizing the package selection
  • Organization of the project source tree
  • Building a root filesystem image using the Yocto Project
  • Setup the Poky reference build system
  • Building a system image
  • Creating a custom meta layer with Yocto Project
  • Creating an example recipe with Yocto Project
  • __ Day 3 – Afternoon __
  • Writing a minimal recipe
  • Adding dependencies
  • Development workflow with bitbake
  • Meta layers customization
  • Create a custom recipe for a new package nInvaders
  • Adding nInvaders to the final image
  • Flash a new Linux image on a SDCard
  • Play around with generated image on your board

Prossimi corsi Linux embedded & Yocto Project

No Events
No Events

Prossimi Corsi

No Events
No Events