Build pipeline
The Makefile exposes the full pipeline as independent stages. make all runs
the non-interactive sequence in order.
1. Check
Runs static checks, configuration validation, and unit tests.
2. Prepare binfmt
Ensures QEMU binfmt support is enabled inside the assembler environment. Host
support can be tested separately with make check-host CFG=....
3. Bootstrap the root filesystem
mmdebstrap creates tmp/rootfs for the selected architecture and suite. The
required kernel, Raspberry Pi firmware, systemd, SSH, locales, and QEMU static
binary are included.
4. Configure in chroot
The configured rootfs receives:
- locale, timezone, and hostname;
- user account and optional authorized keys;
- requested packages;
- SSH enablement;
- optional first-boot root expansion;
overlays/rootfs/content;- generated Wi-Fi configuration;
- scripts from
hooks/in-chroot.d/.
For inspection before image assembly:
5. Assemble the image
Flashberry creates an MBR-partitioned image with a 256 MiB FAT32 boot partition
and an ext4 root partition, installs firmware/kernel/initramfs files, and writes
PARTUUID-based boot and fstab configuration.
6. Compress and checksum
Each out/*.img is compressed with Zstandard and receives a matching SHA-256
checksum file.