Layers

A layer is a collection of recipes and/or configurations that can be used to define how to build and deploy software packages. Typically, each layer is organized around a specific theme (e.g., in OpenEmbedded, recipes for building web server software are provided in the layer meta-webserver).

An Edge OS image is built upon multiple layers. It is possible for multiple layers to reference the same recipe in order to modify the recipe’s settings. In some cases, these modifications may conflict with one another. To resolve these conflicts, BitBake allows you to set the priority for each layer. In this way, layers that are higher can augment, or override, lower layers.

To add new recipes or customize existing ones, you can create and add a new layer, which you would assign a higher priority in order for it to supersede lower layers. For example, Edge OS provides customizations on top of the OpenEmbedded layers with two meta layers:

  • meta-edge-base
  • meta-edge-predix

Learn more about how to create a new layer.