Using Yocto Project with BeagleBone Black
上QQ阅读APP看书,第一时间看更新

Chapter 2. What's BitBake All About?

In the previous chapter, we created a working image for BeagleBone using Yocto Project. We also briefly discussed the different concepts while working on the exercises. In this chapter, we will move one step ahead by detailing different aspects of the basic engine behind Yocto Project, and other similar projects. This engine is BitBake. Covering all the various aspects of BitBake in one chapter is not possible; it will require a complete book. We will familiarize you as much as possible with this tool.

We will cover the following topics in this chapter:

  • A brief history of BitBake
  • Legacy tools and BitBake
  • Execution of BitBake
  • BitBake options

A brief history of BitBake

BitBake drew inspiration from the Gentoo package management tool, Portage. Gentoo has a unique philosophy of building binaries on the system where they are supposed to run, so that maximum optimizations can be applied to the code. This philosophy fits best in the case of embedded systems, where you always have a different set of hardware in hand, and you need to prepare board support packages for that hardware. Initially, BitBake was a part of OpenEmbedded.

Later on, an OpenEmbedded project team member, Chris Larson, split it into two separate pieces:

  • BitBake: This is a generic task executor
  • OpenEmbedded: This is a metadata set utilized by BitBake

Now, BitBake is the base for OpenEmbedded and Yocto Project, which are being used to build and maintain multiple Linux distributions.