Machine-specific data, such as SSH keys, should not be included in the immutable root filesystem image, as this would prevent multiple machines running from the same image. These few files can be stored locally, on the SD card on eMMC flash. The first time a machine boots up using this image, its local storage is initialized. This involves creating a new filesystem on the block device and generating SSH host keys. Once the storage is initialized, it is remounted read-only. All subsequent mounts are read-only as well. |
||
---|---|---|
ci | ||
overlay | ||
.gitignore | ||
Makefile | ||
README.md | ||
cmdline.txt | ||
config.txt | ||
mkinitramfs.sh | ||
mkrootfs.sh | ||
prepare.sh | ||
publish.sh | ||
squashfs-exclude.txt |
README.md
Basement Hud Network-Booted OS
Customized Fedora-based operating system distributed as an immutable root filesystem image.
Building
Must run on a Fedora host or privileged container.
Build the root filesystem image:
make rootfs
This will create an _build/rootfs
directory containing the root filesystem
hierarchy. The _build/rootfs/boot
directory contains the necessary files to
boot the system:
efi
: This directory contains the Raspberry Pi firmware filesinitramfs.img
: Early userspace imagevmlinuz
: Kernel imagebasementhud.squashfs
: Root filesystem image
The Raspberry Pi firmware, initramfs image, and kernel image files must be served by a TFTP, while the rootfs image is served by NBD.
Build the initramfs image:
make initramfs