EB corbos Linux example images for the NXP RDB2 board
The folder_images/arm64/nxp/rdb2_ contains the EB corbos Linux (EBcL) example images for the NXP RDB2 development board, which is equipped with an NXP S32G SoC. The S32G has very specific storage layout requirements, and if you are interested into more details about required base configuration, take a look at Building an image from scratch.
# Kernel package to use
kernel: linux-image-unsigned-5.15.0-1034-s32-eb
# CPU architecture
arch: arm64
# Add the EB corbos Linux apt repo
use_ebcl_apt: true
# Add repo with NXP RDB2 packages
apt_repos:
- apt_repo: http://linux.elektrobit.com/eb-corbos-linux/1.2
distro: ebcl_nxp_public
components:
- nxp_public
key: file:///build/keys/elektrobit.pub
gpg: /etc/berrymill/keyrings.d/elektrobit.gpg
The packages for the NXP RDB2 board are provided as a separate distribution, called ebcl_nxp_public, as component nxp_public. For the RDB2 images, the kernel package linux-image-unsigned-5.15.0-1034-s32-eb is used. This package contains a Linux kernel image for the S32G2, and has slightly different kernel configuration than the Ubuntu Jammy default.
Please be aware that the firmware for different peripherals, like the LLCE and the PFE, is proprietary and we are not allow to distribute it publicly, so if you build an image using the public EB corbos Linux repository, you will not be able to make use of the CAN ports attached to the LLCE, or the network ports attached to the PFE. If you are a paying customer, and have signed the NXP redistribution agreement, you will get access to ebcl_nxp, which is identical to ebcl_nxp_public, except the fact that it also provides these proprietary firmware.
The image.yaml describes the required storage layout, the initrd.yaml is a very minimal initrd.img specification, just defining the root partition. The boot_root.yaml defines the environment used for building the fitimage. The bootargs* files, contained in images/common/nxp/rdb2, are the S32G2 specific configurations for the fitimage layout and kernel command line. The script images/common/nxp/rdb2/build_fitimage.sh is executed in the mentioned chroot environment, and automates the fitimage building. The boot.yaml wraps all the before mentioned, and is used together with the boot generator to automatically build the fitimage.
The build flow for all NXP RDB2 images is specified in images/tasks/RDB2_image.yml, included by the Taskfile.yml of the different image descriptions, and described in detail in Building an image from scratch.
EBcL 1.x RDB2 crinit image
The EBcL 1.x RDB2 crinit image is contained in the folder images/arm64/nxp/rdb2/ebcl_1.x_crinit. This image contains crinit, elos, and netifd to provides a Linux image for interactive exploration.
The crinit_config folder contains a small implementation to load kernel modules using the crinit init manager. The crinit task images/common/nxp/rdb2/crinit/config/etc/crinit/crinit.d/modprobe.crinit runs the script images/common/nxp/rdb2/crinit/config/usr/sbin/load_modules.sh which loads all modules state in images/common/nxp/rdb2/crinit/config/etc/kernel/runtime_modules.conf. This is a bit more involved, and requires more knowledge about the used hardware, as using udev would need, but it is also much more lightweight and faster than udev.
EBcL 1.x RDB2 systemd image
The EBcL 1.x RDB2 systemd image description is contained in images/arm64/nxp/rdb2/ebcl_1.x_systemd. It’s quite similar to the EBcL 1.x RDB2 crinit image, but makes use of systemd and udev.