1. Introduction
Infrabase provides the developer with a base environment to deal with embedded software to be deployed on
different hardware and emulated boards.
Infrabase harnesses the power of BitBake’s highly modular, recipe-driven architecture while seamlessly integrating prebuilt packages into the BitBake ecosystem. This approach is grounded in years of hands-on experience with R&D projects and embedded Linux development, where the typical software stack includes:
A bootloader like U-Boot
The Linux kernel
The root filesystem
A set of user-space applications
1.1. What it produces
From a single build.sh bsp-linux you get a complete, bootable system for the selected
platform: the bootloader (optionally behind an ATF/OP-TEE boot chain), a kernel and its device
tree packed into a FIT image, a root filesystem built with buildroot, and the user-space
applications and kernel modules from linux/usr. deploy.sh then writes all of it to a
loopback SD-card image, to a real device, or publishes it for a network install, and — on the
emulated platforms — st.sh boots the result under QEMU.
The supported platforms range from QEMU’s virt machine in 32- and 64-bit to the Raspberry
Pi 4; they are listed in the user guide, and selecting one is a single
variable in build/conf/local.conf.
1.2. Scope
This repository is the generic base: a plain Linux system, and the machinery to fetch, patch, build, deploy and run it. It is meant to be extended — product trees derive from it and add their own layers (vendor BSPs, hypervisors, additional root filesystems) on top of the same scripts and classes, and the base is kept aligned with them.
Two consequences are worth knowing up front: components are fetched from upstream and patched
from tracked patchsets rather than vendored, so your changes to a component live as patches
(see the development flow); and bitbake here runs unprivileged, with
individual privileged operations escalating through sudo -n.