15

Can someone please briefly explain what is Bitbake, Poky, Recipes in simple words? I just want a basic understanding of what these are. Thanks.

P Singh
  • 151
  • 1
  • 1
  • 4

2 Answers2

26

Let's create a simple relationship of Bitbake, poky and recipes.

Poky is the Yocto Project reference system and is composed of collection of tools and metadata. Poky is platform-independent and performs cross-compiling, using Bitbake Tool, OpenEmbedded Core, and a default set of metadata. The main objective of Poky is to provide all the features an embedded developer needs.

enter image description here

Bitbake is a task scheduler that parses Python and Shell script mixed code, which we called Recipes. The code parsed generates and runs tasks. They are a set of steps orders according to the code's dependencies.

Metadata is where all the Recipes are located. Metadata is composed of a mix of Python and Shell Script text files. Poky uses this to extend OpenEmbeddded Core, meta-yocto, and meta-yocto-bsp

Sources: Embedded Linux Development with Yocto Project by Otavio Salvador and Daiane Angolini

Community
  • 1
  • 1
Charles C.
  • 3,725
  • 4
  • 28
  • 50
  • 2
    Sigh...this seems way more complicated than it needs to be...why can't it just be a simple git pull and make, eh? – Assimilater May 27 '18 at 22:19
  • OMG. I can almost understand this. But, I think they should add more obscure terms to keep the mystery going ;) So Poky is a build tool that contains the BitBake tool? How does a tool contain a tool? What is OpenEmbeded? So, metadata is a collection of recipes? To me 'collection of recipes' means the same as 'recipes'. Why the extra term? What is 'BSP'? What the heck is 'yocto'? What is a 'reference system'? – steve Mar 26 '21 at 11:31
  • 2
    `Poky is the Yocto Project reference system`: when would you not use **Poky**? – Bob Oct 12 '22 at 17:42
  • 2
    Reference system in relative to what? What is exactly being referred to? – daparic Oct 27 '22 at 14:43
4
  • Bitbake is a generic task execution engine that allows shell and Python tasks to be run efficiently and in parallel while working within complex inter-task dependency constraints. More details: what is bitbake

  • Poky provides an open source, full-platform build tool based on Linux, X11, Matchbox, GTK+, Pimlico, Clutter, and other GNOME Mobile technologies. Poky is primarily a platform builder that generates filesystem images based on open source software. More details: what is poky

  • Recipes (.bb files) are fundamental components in the Yocto Project environment. Each software component built by the OpenEmbedded build system requires a recipe to define the component. More details: how to create a recipe

S.Spieker
  • 7,005
  • 8
  • 44
  • 50
  • 7
    I think a better answer for Poky is: "Poky is a reference distribution of the Yocto Project. It contains the OpenEmbedded Build System (BitBake and OpenEmbedded Core) as well as a set of metadata to get you started building your own distro." https://www.yoctoproject.org/tools-resources/projects/poky. The reference you have is a very old one, I think when the umbrella project was also named Poky vs. Yocto. There is overlap, but that sentence better describes Yocto than Poky now. – Anders Mar 07 '16 at 23:19
  • Can't see a way to endorse Anders's reply, so consider this a +1. The original citation is from 2010 and should be considered historical. – Ross Burton Mar 08 '16 at 13:49
  • @Anders: why not add an answer? Seems weird to knock someone's answer by providing a different one. – steve Mar 26 '21 at 11:36
  • @steve It's just a comment, not "knocking" your answer. Comments are used to suggest improvements. The point I'm making is that Poky isn't really a "full platform build tool" or "primarily a platform builder" now. Those parts are called Yocto (and bitbake) now. The part currently known as Poky is just the reference configuration that gets built. It used to be kind of all mixed together, but that was historical. – Anders Mar 28 '21 at 17:43