22. June 2021 By Davide Beretta
This is why the "Yocto Project" is a power solution
Nowadays people dealing with electronic devices might have heard at least once about Yocto when it comes to embedded Linux. It has got very popular during the last years and it can be considered a de facto standard in the embedded world.
But what is exactly meant with the term Yocto Project? What’s behind this catchy name?
Most people think it’s just an embedded Linux distribution but no, wrong answer! The Yocto Project is not an embedded Linux distribution, it’s a fully-configurable toolchain for creating a custom one for you: A custom Linux distribution that is tailored for your own device and perfectly fits your needs.
Let’s find out more about this interesting topic.
Quick facts about Yocto Project
The project has been officially launched in 2011 by the Linux foundation with the scope of improving the software development process for embedded Linux distributions. Yes, it’s here to make lives of software developers easier.
Since the core features of Yocto have been inherited from the Open Embedded framework, it can be said that it’s standing on the shoulders of Open Embedded. It’s backed up by all big-tech companies (Intel, Arm, Xilinx, NXP, Facebook, AWS, Microsoft, …), which ensures a steady contribution to its own progress and development.
Major releases occur about every 6 months and it’s possible to count 21 of them so far, including the freshly published 3.3 Hardknott from April 2021.
Brief overview
If you dive into the Yocto environment, you are surely going to bump into recipes, meta-layers and bitbake. Let’s try to make clear what these 3 concepts are.
- Recipes: these “.bb” files are fundamental components in the Yocto environment, every software package that is going to be built by the build system requires one to define itself. Recipes contain info about source URL, dependencies, compile and install options.
- Meta-layers: they are the basic entity of the layered infrastructure of the project. They group related functionalities (recipes and relative configuration files) into separate bundles and you can incrementally add your own custom meta-layer to your project as needed.
- Bitbake: build tool like GNU make, it can be considered as the engine of Yocto. It‘s the bad guy that parses all the recipes and schedules compiling tasks.
It’s easy at the end, isn’t it? You just have to read the recipes, fetch all the ingredients, warm up the oven and let the bitbake begin!
Why Yocto?
Choosing the right Linux distribution for your embedded device is a delicate task. No vendor provides the right one, but Yocto does. Here is why:
- The toolchain is 100% customizable, allowing you to generate a Linux distribution that fits your project and ensuring best possible optimization of resources and performances.
- The fact being endorsed by several silicon vendors makes it a cross-platform and hardware-independent solution. This allows you to pick up the microprocessor that best suits your project.
- You can profit from one of the largest worldwide community that is keeping it up to newest technologies.
- It‘s an open source project, hence free from annoying licenses.
What is my personal role in this context?
Dealing with Yocto might turn into a hard nut to crack if you’re not approaching it with the right mindset. It’s a fact that Yocto Project is huge and it could hide unwanted dependencies as well as side-effects you’re not even aware of when choosing the path for your own solution. It happens quite often that you don’t have the proper amount of time or competences for analyzing all these aspects, which brings the risk of getting stuck in any phase of the project.
Don’t worry if all this is causing you headache, that’s where I, as a software developer, am helping you out! Me and the adesso team are here for guiding you through the whole life-cycle of your project and making the path to the final target as smooth as possible. We can support you from the very beginning when selecting hardware platform and evaluating BSP (Board Support Package) capabilities, we can help you in generating and tailoring Linux distribution for getting best performance and resource consumption, we can assist you when building SDK (Software Development Kit) for your team and, last but not least, we can develop/migrate/debug your high-end application on the target device.
More information on embedded software solutions including a one pager on the Yocto project can be found here.