@@ -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
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> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> --- v5: slipt out systemd config and removing of unused directories kernel-module-split: install config modules directories only when they are needed init-manager-systemd: add modulesloaddir and modprobedir v4: also remove the sysconfdir when systemd is not used as it causes QA Issue: linux-yocto: Files/directories were installed but not shipped in any package v3: fix v2 build issue and only add configuration files to FILES and CONFFILES when they exist and are used. v2: use the same location as before on the class and define the new location just for systemd. meta/classes-recipe/kernel-module-split.bbclass | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)