It can be tough to get started with an embedded project, even for experienced developers, and the large number of choices out there can make things worse. Sometimes you need tools from one project, a board support package (BSP) from a different project or from a hardware provider, and applications from somewhere else – and no clues about how to make them all work together.
Many developers are driven to proprietary solutions, or to taking a large desktop or server-oriented Linux distribution and carving away unneeded pieces until the distro fits into a resource-constrained environment. Surely there has to be a better way.
The Yocto Project is one answer. Created as a Linux Foundation workgroup, now a lab, the project is an umbrella of sorts that covers many different aspects of embedded Linux development with the goals of stability, usability, and interoperability. The Yocto Project provides a comprehensive build system with an Eclipse-based IDE, several related tools, EGLIBC, and an Application Development Toolkit that enables developers to provide SDKs based on the distros they create with the Yocto Project.
Several of the projects in the Yocto Project are well known to experienced Linux developers – including EGLIBC and Poky – and several pieces are shared with other organizations, particularly the BitBake build engine and the OpenEmbedded Core metadata layer, both of which have shared maintainership with the OpenEmbedded project.
The Yocto Project uses and contributes to many upstream projects as well, including GCC and the Linux kernel itself. The result is a cohesive set of tools that are tested, highly extensible, and come with an active community of developers from many different organizations. As the tagline says, the Yocto Project is not a distribution in itself. Instead, it helps you create your own distribution from the ground up.
One of the more interesting aspects of the project is its governance structure. Rather than being run as either a corporate consortium or a rag-tag fugitive fleet, the Yocto Project is governed as a meritocracy, with the project’s chief architect as the ringleader directing a group of technical leaders and community participants. Many resources come from the project’s member organizations who form an Advisory Board. This board is made up of organizations who normally compete with each other – operating systems vendors, hardware manufacturers, and consumer electronics companies – but who all see the value in working collaboratively on these tools. It is a striking example of cooperation among competitors.
You can get started with the Yocto Project even if you don’t have an embedded board to work with – the project’s tools can build a distribution for any of four QEMU-based virtual environments: ARM, MIPS, PowerPC, and x86. Check out the Getting Started page for more information, particularly the Quick Start Guide.
As further enticement, yesterday we released Yocto Project version 1.2, so you can be the first on your cubicle block to try it out.
And for those still wondering – the name Yocto comes from the smallest international unit, indicating 10^-24.
About the author: Jeff “Jefro” Osier-Mixon has been wandering the halls of Linux conferences and embedded and open source software companies for… well, a long time. He works for Intel Corporation and serves as community manager for the Yocto Project. This is the first article in a new monthly series from the Yocto Project on Linux.com.