There are several valid extensions that kernel modules can have, and the list I had here was not complete... this meant that mkinitfs would fail to include modules with extensions like ".ko.gz" when searching directories. This makes the check for a "valid" module file name a lot simpler, allowing any file with ".ko" in the file name. While it's possible for a non-module file to have ".ko" somewhere in the file name, it seems unlikely if it's in the kernel modules directory... and this is an OK compromise for now.
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.