A large number of companies are adapting their own lightweight OS to conform to their specific needs of connected home/office, industrial controls, kiosk, Internet of Things (IoT), digital signage, or robotics applications. Performance and low power consumption are critical factors for embedded devices. Linux is a predominant OS since it allows developers to effortlessly select and modify components as needed; Google’s Nest, for example, runs Linux. Embedded Linux developers frequently have to create their own distribution to precisely define the contents of the OS.
Custom embedded Linux distribution increases the performance which makes for more stable version. It also eliminates the unnecessary modules and components helping fast booting process; and of course, the developer is allowed to add various features and optimize them for better performance. Time and again, a developer choosing an option of creating a custom embedded Linux distribution also faced challenges because, a fully custom Linux distribution, once developed, will never update over time. One has to maintain the updates, security patches, add new libraries and packages and so on.
The Yocto Project is a development environment with which one can swiftly and easily create custom Linux versions. The Yocto – standardized custom distribution builder – saves time and resources that would otherwise be wasted on compiling, re-configuring and maintenance. Anyhow, one has to create one’s own distribution, but there is no need to go back to the drawing board. Yocto, based on OpenEmbedded-core (oe-core), is basically a collection of tools and methods which enables customization of distribution characteristics. Yocto offers layered structure which makes it easy to reuse components on different systems. If the processor is changed, for example, only the layer connected with processor support is needed to be changed. This enables compiling the OS quickly for the new processor or for a device that uses the new processor.
The Yocto project builds packages – then uses these packages to build bootable images – Let’s understand how. OpenEmbedded co-maintains the build system, which uses Bitbake (the Yocto Project build system) as a building tool and Metadata as a structured collection of approximately 900 popular “core” recipes (provides a “list of ingredients” and “cooking instructions”; used for building bootable images, includes support for graphics, Qt, networking, kernel, recipes, tools, much more). All these, collectively, makes a reference distribution called – Poky.
Poky contains Bitbake tool, Build scripts, Foundation package recipes (oe-core), Meta-yocto, Reference BSPs, Yocto Project documentation. Putting all together, we can build a full embedded image with Yocto.
What if, the developer wants to create / to add new functionality or packages to the existing; Yocto also enables the developer to do so. He can create a custom layer and add further that layer to his build to create a custom recipe; this enables him to create a custom bootable image, a custom reference distribution. He can use Toaster as well; Toaster is nothing but a web interface to OpenEmbedded and BitBake – allows to configure and run his builds, and provides information and statistics about the build process. In this way, Yocto enables the developer to create a complete customized reference distribution.
eInfochips has recently released Linux support for Aikri QCS405 and Aikri QRB5165, built on Yocto Thud v2.6.4 and v2.6.1 respectively. To know more about our offerings based on Qualcomm processors, visit our Eragon website