Interview: Mike Woster Discusses The Yocto Project

July 24, 2013
How do you get Linux running on your custom design? The Yocto Project is designed to help do this and Mike Woster, COO and Vice President at The Linux Foundation, talks with Technology Editor Bill Wong about how it works.

Have you heard about the Yocto Project? Even if you use Linux or write applications for Linux you may not know about it. It is essentially tools for making tools. In this case, it is for making Linux to run on that custom piece of hardware you just designed so you can write the software to make it work.

The Yocto Project is an open source endeavor that is supported by a wide range of commercial vendors. This means you can roll your own, on your own, or get the tools as part of a supported commercial package. The tools have been used with popular open source hardware like the BeagleBone Black (see Interview: Jason Kridner Discusses The BeagleBone Black). The tools include packages like BitBake that has a graphica front end, HOB (Fig. 1), for building a custom Linux image.

Figure 1. HOB is the graphical interface to BitBake that is a tool used to build Linux images.

To get a better handle on the Yocto Project I talked with Mike Woster, COO and Vice President at The Linux Foundation. The Linux Foundation supports the Yacto Project. You can also check out an animated video they did (watch Introducing the Yocto Project).

Wong: What is the Yocto Project?

Woster: The Yocto Project provides open source, high quality templates, tools and methods to help anyone create custom Linux-based systems for embedded products regardless of hardware architecture. Besides its product, the Yocto Project is a vibrant ecosystem of corporate and individual contributors as well as other supporting open source projects that provide compliant hardware and software solutions.

Related Articles

Wong: How is it associated with The Linux Foundation?

Woster: The Yocto Project is a Linux Foundation Collaborative Project. Linux Foundation Collaborative Projects are independently funded software projects that harness the power of collaborative development to fuel innovation across industries and ecosystems. We provide the essential infrastructure, guidance and services needed to support a project, while participants can focus on innovation and results.


Wong: Does the Yocto Project target BSP developers, embedded developers or application developers?

Woster: The Yocto Project is useful and targets all of these folks.

Woster: Embedded system developers who are tasked with building a Linux operating system stack will find with the Yocto Project all of the necessary tools to create a custom Linux distribution for their target device.

Board Support Package (BSP) developers appreciate the Yocto Project providing a standardized platform for BSPs. That alleviates them from having to adapt their BSPs to different cross-development toolchains and build system environments. Consequently, for SoC vendors the Yocto Project has become the de-facto standard for SoC companies to support their BSPs, spanning all four major architecture families.

For application developers the Yocto Project builds an Application Development Toolkit (ADT) that includes a cross-development toolchain and root file systems for hardware and emulated targets. Together with the available plugin for the popular Eclipse IDE, the ADT provides a powerful roundtrip application development experience with remote target debugging and performance profiling from within a single developer’s workbench.


Wong: What are the basic technologies and tools being provided by the project?

Woster: The Yocto Project is a collection of multiple open source projects that are hosted and actively developed under one umbrella (Fig. 2).

Figure 2. The Yacto Project provides a collection of tools and a workflow to tie them together.

The most prominent representative from this family is the Poky Build System, which is a self-contained build environment that creates custom Linux distributions all the way from source code to kernel and root file system images that boot on actual hardware as well as inside emulators. Poky includes multiple “blueprints” for creating Linux operating system stacks. These blueprints allow system engineers to quickly ramp up building their own custom stacks by modifying and extending them.

Other technologies maintained by the Yocto project include:

  • BitBake - the build engine behind Poky
  • OpenEmbedded Core - common recipes and BitBake classes shared between the Yocto Project and OpenEmbedded
  • Autobuilder - a QA automation environment built on BuildBot
  • EGLIBC - the embedded version of the GNU C Library
  • HOB - a graphical user interface for BitBake
  • Application Development Toolkit (ADT) - a development environment for user space applications to run on OS stacks built by Poky
  • Eclipse IDE Plugin - integration of ADT with the Eclipse IDE
  • Matchbox - an X Windows based graphical reference UI for embedded devices
  • Build Appliance - a virtual machine image to try out the Yocto Project
  • Swabber and Pseudo - tools for cross-developments which are integrated with Poky

Wong: Basically, how would I use the tools?

Woster: Anyone can start using these tools right now to build custom Linux-based embedded Linux products. You can participate in the community and/or download the tools at Yacto Project website. The easiest way is to download the build appliance and launch it in a virtual machine environment. That does not require the installation of any software on the test system. The test system does not even have to be a Linux system. Another option is to download the current Poky release right away, use the quickstart manual and build your first custom Linux distro on your Linux build host.


Wong: What is a time limited kernel?

Woster: A Yocto Project-compliant BSP contains reference binary kernel and root file system images built with the Yocto Project for the hardware supported by the BSP. Engineers can use those images to quickly bring up their hardware and it provides them with a reference for their own system images.

The binary kernel images contained in the BSPs provided by Intel for their embedded hardware and evaluation boards have a built-in 10-day timer that will reboot the kernel after it has been running for that period of time. That makes these kernel images unsuitable for embedded devices. Intel wants to encourage engineers to use the Yocto Project to build their own Linux system with the Yocto Project and the BSP rather than relying on the provided reference binaries. Intel is currently the only silicon vendor using this practice.


Wong: How does the Yocto Project fit with respect to embedded developers?

Woster: The Yocto Project is an embedded developer’s dream, because it brings together the elements needed to make the normally difficult embedded Linux development process a lot easier. Also, because of the alignment with the OpenEmbedded community, developers have access to an integrated, common build framework for embedded Linux.


Wong: What about commercial support?

Woster: A variety of companies support Yocto Project and commercial support for embedded Linux distributions and systems built using the project are available from a number of embedded Linux vendors. You can see who is supporting the project today at the Yacto Project Ecosystem page.

Wong: If I am looking for commercial support, what should I be asking for?

Woster: Operating System Vendors (OSVs) and ISVs are providing commercial support for their build environments, distributions, BSPs and other components that are based on the Yocto Project. Software consultancies provide services to help companies getting started with the Yocto Project for their embedded projects.

What should you ask for? Carefully interview the provider on their expertise with consideration of the targets for your embedded project. For instance: processor architecture, specific SoCs, graphical subsystems and UI, network connectivity, etc.


Wong: How can the Yocto Project technology be incorporated into a product for developers?

Woster: Several companies are integrating the Yocto Project, or more specifically one or more projects from the Yocto Project family, into their commercial offerings such as developer workbenches. They also extend the Yocto Project with their own tools for embedded software development. The Yocto Project Compliance Program provides guidelines on how to accomplish this.

Benefits for organizations participating in the Yocto Project Compliance Program include strong recognition by the Yocto Project ecosystem, market relevance and competitive advantages through interoperability. Benefits for companies utilizing Yocto Project-compliant components include a potential reduction on R&D costs and and shorter time-to-market.

References

About the Author

Mike Woster | COO and Vice President

Mike Woster, COO and Vice President at The Linux Foundation. Mike oversees Collaborative Projects for the organization.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations

Comments

To join the conversation, and become an exclusive member of Electronic Design, create an account today!