Career Boost: Building custom Linux-based systems using The Yocto Project

Career Boost: Building custom Linux-based systems using The Yocto Project

The Yocto Project stands as a beacon of innovation within the open-source community. Founded by a coalition of semiconductor vendors and OEM suppliers under the auspices of the Linux Foundation, it has garnered support from industry giants such as Intel, Arm, Texas Instruments, and Xilinx. In this article, Karina Murawko-Wiśniewska, an Expert Engineer at the Embedded Competence Centre at Mobica, will guide us through the main aspects of the Yocto Project.

Introduction to the Yocto Project

It is crucial to understand that Yocto is not another Linux distribution. The Yocto Project “helps developers create custom Linux-based systems regardless of the hardware architecture” (www.yoctoproject.org) (where hardware architecture might be x86, x86-64, ARM, MIPS, and PPC-based architectures). 

Here’s a comprehensive explanation of Key Components in the Yocto Project, including Recipes, Layers, Poky and more.

mobica-linux

Key Components of The Yocto Project

The distribution is built from sources based on recipes. A Recipe is a .bb file containing information about a piece of software i.e. the location of the source, patches or configuration options to apply, and how to compile and package the output. 

A collection of recipes is called a layer. The Yocto Project uses the Layer Model consisting of customisable layers that can be added or removed when required.  

A user can start building distribution with Poky. A Poky is a reference embedded distribution and contains the build system (BitBake and OpenEmbedded Core) with a set of metadata (recipes). 

The BitBake is a Python tool that parses metadata (stored in recipes, and configuration files), creates a task list and executes tasks. BitBake controls how software is built; it handles cross-compilation and is architecture and Linux distribution agnostic. 

OpenEmbedded Core is a core build system metadata (set of basic recipes, generic for OpenEmbedded-based systems).

With a better grasp on the Key Components of Yocto, it is crucial to contemplate some of it’s advantages and disadvantages. 

Advantages of the Yocto Project

Yocto offers the following advantages:

join-mobica

Challenges of the Yocto Project

Despite its benefits, the Yocto Project presents the following challenges:

  • There are also challenges when using Yocto. It takes a lot of time to set up, configure and build and during building consumes a lot of resources (e.g., disk space: 50-100GB).
  • Learning Yocto is also challenging due to its complexity. If Yocto was a mug it would say „Steep learning curve” with red letters on it. Now it is your job to turn the challenge into an opportunity. Embedded software developer with Yocto in CV would be a great asset for an employer that wants to choose Yocto for creating custom Linux distribution for their board. 

“I experienced myself providing an OS based on Ubuntu for developed software applications and maintenance of it was a nightmare. It was difficult to track dependencies and software versioning, but the worst thing was the lack of reproducibility which made debugging almost impossible. That’s why I found the very idea of the Yocto Project so appealing. I’m at the beginning of my journey yet very excited for more.”

says Karina Murawko-Wiśniewska.

Yocto Project in Action at Mobica

In Mobica we see a big demand for Yocto-based solutions among our customers. The use cases range from industrial automation and monitoring devices to home appliances, to automotive systems, where Yocto competes against more specialised solutions for vehicles. Customers often require us to build a team of driver developers able to work with Yocto, with one or two engineers focusing on the build system itself, where the work resembles being an “Embedded DevOps” and working on the border between low-level programming and system-level configuration. 

"I have used Yocto for large telecom and automotive projects as well as smaller personal projects. The reason I always choose Yocto is because of its unparalleled flexibility and customisation options. Yocto allows me to create custom Linux distributions optimised for different hardware platforms to meet the rigorous demands of embedded applications, create SDKs for developers, and automate release and maintenance processes.

Due to its complexity, navigating Yocto's layers, recipes and metadata can be challenging, especially for beginners. There is a steep learning curve, but well worth it. By investing time and effort into mastering Yocto, I have gained invaluable insight into system configuration, package management and compilation processes. This knowledge allows me to effectively develop and deploy embedded solutions with precision and reliability."

quoted Szymon Rajczakowski, Senior Software Engineer, Embedded Competence Centre at Mobica.

Explore A Career at Mobica

If the challenges and opportunities of the Yocto Project excite you, Mobica is seeking skilled individuals ready to tackle these challenges head-on. As part of our team, you'll work on cutting-edge projects, leveraging the Yocto Project to deliver bespoke solutions across various industries.

Explore our Careers Page to keep an eye on Mobica’s open roles.

Are you ready to make your own contribution?

 

Get started with Mobica today!

 

JOIN THE TEAM