Basic Usage
This section describes the basic usage of the configurator such as creating the environment for pre-defined Seco configurations and/or customize build environments. The section Advanced usage describe how to add configurations settings to the already existing ones and a deeper description on how the configurator works.
Configure Seco board with default settings
Find and select the configuration
To create a build environment for a Seco board with the default configuration requires very few steps. To list all Seco boards default configurations run:
yoctouser@acbeeb0d56d8:~/workdir$ . ./seco-setup.sh -l
Configuration Description
-------------------------------------- ------------------------------------------------------------------------------
qemuarm64_clea-os QEMU virt ARMv8 for Clea OS Wayland and default settings
qemuarm_clea-os QEMU virt ARMv7 for Clea OS Wayland and default settings
qemux86_64_clea-os QEMU x86-64 (q35) for Clea OS and default settings
qemux86_clea-os QEMU x86 (q35) for Clea OS and default settings
raspberrypi4_64_clea-os Raspberry Pi 4 for Clea OS FB and default settings
raspberrypi5_clea-os Raspberry Pi 5 for Clea OS FB and default settings
seco_intel_clea-os SECO HW based on INTEL chipsets for Clea OS FB and default settings
seco_sbc_c31_clea-os SBC RK3399 C31 board for Clea OS Wayland and default settings
seco_sbc_d23_clea-os SBC PX30 D23 board for Clea OS Wayland and default settings
seco_sbc_e09_clea-os SBC RK3568 E09 for Clea OS Wayland and default settings
NOTE: this guide has been written during the development of CleaOS 2.0. Many other configurations will be added.
This command lists all the defconfigs in layers/base/configs. Whenever a new Seco board will be integrated in CleaOS it needs its own configuration there. When a custom layer is included, if it contains specific customized boards, the configurations will be shown. For example, assuming a custom layer called meta-seco-xyz with a custom board:
yoctouser@acbeeb0d56d8:~/workdir$ . ./seco-setup.sh -l
***
INFO: Found custom layer "seco-xyz"!!! Use it.
***
Configuration Description
-------------------------------------- ------------------------------------------------------------------------------
qemuarm64_clea-os QEMU virt ARMv8 for Clea OS Wayland and default settings
qemuarm_clea-os QEMU virt ARMv7 for Clea OS Wayland and default settings
qemux86_64_clea-os QEMU x86-64 (q35) for Clea OS and default settings
qemux86_clea-os QEMU x86 (q35) for Clea OS and default settings
raspberrypi4_64_clea-os Raspberry Pi 4 for Clea OS FB and default settings
raspberrypi5_clea-os Raspberry Pi 5 for Clea OS FB and default settings
seco_intel_clea-os SECO HW based on INTEL chipsets for Clea OS FB and default settings
seco_sbc_c31_clea-os SBC RK3399 C31 board for Clea OS Wayland and default settings
seco_sbc_d23_clea-os SBC PX30 D23 board for Clea OS Wayland and default settings
seco_sbc_e09_clea-os SBC RK3568 E09 for Clea OS Wayland and default settings
seco_custom_xyz_clea-os Custom board for customer XYZ
Consider that the path of the custom defconfigs changes between CleaOS 1.0 and CleaOS 2.0 releases:
- for CleaOS 1.0 the configurator looks into the folder
layers/meta-seco-xyz/conf/configs - for CleaOS 2.0 the configurator looks into the folder
layers/meta-seco/meta-seco-xyz/conf/configs
NOTE: From now on it's assumed CleaOS 2.0 structure.
To select a configuration from the table, run:
yoctouser@5088c7f89b1e:~/workdir$ . ./seco-setup.sh -d <defconfig>
For example Seco's E09 board seco_sbc_e09_clea-os run:
yoctouser@5088c7f89b1e:~/workdir$ . ./seco-setup.sh -d seco_sbc_e09_clea-os
***
USE defconfig configuration file: seco_sbc_e09_clea-os
SBC RK3568 E09 for Clea OS Wayland and default settings
***
This command creates in layers/base several files:
mconf: is the graphicalmenuconfig's binary. It's built the first time the command. ./seco-setup.sh -d <defconfig>is issued.conf: is the CLImenuconfig's binary. It's built the first time the command. ./seco-setup.sh -d <defconfig>is issued..config: is the result of the selected configuration processed byconfexecutable following theYconfigtree.seco-setup.log: is a log file containing debug messages printed by the configurator during the build environment creation process.
The content of .config is used by the configurator in the next step, when the build environment is actually created.
Create the build environment
With the .config generated it's possible to create the build environment running:
yoctouser@5088c7f89b1e:~/workdir$ . ./seco-setup.sh -c
For example:
yoctouser@5088c7f89b1e:~/workdir$ . ./seco-setup.sh -c
WARNING: no CONFIG_CLOUD_ASTARTE-URL found in the configuration.
WARNING: no CONFIG_CLOUD_ASTARTE-REALM found in the configuration.
WARNING: no CONFIG_CLOUD_ASTARTE-PAIRING-TOKEN found in the configuration.
WARNING: no RAUC found in the configuration.
Welcome to SECO BSP
The Yocto Project has extensive documentation about OE including a
reference manual which can be found at:
http://yoctoproject.org/documentation
For more information about OpenEmbedded see their website:
http://www.openembedded.org/
Your build environment has been configured with:
MACHINE=seco-rk3568-e09
SDKMACHINE=i686
DISTRO=clea-os-fb
EULA=
yoctouser@5088c7f89b1e:~/workdir/build_e09$
This command let the configurator process the .config in order to create the build environment. The results of this command are:
- creating environment variables configuring
bitbake. - creating the
builddirectory populated with aconffolder and a symbolic link to the build configurator.
Environment variables
The environment variables are created exploiting poky's built-in oe-init-build-env script. For example, for Seco E09 the environment differences are:
yoctouser@5088c7f89b1e:~/workdir$ diff env-pre-configurator env-post-configurator
0a1,3
> declare -x BBPATH="/home/yoctouser/workdir/build_e09"
> declare -x BB_ENV_PASSTHROUGH_ADDITIONS="ALL_PROXY BBPATH_EXTRA BB_LOGCONFIG BB_NO_NETWORK BB_NUMBER_THREADS BB_SETSCENE_ENFORCE BB_SRCREV_POLICY DISTRO FTPS_PROXY FTP_PROXY GIT_PROXY_COMMAND HTTPS_PROXY HTTP_PROXY MACHINE NO_PROXY PARALLEL_MAKE SCREENDIR SDKMACHINE SOCKS5_PASSWD SOCKS5_USER SSH_AGENT_PID SSH_AUTH_SOCK STAMPS_DIR TCLIBC TCMODE all_proxy ftp_proxy ftps_proxy http_proxy https_proxy no_proxy "
> declare -x BUILDDIR="/home/yoctouser/workdir/build_e09"
10,11c13,15
< declare -x OLDPWD="/home/yoctouser/workdir"
< declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
---
> declare -x OE_ADDED_PATHS="/home/yoctouser/workdir/layers/poky/scripts:/home/yoctouser/workdir/layers/poky/bitbake/bin:"
> declare -x OLDPWD="/home/yoctouser/workdir/build_e09"
> declare -x PATH="/home/yoctouser/workdir/layers/poky/scripts:/home/yoctouser/workdir/layers/poky/bitbake/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/home/yoctouser/workdir"
12a17
> declare -x PYTHONPATH="/home/yoctouser/workdir/layers/poky/bitbake/lib:"
where env-pre-configurator and env-post-configurator are files created redirecting the output of export before and after running the configurator.
Build directory - Physical Seco board
When running the configurator with the -c flag, after the configurator succeeded, it automatically changes directory to the build folder. For example, building for the Seco E09 based on Rockchip processor, the resulting build directory has the following content:
$ tree -a build_e09/
build_e09/
├── conf