kernel-module-split: make autoload and probeconf distribution specific

The modules-load.d [1] - Configure kernel modules to load at boot
should install their configuration files in /usr/lib/modules-load.d.

The modprobe.d [2] - Configuration directory for modprobe
should install their configuration files in /lib/modprobe.d

[1] https://man7.org/linux/man-pages/man5/modules-load.d.5.html
[2] https://man7.org/linux/man-pages/man5/modprobe.d.5.html

[YOCTO #12212] https://bugzilla.yoctoproject.org/show_bug.cgi?id=12212

CC: Ola x Nilsson <Ola.x.Nilsson@axis.com>
CC: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
(From OE-Core rev: 347830e67c5ad72b4da165d644e3add69c20acb8)

Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Jose Quaresma
2023-06-27 10:16:43 +00:00
committed by Richard Purdie
parent 696982900b
commit 303421dce0

View File

@@ -30,6 +30,9 @@ fi
PACKAGE_WRITE_DEPS += "kmod-native depmodwrapper-cross"
modulesloaddir ??= "${sysconfdir}/modules-load.d"
modprobedir ??= "${sysconfdir}/modprobe.d"
KERNEL_SPLIT_MODULES ?= "1"
PACKAGESPLITFUNCS =+ "split_kernel_module_packages"
@@ -88,7 +91,7 @@ python split_kernel_module_packages () {
dvar = d.getVar('PKGD')
# If autoloading is requested, output /etc/modules-load.d/<name>.conf and append
# If autoloading is requested, output ${modulesloaddir}/<name>.conf and append
# appropriate modprobe commands to the postinst
autoloadlist = (d.getVar("KERNEL_MODULE_AUTOLOAD") or "").split()
autoload = d.getVar('module_autoload_%s' % basename)
@@ -97,7 +100,7 @@ python split_kernel_module_packages () {
if autoload and basename not in autoloadlist:
bb.warn("module_autoload_%s is defined but '%s' isn't included in KERNEL_MODULE_AUTOLOAD, please add it there" % (basename, basename))
if basename in autoloadlist:
conf = '/etc/modules-load.d/%s.conf' % basename
conf = '%s/%s.conf' % (d.getVar('modulesloaddir'), basename)
name = '%s%s' % (dvar, conf)
os.makedirs(os.path.dirname(name), exist_ok=True)
with open(name, 'w') as f:
@@ -119,7 +122,7 @@ python split_kernel_module_packages () {
modconflist = (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()
modconf = d.getVar('module_conf_%s' % basename)
if modconf and basename in modconflist:
conf = '/etc/modprobe.d/%s.conf' % basename
conf = '%s/%s.conf' % (d.getVar('modprobedir'), basename)
name = '%s%s' % (dvar, conf)
os.makedirs(os.path.dirname(name), exist_ok=True)
with open(name, 'w') as f:
@@ -165,8 +168,8 @@ python split_kernel_module_packages () {
postrm = d.getVar('pkg_postrm:modules')
if splitmods != '1':
etcdir = d.getVar('sysconfdir')
d.appendVar('FILES:' + metapkg, '%s/modules-load.d/ %s/modprobe.d/ %s/modules/' % (etcdir, etcdir, d.getVar("nonarch_base_libdir")))
d.appendVar('FILES:' + metapkg, '%s %s %s/modules' %
(d.getVar('modulesloaddir'), d.getVar('modprobedir'), d.getVar("nonarch_base_libdir")))
d.appendVar('pkg_postinst:%s' % metapkg, postinst)
d.prependVar('pkg_postrm:%s' % metapkg, postrm);
return