Hacker News new | past | comments | ask | show | jobs | submit login

I sometimes use Yocto at work to rebuild certain recipes in an embedded Linux distribution, but I'm really confused about what "Yocto" and what "Poky" mean. If anyone knows and has time to dispel my confusion, that would be awesome. (I'm trying to answer a bunch of my own questions in here -- please let me know if I got anything wrong.)

"BitBake" is easy -- that's the command you run to rebuild "BitBake recipes" (a recipe is something like a Makefile, except that it's more "meta" -- it defines what to run in order to build software packages, i.e. how to find and build a source directory that may have Makefiles/CMakeLists/whathaveyou in it -- so I think it's a bit like e.g. an RPM spec file). So you run stuff like 'bitbake -c clean packagename' or 'bitbake -C compile packagename'. (BTW, I often want to do things in a single command -- is that possible? Reloading the whole cache every time gets old after a while.)

Fine okay, "Yocto" is presumably the name of the entire project. But what's Poky?

> 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.

Hrm, what's OpenEmbedded Core?

> OpenEmbedded-Core is a layer containing the core metadata for current versions of OpenEmbedded. It is distro-less (can build a functional image with DISTRO = "nodistro") and contains only emulated machine support.

Hrm, okay. (BTW, for the people who don't know -- "metadata" most likely refers to a collection of "BitBake" recipes (i.e. a directory containing loosely related BitBake recipes), so the "core metadata" would likely be the recipe for at least the Linux kernel.) (BTW2, in BitBake, you customize recipes using "layers". The first layer contains recipes that build things in a generic way, and then you add other "layers" that contain "bbapend" files that override variables or commands in the lower-layer recipes to build something the way you need it.)

Okay, so is the "OpenEmbedded Build System" still part of the Yocto project? From Wikipedia: "BitBake is co-maintained by the Yocto Project and the OpenEmbedded project." Okay, that explains that a bit. But why are they separate in the first place?

Why does "Poky" have such a weird name, and what kind of recipes does it bring to the table? Looking at the repository (http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta), that's quite a lot of useful packages.

One other question that just popped up in my mind: are there any Desktop Linux distros that use this as their build system?

OpenEmbedded and Yocto are separate entities in time. The OpenEmbedded project started in 2003, Yocto in 2010/2011.

When you "use yocto", you're likely just using parts of the OpenEmbedded project. Yocto takes all the flexibility of the OpenEmbedded project and packages together a functional setup (called Poky) that can be more easily customized to build custom images. (There are non-poky, non-openembedded components of yocto, but I'm not familiar with them).

The default packages shipped with Poky are I suspect just the minimal set required to get a network connected device with a GUI interface up. Remember that it's default setup is effectively suppose to be a "hello world" project.

> are there any Desktop Linux distros that use this as their build system?

I don't think so and I think that is not the goal of the project. It is more like a build system to meet the requirements of "I need to build a set of packages for architecture X and additionally a host SDK and a deployable system image", so it lets you whip up a recipe with your requirements and off you go.

> Why does "Poky" have such a weird name

The pronunciation is even more weird: "Pock-ee"


> Why does "Poky" have such a weird name

"Poky" in English means "small". The idea being that the distro is engineered to build small OS images for small embedded devices.

Though that definition is correct (had to look it up) the more common one seems to be "annoyingly slow". at least that's the only one I actually knew or ever heard.

It might be a slightly older phrasing, but to match your anecdote: I've never heard of poky meaning slow.


> It's located in a pokey little village in the middle of damn near nowhere.

You've never heard of a slow-poke? Similar usage, you can be pokey or you can be a slow-poke, both mean slow. The "small" definition is new to me. Seems like difference between British/American English.

> You've never heard of a slow-poke?

Sure, but that doesn't mean "slow slow". The poke part of that that means something similar to "yoke".

A slowpoke is something that's slow and dragging you down with it.

All the names of Yocto (or better openembedded, which is it's ancestor) have to do with food. There is bitbake, cooker, toaster, and what not.

Pocky is a brand of chocolate coated bisquit sticks. (Not very international, I have not seen them.) But using a trademarked (I assume) name might end up in trouble, so they changed the spelling but kept the pronunciation.

It's not exactly a positive term though is it. It's a strange choice if this is truely the reason.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact