Skip to main content
Version: kirkstone_1-06-00

Build Clea OS

Download and build Clea OS

This section describes steps to create a local build directory and how to use repo to download all needed files. After that the build directory gets setup for one specific machine and distribution and a standard image is built. The recommended working approach is to use the docker build, so all the following commands are intended to be run from within the docker.

Download source code

Create a folder for the project

    $$ mkdir -p projects/clea-os
$$ cd projects/clea-os

Initialize the manifest environment

    $$ repo init -u https://git.seco.com/clea-os/seco-manifest.git -b kirkstone
$$ repo sync -j$(nproc) --fetch-submodules --no-clone-bundle

info

The repo init command above initialize a manifest based on the head on the kirkstone branch. In order to use a manifest based on a particular tag, the following command need to be used instead:

    $$ repo init -u https://git.seco.com/clea-os/seco-manifest.git -b refs/tags/<tag>

The repo tool stores its meta data in a hidden subdirectory called .repo. The manifest repository content is stored at .repo/manifests/ and is used for the sync command which actually downloads the sources.

The selected branch is kirkstone.

After the download the resulting directory structure should look like this:

    .
├── layers
│ ├── base
│ ├── meta-browser
│ ├── meta-clang
│ ├── meta-freescale
│ ├── meta-freescale-distro
│ ├── meta-intel
│ ├── meta-openembedded
│ ├── meta-python2
│ ├── meta-qt5
│ ├── meta-seco-clea-os-embedded
│ ├── meta-seco-clea-os-things
│ ├── meta-seco-imx
│ ├── meta-seco-intel
│ ├── meta-seco-rk
│ ├── meta-timesys
│ ├── meta-virtualization
│ ├── meta-rauc
│ └── poky
├── .repo
│ ├── copy-link-files.json
│ ├── manifests
│ ├── manifests.git
│ ├── manifest.xml
│ ├── project.list
│ ├── project-objects
│ ├── projects
│ ├── repo
│ ├── TRACE_FILE
│ └── .repo_fetchtimes.json
└──seco-setup.sh -> layers/base/seco-setup.sh

Build

In order to setup the build environment and run the build process, the following instructions shall be followed.

  • List the images that can be built:
   $$ . ./seco-setup.sh -l
  • Define the configuration that you need to build (e.g. 'seco_sbc_a62_clea_os' which refers to Clea OS Things image for A62 board):
    $$ . ./seco-setup.sh -d seco_sbc_a62_clea_os
  • Create the build environment for the selected configuration (architecture and distro features):
    $$ . ./seco-setup.sh -c
  • Finally, to build the SECO Clea OS image:
    $$ bitbake <image>

Where image can be one of the values reported in the table below.

Clea OS DistroimageSupportedDescription
Thingsseco-image-clea-osYESBase image for Clea OS Things
Embeddedseco-image-clea-osNO
Embeddedseco-image-clea-os-baseYESMinimal image for Clea OS Embedded
Embeddedseco-image-clea-os-fullYESFull image for Clea OS Embedded
  • For Clea OS Things only images the user can build the RAUC bundle to perform OTA updates with the command:
    $$ bitbake seco-bundle-clea-os

GitLab access

It should not be necessary to have a SECO GitLab account to build the standard images. The public access should be sufficient to do that.

However, for customer specific layers and configurations, that are not publicly accessible, a SECO GitLab account or Access Token is necessary. Contact a SECO Software expert or the Technical Support to get access.

You need to generate a SSH key-pair and register it with your SECO GitLab account, see the gitlab docs.

    $ ssh-keygen -t ed25519 -C "my.name@example.com" # use your email instead
$ cat ~/.ssh/id_ed25529.pub