basementhud/pipeline/head This commit looks good
Details
For some reason, `dhclient` fires an *EXPIRE* event every time it renews the DHCP lease, even if the lease has not expired. `dhclient-script` then removes the IP address from the interface, which of course breaks the connection to the NBD server and blocks all reads from the root filesystem. To avoid this strange situation, we need to stop `dhclient-script` acting on the *EXPIRE* event. Luckily, it provides a "hook" mechanism that we can use; since the hook script is dot-sourced, we can just `exit` the process to avoid any further changes in that run. |
||
---|---|---|
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