Jo Zzsi [Sun, 20 Oct 2024 00:18:48 +0000 (20:18 -0400)]
ci: install plymouth theme into alpine container
This PR resolves the following error
dracut[I]: *** Including module: plymouth ***
grep: /usr/share/plymouth/themes/text/text.plymouth: No such file or directory
grep: /usr/share/plymouth/themes/text/text.plymouth: No such file or directory
grep: /usr/share/plymouth/themes/text/text.plymouth: No such file or directory
grep: /usr/share/plymouth/themes/text/text.plymouth: No such file or directory
grep: /usr/share/plymouth/themes/text/text.plymouth: No such file or directory
The default plymouth plugin () doesn't exist
Ian Wienand [Fri, 18 Oct 2024 00:35:16 +0000 (11:35 +1100)]
docs: import modules guide from wiki
This is a import of the modules guide that is in the wiki to the generated
documentation site. Other than a couple of edits for layout this doesn't have
any content changes.
Ian Wienand [Fri, 18 Oct 2024 00:25:56 +0000 (11:25 +1100)]
docs: import developer info from wiki
This imports most of the unique developer information that is in the wiki into
the generated documentation site. Mostly this is around compatability and
reviews. I've not really reviewed the content, but just tried to find it a
logical home.
Ian Wienand [Thu, 17 Oct 2024 23:02:42 +0000 (10:02 +1100)]
docs: formatting for hacking package
This is a formatting update for the hacking package. The headers are nested
correctly, we've used some defintion lists where appropriate and fixed up a few
translation errors from the md->asciidoc conversion.
Ian Wienand [Thu, 17 Oct 2024 22:06:25 +0000 (09:06 +1100)]
docs: fix links to doc site
While the main page redirects, it isn't really possible to do a .htaccess
rewrite rule to have the whole site at the root of the github pages. Make sure
the README.md links are correct.
Ian Wienand [Thu, 17 Oct 2024 10:41:33 +0000 (21:41 +1100)]
docs: move docs to published doc site
There are a bunch of .md documentation files under docs/
I have used kramdoc to convert them to asciidoc and put them into the
documentation site as developer information under developer/. I have not made
content changes other than to fix up references.
The only one that didn't seem worth moving was README.kernel which is removed.
To remove duplication, he top level CONTRIBUTING.md is moved into this
hierarchy as well.
In it's place I have reorganised the README.md to clearly point you at the
documentation. I feel this is about equal -- you were probably in a
web-browser on github.com to view the formatted text anyway, so it's only a
matter of clicking to to dracut-ng.github.io instead of the source viewer.
I've added some things I think are important into the README.md, like an
explicit section on reporting security issues.
Finally I reorganised the navigation of the manual pages, so they are under a
combined section and expand out into user, developer and systemd groups.
Ian Wienand [Thu, 17 Oct 2024 00:09:48 +0000 (11:09 +1100)]
docs: small cleanup of main landing page
This is a few small cleanups. The message about the license first up makes it
seem like dracut itself is under creative commons license, which isn't true.
I've moved this down to the bottom, and added a note that dracut is gpl2 but
some parts of the docs are CC.
I've added a shorter introduction and de-dented things. I've also linked in
the development site along with the other man pages.
Ian Wienand [Tue, 2 Jul 2024 23:16:38 +0000 (09:16 +1000)]
feat: create a documentation site
This is a proposal to create a documentation site with Antora
(https://antora.org/) which works with the existing asciidoc files.
As motivation; there is a somewhat difficult to navigate (due to length and no
indexing) single .html file made already, and a wiki page that is kept
separately and links back to several docs, which can be viewed via github's
rendering. I'm of the feeling that incorporating docs into the main workflow
leads to a better outcome, especially taking advantage of pipelines to publish
on commit ensuring things are kept up-to-date.
There isn't much too this other than the framework stuff and some minor syntax
fixes to some of the files. "make doc_site" outputs the site in build/.
man/dracut.asc becomes the index page; everything else remains in place where
it was. After discussion we decided to remove the dracut.html file and
generation to avoid confusion over what is current.
I've added in custom css and lightly styled the output site to keep the vibe of
the older html page.
In terms of developer workflow, I know little about nodejs and have not found
it onerous to figure out; "nodejs" installed by your distro and "npx antora"
"just works"; it's very self-contained.
I've included the sample github workflow to publish it to github pages on
commit taken from the Antora docs -- it may need tweaking by project admins.
The output is basic but functional. The nice thing about a framework like this
is the almost limitless options for improvement :)
Jo Zzsi [Fri, 20 Sep 2024 03:10:48 +0000 (23:10 -0400)]
fix(network): call both check_module and module_check
Add back testing the module with check_module as well as module_check.
Without this PR, on some Linux distributions (e.g. Void) adding `network` meta module
no longer works as it tries and fails to install the preferred netowrking backend
(network-manager).
Jo Zzsi [Fri, 13 Sep 2024 16:45:23 +0000 (12:45 -0400)]
feat(rescue): move command line arguments to 50-rescue.conf
The benefit of this change is that even if kernel-install
is not used (e.g. direct user invocation), the correct
kernel command line options will be set for the generated
rescue image.
Jo Zzsi [Wed, 21 Aug 2024 23:20:43 +0000 (19:20 -0400)]
fix(rescue): make rescue always no-hostonly
Currently the rescue image is only set to no-hostonly if it is
generated via dracut-rescue.install. Make the rescue image
generation more predictable and consistent by setting no-hostonly
right in the rescue config.
Jo Zzsi [Wed, 18 Sep 2024 02:20:07 +0000 (22:20 -0400)]
perf(systemd-initrd): do not depend on base module
Make sure /etc/initrd exist.
Test SYSTEMD-INITRD confirms no regression as this tests
now no longer includes the base module and it still passes
the boot tests with systemd (hence the perf tag).
Jo Zzsi [Fri, 13 Sep 2024 12:22:42 +0000 (08:22 -0400)]
feat: config example for cloud provider uki vm
This is an example configuration for a 'unified kernel image'.
The key benefit of a unified kernel is that its secure boot
signature covers the initrd and cmdline contents, allowing
a trustworthy measured boot process with attestation, which
is not practical with locally generated initrds/cmdlines.
The initrd in this example only needs a very small set of
block driver modules present, in order to be usable across
KVM, Hyper-V and Xen hypervisors which will cover essentially
all common public and private clouds.
Lichen Liu [Wed, 7 Aug 2024 02:13:37 +0000 (10:13 +0800)]
feat(dracut.sh): add --add-confdir option
When generating kdump's initrd, we want to keep [omit_]dracutmodules
empty and let kdump to handle the modules. And we don't want to
affect the first kernel's initrd, so we cannot place our conf file
to /etc/dracut.conf.d or /usr/lib/dracut/dracut.conf.d.
This patch adds a new option to allow user to add an extra configuration
directory to use *.conf files from. If the dir not exists, will look for
confdir's subdir.
After that, kdump can use "--add-confdir kdump" if
/usr/lib/dracut/dracut.conf.d/kdump exists, to apply its own dracut conf.
See also:
https://github.com/rhkdump/kdump-utils/issues/11
https://github.com/rhkdump/kdump-utils/pull/31
Suggested-by: Dave Young <dyoung@redhat.com> Signed-off-by: Lichen Liu <lichliu@redhat.com>
Kernel integrity check in FIPS module is incompatible with UKIs as neither
/boot/vmlinuz-`uname-r` nor /boot/.vmlinuz-`uname-r`.hmac are present. UKI
is placed to $ESP\EFI\Linux\<install-tag>-<uname-r>.efi and if a .hmac file
is present next to it, it is possible to do similar check.
Note, UKIs have a 'one size fits all' command line and 'boot=' is not expected
to be set. Luckily, if the UKI is systemd-stub based then we can expect
'LoaderDevicePartUUID' variable containing PARTUUID of the ESP to be set. Mount
it to /boot using the existing logic.
Martin Wilck [Mon, 9 Sep 2024 07:43:01 +0000 (09:43 +0200)]
fix(nvmf): install (only) required nvmf modules
nvme_rdma was not installed, even if it was required, whereas
nvme_tcp was installed in non-TCP setups. nvme_fabrics will be
pulled in automatically by any transport module and doesn't
need to be installed explicitly.