On 09/08/2024 18:11, Michał Górny wrote:
On Fri, 2024-08-09 at 17:49 +0200, Andrew Ammerlaan wrote:
(de)compressing modules changes the path of the module files so we need to
run depmod to ensure that tools such as modprobe/modinfo work.
Note that depmod is often, but *not* always, run by sys-kernel/installkernel.
Systemd installs a hook to do this, but there is no equivalent on openrc
systems. So instead just ensure that the tree of modules we install is
consistent here in the eclass.
Signed-off-by: Andrew Ammerlaan <andrewammerl...@gentoo.org>
---
eclass/kernel-install.eclass | 3 +++
1 file changed, 3 insertions(+)
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index 496e258815d2..930640188c26 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -796,6 +796,9 @@ kernel-install_compress_modules() {
find "${ED}/lib/modules/${KV_FULL}" -name '*.ko' -print0 |
xargs -0 -P "$(makeopts_jobs)" -n 128 "${compress[@]}"
assert "Compressing kernel modules failed"
+
+ # Module paths have changed, run depmod
+ depmod --all --basedir "${ED}" ${KV_FULL} || die
fi
}
Are you actually supposed to run it on ED and not EROOT?
Either works, but doing it in ED ensures that the
gentoo-kernel-bin[modules-compress] install image is the same as the
gentoo-kernel[modules-compress] install image.
Won't that
cause file collisions (even if we circumvent them via CONFIG_PROTECT).
No, it does not install any files that we are not installing anyway, it
just updates them.