Build Process
The MLL build process can be divided in several major phases. Refer to the common properties for more details on the folders that are referenced below.
Preparations
Everything from WORK_DIR
is removed. All previous MLL build artifacts are lost and the MLL build process can start from scratch. The previously downloaded sources are preserved in order to speed up the process.
Kernel
Linux kernel source code is downloaded. OverlayFS and EFI stub are configured. Kernel is built and the kernel binary, along with the kernel header files are placed in KERNEL_INSTALLED
.
GNU C Library
GNU C Library source code is downloaded. Build preparations are made in the GLIBC_OBJECTS
. GLIBC is built and the final artifacts are placed in GLIBC_INSTALLED
. The .so
files, along with all GLIBC headers and all kernel headers are placed in SYSROOT
.
Busybox
Busybox source code is downloaded. The build configuration is tweaked to reference SYSROOT
. The final build artifacts are placed in BUSYBOX_INSTALLED
.
Overlay bundles
All overlay bundles that have been enabled in .config
are built. The final overlay structure is generated in OVERLAY_ROOTFS
.
Initramfs
The installed Busybox artifacts and src/minimal_rootfs/
are merged in ROOTFS
. The initramfs file WORK_DIR/rootfs.cpio.xz
is generated from ROOTFS
. The final initramfs ISO image structure for the overlay bundles is generated in ISOIMAGE_OVERLAY
.
Boot loader
Syslinux and/or systemd-boot are downloaded.
ISO image
The boot loader for BIOS/UEFI is prepared and the boot configuration artifacts from src/minimal_boot/
are properly placed. The final ISO image layout structure is prepared in ISOIMAGE
. This directory contains the BIOS/UEFI boot loader, Linux kernel and initramfs, along with all MLL overlay bundles (i.e. additional software and/or configurations) that have been enabled. The ISO image file src/minimal_linux_live.iso
is generated. The MLL filesystem image (e.g. use in Docker) src/mll_image.tgz
is generated. Final cleanup is performed.