Go to file
Dustin 4f49686ff1
basementhud/pipeline/head This commit looks good Details
Fix dhclient removing the IP address on renew
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.
2022-04-06 16:46:44 -05:00
ci Install Playwright to control Firefox 2022-04-04 20:59:34 -05:00
overlay Fix dhclient removing the IP address on renew 2022-04-06 16:46:44 -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 initramfs: Include systemd-timesyncd module 2022-04-06 15:05:32 -05:00
mkrootfs.sh Install wmctrl 2022-04-06 10:57:25 -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