Requirements
Preparing the host system
Before starting with Clea OS, choose one of two setup methods:
- Recommended: use the preconfigured SECO Docker container.
- Alternative: install all required tools manually on your host system.
Both setups are validated on Ubuntu 22.04 LTS.
- Install Docker
- Pull the SECO image
- Run the container
- Proceed to build Clea OS
Ubuntu 22.04
All Clea OS development and build operations are verified on Ubuntu 22.04 LTS.
You can use either:
- a bare-metal installation, or
- a virtual machine (e.g., VirtualBox, VMware, etc.).
Download the Ubuntu 22.04 image from the official source: Ubuntu 22.04.5 LTS Desktop iso
SECO Docker Container (Suggested Method)
This is the recommended and simplest way to prepare your Clea OS build environment.
The release builds run inside Docker images based on ubuntu-22.04.
The official SECO Docker images are available in the SECO Docker Hub repository
Pull the latest container:
$ docker pull secodocker/clea-os-builder:latest
If you prefer not to prefix Docker commands with sudo, follow the Docker post-install guide
Since all the necessary build packages are already inside the SECO container, you only need to have Docker installed locally when using this setup.
Runnig the Docker container
You can start the Clea OS build environment with the following command:
$ export docker_user="yoctouser" ;
$ export docker_workdir="workdir" ;
$ docker run --rm -it \
-v "${PWD}":/home/"${docker_user}"/"${docker_workdir}" \
-v "${HOME}"/.gitconfig:/home/"${docker_user}"/.gitconfig:ro \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v "${HOME}"/.Xauthority:/home/"${docker_user}"/.Xauthority:rw \
-v /etc/ssl/certs/:/etc/ssl/certs/:ro \
--workdir=/home/"${docker_user}"/"${docker_workdir}" \
secodocker/clea-os-builder:latest --username="${docker_user}"
Mount the .gitconfig file only if there are particular settings to import into the container. Otherwise, configure git settings directly inside the running docker container.
If you need SSH access to repositories, add the following line to the docker run command:
-v "${HOME}"/.ssh:/home/"${docker_user}"/.ssh:ro \
Run the command inside the folder where you want to work. That directory will be mapped inside the container at:
/home/${docker_user}/${docker_workdir}
Hosting without Docker container (Alternative Method)
Yocto-related base software
If you want to build Clea OS on your host system without the docker container, you can follow the official Yocto documentation for compatible distributions and prerequisites.
Run the following commands to install the dependencies:
$ sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev xterm python3-subunit mesa-common-dev zstd liblz4-tool curl cmake flex bison pkg-config gettext libncurses-dev
Installing the repo tool
Clea OS uses the Google repo tool to manage multiple Git repositories.
If your distribution provides repo via its package manager, you can install it from there, otherwise you can install it manually withe following commands:
$ mkdir ~/bin # only once
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo # only once
$ chmod a+x ~/bin/repo # only once
$ echo "export PATH=${PATH}:~/bin" >> ~/.bashrc # only once
$ source ~/.bashrc
More info can be found in the Goolge Repo Gerrit.
Development tools
Whether you use the SECO Docker container or build directly on your host system, the following tools are useful for development and debugging:
$ sudo apt install git minicom gdb-multiarch crossbuild-essential-armhf meld gedit nano cscope quilt qtcreator
Local Git setup:
Configure your Git identity for proper commit attribution:
$ git config --global user.name "Forename Name" # use your name instead
$ git config --global user.email "my.name@example.com" # use your email instead