The Yocto Project™ is an open source collaboration project that provides templates, tools, and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture. It is a complete embedded Linux distribution builder with tools, metadata, and documentation.
With the Yocto Project you can compile thousands of packages to create your custom Linux image and add community open source applications to your device. It builds the three main components of an embedded Linux product:
-
The bootloader
-
The Linux kernel
-
The user space or root filesystem
What is a Linux distribution?
A Linux distribution is an operating system based on the Linux kernel and GNU Linux software, most importantly the GNU toolchains, libraries, and development tools. A distribution sets the policies for the system, things like:
-
The selection of supported packages
-
The initialization system to use
-
The graphical backend
-
System-wide choices such as the Bluetooth stack
-
Graphical environments
What is Digi Embedded Yocto?
Digi Embedded Yocto (DEY) is an open source and freely available Yocto Project™-based embedded Linux distribution. It is the reference distribution for the Digi ConnectCore range of embedded system-on-modules (SOMs) and single board computers (SBCs), and it is based on Poky, the reference Yocto Project Linux distribution. It includes customizations for Digi hardware as well as out-of-the-box software extensions not part of the standard Yocto Project that help your products get to market faster.
Digi Embedded Yocto is maintained in GitHub as a Yocto supra layer called meta-digi.
This layer contains two different Yocto layers:
-
meta-digi-arm: Contains Board Support Packages (BSPs), including machine definitions, and hardware-related software and firmware
-
meta-digi-dey: Distribution layer with software features that are mostly hardware independent
As a distribution, Digi Embedded Yocto provides the following:
-
Digi BSP. Digi Embedded Yocto provides precompiled images that are ready to use, but you can also compile the whole distribution from source. The distribution contains the following components, which have been customized and tested for the ConnectCore module:
-
A U-Boot-based bootloader customized for the ConnectCore module to boot the Linux image. You can configure U-Boot at boot time, and it integrates a useful set of commands so you can program your own scripts. Digi provides source code that can be tailored to your design requirements as well as integrated within the build system. When the Digi Embedded Yocto image is built, the U-Boot image is also built with it.
-
A Linux kernel based on version 5.4 and customized for ConnectCore products. Digi Embedded Yocto includes the kernel source as well as device tree configuration files.
-
Reference root file system images using the Digi Embedded Yocto reference distribution. The Digi Embedded Yocto distribution makes the following choices:
-
The default selection of packages through the supported images
-
sysvinit as initialization manager
-
Framebuffer and X11 support
-
Bluez5 support
-
QT5 support
-
Pre-compiled framebuffer images (core-image-base, dey-image-qt-fb) or X11 images (dey-image-qt-x11)
-
Multimedia enabled (using the gstreamer open source framework)
-
Standard Linux networking tools NetworkManager and ModemManager
-
-
Digi Embedded Yocto is used to perform comprehensive BSP validation on Digi’s SOMs, SBCs, and BSPs. You can further customize it by creating your own Digi Embedded Yocto-based distribution.
-
SDK. Digi Embedded Yocto includes a precompiled C/C++ toolchain. You can use it to cross compile applications to run on Digi embedded platforms.
-
Precompiled images. Digi Embedded Yocto includes pre-built reference images to accelerate your development process.
-
Documentation. Digi Embedded Yocto comes with comprehensive documentation covering all the development and technical aspects of the ConnectCore products.
-
Software extensions. Digi Embedded Yocto is designed to improve your time to market with common and simple to use software features that work out of the box.
Versioning
Digi Embedded Yocto adheres to the following versioning scheme:
M.m-rN.b
-
M.m is the upstream Yocto Project´s major.minor version
-
N is the release version
-
b is the build number