Last month we held the 7th Annual Collaboration Summit and as usual, there was a lot of interest in The Yocto Project. For those who don’t know, The Yocto Project provides a multitude of templates, tools and specific methods you can follow that make it easier than ever to create a custom Linux-based system for a product, regardless of the hardware architecture (read highlights of the new Yocto release here).
In a new Linux Foundation training publication titled How Engineering Leaders Can Use the Yocto Project to Solve Complex Problems, the Linux Foundation’s Director of Embedded Solutions, Rudi Streif, outlines some common challenges that plague engineering leaders who work with embedded products. As a 20+ year experienced embedded engineer, Streif walks you through some specific scenarios that are common across all industries and shows how the Yocto Project was design specifically to address them. Some of the challenges addressed in this new publication include:
Controlling your Linux operating system stack
Build system and tooling
Open source licensing requirements
Getting the support you need
Ramping up and scaling your organization
If your organization is considering moving to Linux or you’re interested in exploring how the Yocto Project can make your next project easier, this new publication does a great job of taking you through the many advantages of using the Yocto Project for your embedded projects in the future.
An Excerpt From this Publication:
The two principal approaches for building a Linux operating system stack for your product are the following:
Top-Down: Leveraging an existing Linux distribution and scaling it according to product requirements;
Bottom-Up: Building a custom Linux distribution for your product starting with the kernel and adding packages as needed;
Both of these options have their advantages and their challenges. Let’s explore.
Leveraging an existing Linux distribution that you can download and install on your architecture of your hardware is not supported, peripheral devices have no drivers, and other problems typically found with embedded systems? Furthermore, how do you scale the distribution to your needs? All of those distributions come with a package management system that lets you install and uninstall components. While they are handling the dependencies, it remains a cumbersome process at the end of which you will have to create a file system image to install on your target hardware when going into production.
Building a custom Linux distribution from scratch gives you the most control over your operating system stack, including customizing and optimizing the Linux kernel potentially for multiple architectures, adding device drivers, and more. However, it is not a trivial task and the tools traditionally available have been limited.
Enter: The Yocto Project
The Yocto Project combines the best of both worlds. While the Yocto Project is not an (embedded) Linux distribution but creates a custom one for you, what it does provide is a set of common configurations to choose from. This includes a minimal system with console login, a system with a basic graphical user interface for mobile devices and even a system that is compliant with the Linux Standard Base (LSB), to get your team started quickly. After selecting your initial configuration and your target system, which can be an emulated target or actual hardware, the Yocto Project fetches all the necessary source code for the components that comprise the system, builds its own toolchain and then uses that toolchain to build all the other software components. Within a couple of hours or less, depending on your build system, the Yocto
Project creates bootloader, kernel and root file system images according to your configuration that you can either launch in an emulator or transfer to actual hardware.
After the initial build, components included in the system can easily be added and removed by modifying the build recipes, either by editing them directly or using a graphical user interface. Recipes are organized in layers that provide separation of configuration using a single setting allows building the same operating system stack for different target hardware.
Linux distribution maintainers spend considerable time and effort looking for patches and new releases of components included in their distributions.
The Yocto Project can help facilitate the maintenance for your team in several ways.