Go to file
Dustin a3c2afc3fa Install Playwright to control Firefox
[Playwright] is a cross-browser automation framework, intended for
automating browser-based GUI application tests.  It also works as a
general remote-control tool for automating basically anything having to
do with a browser.

Playwright requires a special Firefox binary that it manages itself.  To
avoid downloading and installing Playwright and Firefox, and thus
storing them in memory, we need them to be already available in the
rootfs image.  Since I want the control software to be updated easily,
without rebooting the machine, I decided to separate it into its own
project, [Voonex].  A short shell script to install/update and run it is
launched by the systemd user instance.

[Playwright]: https://playwright.dev/
[Voonex]: https://git.pyrocufflink.blue/dustin/voonex
2022-04-04 20:59:34 -05:00
ci Install Playwright to control Firefox 2022-04-04 20:59:34 -05:00
overlay Install Playwright to control Firefox 2022-04-04 20:59:34 -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 Install Playwright to control Firefox 2022-04-04 20:59:34 -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