Initially I thought of breaking off the Stat + error check call into its own function as to reduce repetition, but given that it's only useful in this situation where it only happens twice anyway, I'm not sure it actually would reduce complexity. Additionally, this means that .zst-compressed variants of files will be searched for in all contexts where this function is used. I'm not sure this is desirable. Tested and works with arrow-db820c. I didn't test it on actual hardware, but I verified that the firmware ended up in the initramfs via $ pmbootstrap initfs ls. I choose this device because it uses firmware from linux-firmware and also needs said firmware present in the initramfs. Closes https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/issues/39
mkinitfs
is a tool for generating an initramfs. It was originally designed
for postmarketOS, but a long term design goal is to be as distro-agnostic as
possible. It's capable of generating a split initramfs, in the style used by
postmarketOS, and supports running boot-deploy
to install/finalize boot files
on a device.
Building
Building this project requires a Go compiler/toolchain and make
:
$ make
To install locally:
$ make install
Installation prefix can be set in the generally accepted way with setting
PREFIX
:
$ make PREFIX=/some/location
# make PREFIX=/some/location install
Other paths can be modified from the command line as well, see the top section of
the Makefile
for more information.
Tests (functional and linting) can be executed by using the test
make target:
$ make test
Usage
The tool can be run with no options:
# mkinitfs
Configuration is done through a series of flat text files that list directories
and files, and by placing scripts in specific directories. See man 1 mkinitfs
for more information.