Separating metadata into layers
Yocto metadata is organized around the following concepts:
- distro: OS features, including choice of C library,
init
system, and
window manager - machine: CPU architecture, kernel, drivers, and bootloader
- recipe: Application binaries and/or scripts
- image: Development, manufacturing, or production
These concepts map directly to actual byproducts of the build system, thus offering us guidance when designing our projects. We could rush to assemble everything inside a single layer, but that would likely result in a project that is inflexible and unmaintainable. Hardware inevitably gets revised, and one successful consumer device quickly multiplies into a series of products. For these reasons, it is better to adopt a multi-layered approach early on so that we end up with software components that we can easily modify, swap out, and reuse.
At a minimum, you should create individual distribution, BSP, and application layers for every...