Skip to main content
Version: scarthgap_2-x

Project Overview

Clea OS as Yocto Project

Clea OS is based on Yocto, an open source project born from the collaboration of various entities belonging to the world of embedded, in order to provide a useful tool for the creation of embedded distributions based on Linux (Yocto is not in itself a Linux distribution).
Yocto puts together a framework with a series of integrated tools and metadata organized in a layered structure. This provides a development model for all the parts that make up Yocto itself, on which developers who intend to create their own distributions can rely on.
Clea OS is no exception and should be thought of as a hierarchical series of layers.

Clea OS - Yocto context

From the figure shown here we can see three distinct elements, each encapsulated within the other:

  • BitBake: the first is the bitbake engine which interprets the set of metadata (commonly called recipes) and manages/coordinates the build phase of the distribution. For historical reasons, this element is co-maintained by the OpenEmbedded project, another entity that originally owned the engine;
  • Poky: a distribution reference design released by Yocto itself and used as a basis for all distributions created through Yocto. Poky can be considered a basic version for a distribution;
  • Yocto: which is basically everything we have seen so far, plus documentation, additional tools and a community that regulates the development of the project and provides additional layers and components to support elements such as BSP (Linux, U-Boot, Grub , etc.), hardware acceleration for video, 2D/3D graphics, AI and other software components such as browsers, web servers, multimedia players and development frameworks such as Qt.

Clea OS 2 – Architecture Overview

Clea OS 2 is organized as a Yocto-based distribution and a set of OpenEmbedded layers maintained by SECO. The diagram below summarizes how the SECO distro layers, the BSP vendor layers, the upstream Yocto layers, and SECO build tools fit together.

Key goals:

  • Multi-architecture, multi-device support for flexibility, scalability, and future-proofing.
  • Modularity to fit different integration levels—from BSP-only enablement to fully integrated solutions.
  • Easy configuration so teams can work autonomously with setup tools and manuals.

Clea OS - Architecture Overview

How to read the diagram

From bottom to top, the stack moves from silicon-specific enablement to SECO distributions and customer customization. From right to left, it shows upstream Yocto/OpenEmbedded dependencies and, on the far left, SECO build tooling that orchestrates layer selection and configuration.

SECO BSP aggregation (blue area)

Here are the layers relating to hardware support, generically represented by the term BSP. The components included depend on the architecture, but the Linux kernel is always present. In addition, silicon vendor specific patches are provided which enable hardware acceleration for user-space components such as Chromium, Qt framework, Gstreamer.

meta-seco-bsp is the central BSP aggregation layer for SECO boards.
It unifies multiple silicon families, each mapped to their main upstream BSP layers:

  • NXP i.MX (meta-seco-imx): meta-imx, meta-freescale, meta-freescale-distro
  • Rockchip (meta-seco-rk): Rockchip-based enablement (upstream RK layers)
  • Intel(meta-seco-intel): meta-intel
  • MediaTek(meta-seco-mtk): meta-mediatek-bsp, meta-mediatek-rity
  • Qualcomm(meta-seco-qcom): meta-qcom, meta-qcom-hwe, meta-qcom-distro, meta-qcom-qim-product-sdk
  • Raspberry Pi(meta-seco-rpi): meta-raspberrypi

This section provides Board Support Package integration, kernel/device-tree configuration, firmware, and machine configs aligned with the hardware supported.

SECO distro layers (orange area)

On top of the BSP aggregation sits meta-seco-clea-os, which defines the foundation for the product distributions.
The distro represents the core of Clea OS, where all the features provided are concentrated. Those represent an application field (embedded, IoT, medical, automotive) of Clea OS, where some features are designed to satisfy those fields' requirements. Two distro flavors extend it:

  • Clea OS Embedded (meta-seco-clea-os-embedded): A general-purpose embedded distribution enabling typical hardware features and developer tools. Highly customizable and suitable for a wide range of applications.
  • Clea OS Things (meta-seco-clea-os-things): A field-oriented distribution focused on robustness and lifecycle management. It adopts opinionated defaults for OTA workflows and footprint constraints, including A/B partitioning, recovery/rollback, and a fixed disk layout.

These layers define distro configuration, package selection, services, defaults, and integration points with update/security stacks.

Customization (light-blue area)

