Introduction: Product makers would find it hard to pick up off-the-shelf Linux distributions for use in their systems directly owing to the combination of bootloader, kernel, application, and development tool components not being compatible for their peripherals and hardware. Thus, a ‘roll your own’ approach to Linux is preferred and the Open Embedded (OE) build environment provides exactly that through a methodology to reliably build customized Linux distributions for your embedded devices. Open Embedded is not a Linux distro but a build system with which a Linux distro can be created.
OE is based on BitBake, a cross-compilation and make-like build engine developed for embedded Linux. Developers use BitBake by creating various configuration and recipe files that instruct BitBake on which sources to build from where and how to build them. OE is essentially a database of these recipe (.bb) and configuration (.conf) files, called Metadata, that developers can draw on to cross-compile combinations of components for a variety of embedded platforms. OE supports organizing Metadata into multiple layers. This concept of Layers allows you to isolate different types of customizations from each other. You might find it tempting to keep everything in one layer when working on a single project. However, the more modular your Metadata, the easier it is to cope with future changes.
You will find thousands of recipes to build both individual packages and complete images. A package can be anything from a bootloader through a kernel to a user-space application or just a set of development tools. The recipe knows where to access the source for a package, how to build it for a particular target, and ensures that a package’s dependencies are all built as well, relieving developers of the need to understand every piece of software required to add a particular capability to their application. OE can create packages in a variety of package formats (tar, rpm, deb, ipk) and can create package feeds for a distribution. You could begin by selecting a particular distribution rather than building individual packages. The advantage of using an existing distribution is that it will often be necessary to select certain package versions to get a working combination. Distributions address this key function. They often provide a ‘stable’ build in addition to a ‘latest’ build to avoid the inherent instabilities that come from trying to combine the latest versions of everything.
OE releases for Inforce platforms based on Linux Reference Platform Kernel (RPK) and the mesa graphic stack using freedreno driver are in the pipeline and would soon be publicly available on our Techweb repository. The layer descriptions along with other details are available at this link.