Go to file
Dustin 2a0737ab78 Enable local persistent storage
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.
2022-04-05 14:54:30 -05:00
ci Install Playwright to control Firefox 2022-04-04 20:59:34 -05:00
overlay Enable local persistent storage 2022-04-05 14:54:30 -05:00
.gitignore Initial commit 2022-04-04 20:59:32 -05:00
Makefile Initial commit 2022-04-04 20:59:32 -05:00
README.md Initial commit 2022-04-04 20:59:32 -05:00
cmdline.txt cmdline: enable serial console 2022-04-04 20:59:34 -05:00
config.txt config: disable HDMI overscan 2022-04-04 20:59:34 -05:00
mkinitramfs.sh Initial commit 2022-04-04 20:59:32 -05:00
mkrootfs.sh Enable local persistent storage 2022-04-05 14:54:30 -05:00
prepare.sh Initial commit 2022-04-04 20:59:32 -05:00
publish.sh publish: Upload rootfs image atomically 2022-04-04 20:59:34 -05:00
squashfs-exclude.txt Initial commit 2022-04-04 20:59:32 -05:00

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 files
  • initramfs.img: Early userspace image
  • vmlinuz: Kernel image
  • basementhud.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