At the top, the custom boxes indicate where a custom flavor/distro can be optain and where partners can extend or tailor the system. This layer has to rely on the distro, taking advantage of what is already enabled in the distro and only applying minimal customizations. All underlying layers have been developed in such a way that in the custom layer (or more generally in the layers above) the user can overwrite configurations and environment variables without any problems.

  • Custom on Clea OS Embedded: overlays and recipes on meta-seco-clea-os-embedded
  • Custom on Clea OS Things: overlays and recipes on meta-seco-clea-os-things
  • Custom Distro: a fully branded distribution derived from Clea OS layers

Typical changes include package sets, branding, system services, image types, security posture, and application containers.

Upstream Yocto / OpenEmbedded (green area)

Clea OS 2 builds on standard Yocto/OpenEmbedded components:

  • POKY and key layers such as: meta-openembedded, meta-arm, meta-clang, meta-security, meta-virtualization, meta-rauc, meta-browser, meta-timesys, …

These provide toolchain, package feeds, security hardening primitives, container/virtualization support, and OTA foundations (e.g., RAUC).

SECO build tooling (purple area)

  • SECO-BASE – common build environment primitives and conventions
  • SECO-BUILD-CONFIGURATOR – presets, machine/distro selectors, build profiles
  • SECO-LAYER-MANAGER – layer orchestration (add/remove/lock), compatibility checks

These tools streamline developer workflow, ensure reproducibility, and make it simple to compose the right stack for a given device.

Clea OS - Hierarchy

Embedded and Things Flavors

EMBEDDEDTHINGS
This version provides a complete Yocto stable distro for embedded devices with all the tools needed for development and testing.

- Enabling of all HW feature provided by Silicon Vendor:​
- Highly customizable.
- Support of various technologies and applications​.
- Weston graphic environment with video hardware acceleration

Even though the Clea OS Embedded distro comes with the Clea IoT agents preinstalled, it doesn't support all the IoT functionalities described on the right for Clea OS Things, such as OTA updates.
This version is designed to offer the highest standards in terms of security and stability thanks to features like double partitions and fallback procedures. Clea OS Things distro integrates a device manager to communicate with the Clea Cloud, allowing a family of products to be managed as a fleet:​

- Secure OTA updates.​
- A/B dual partition schema.​
- Fixed disk layout with minimal footprint.
- Recovery/Rollback.
- Seamleassy integrates Clea stack​.
- Highly constrained.

Architecture Conceptual Organization

Clea OS is positioned in an industrial context, so the expectation is that the OS will be maintained for a long time in terms of support, bug fixing and software updates. When modeling the Clea OS architecture, some specifications have been taken into consideration:

  • Separation of concerns: upstream/vendor BSP layers, Clea OS distro layers, and customer overlays/customizations.
  • Multi-architecture support: ARM and x86 supported, reducing to minimum terms the code base and the effort to support them. Within the ARM macro group, a further subdivision must be made between CPU types, where each silicon vendor gives its way to support their platform;
  • Cross-vendor consistency: a single BSP aggregation layer ensures the same developer experience and software stack across silicon vendors (e.g., aligned Qt/Chromium versions, unified tools/frameworks).
  • Two ready-made distro flavors: Embedded (general-purpose) and Things (field/OTA with A/B, recovery/rollback, fixed layout) to match deployment needs.
  • Scalability: easy to extend to new boards and features and to evolve across Yocto releases.
  • Canonical Yocto approach: follow Yocto/OpenEmbedded guidelines; reuse upstream layers for security, OTA (e.g., RAUC), virtualization, and toolchains.
  • Productivity & learnability: reduce Yocto’s learning curve by automating manual steps and standardizing workflows.
  • Industrial-grade lifecycle: designed for long-term maintenance, bug fixing, and software updates.
  • Flexibility without forks: clear customization path via layers, recipes, and overlays—no need to fork core components.
  • Pragmatic delivery: optimized for real-world development, production, and deployment constraints.

Architecture as source code

Since Clea OS source code is contained in a collection of GIT repositories, the repo tool is used. Repo is a tool provided by Android's team that complements Git by simplifying work across multiple repositories. The whole project structure described above is closed inside a manifest file (hierarchical set of xml files).

Clea OS - Code composition