mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-01 13:58:04 +00:00
Allow opt-out of split kernel modules
For some use cases, a monolithic kernel-modules package containing all modules built from the kernel sources may be preferred. For one, download time is shorter and installation time is faster. Set KERNEL_SPLIT_MODULES="0" for this in. The default is one subpackage per module. Also, adapt kernel.bbclass to KERNEL_SPLIT_MODULES != "1" case Extra RDEPENDS and other inter-package references are needed in this case. (From OE-Core rev: 4b13409d82e9d576e32b978f7a42a143127ab894) Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2190abe8bb
commit
e6fae346ea
|
|
@ -28,6 +28,7 @@ do_install:append() {
|
|||
install -d ${D}${sysconfdir}/modules-load.d/ ${D}${sysconfdir}/modprobe.d/
|
||||
}
|
||||
|
||||
KERNEL_SPLIT_MODULES ?= "1"
|
||||
PACKAGESPLITFUNCS:prepend = "split_kernel_module_packages "
|
||||
|
||||
KERNEL_MODULES_META_PACKAGE ?= "${@ d.getVar("KERNEL_PACKAGE_NAME") or "kernel" }-modules"
|
||||
|
|
@ -156,18 +157,26 @@ python split_kernel_module_packages () {
|
|||
kernel_package_name = d.getVar("KERNEL_PACKAGE_NAME") or "kernel"
|
||||
kernel_version = d.getVar("KERNEL_VERSION")
|
||||
|
||||
metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
|
||||
splitmods = d.getVar('KERNEL_SPLIT_MODULES')
|
||||
postinst = d.getVar('pkg_postinst:modules')
|
||||
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('pkg_postinst:%s' % metapkg, postinst)
|
||||
d.prependVar('pkg_postrm:%s' % metapkg, postrm);
|
||||
return
|
||||
|
||||
module_regex = r'^(.*)\.k?o(?:\.(gz|xz|zst))?$'
|
||||
|
||||
module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX')
|
||||
module_pattern_suffix = d.getVar('KERNEL_MODULE_PACKAGE_SUFFIX')
|
||||
module_pattern = module_pattern_prefix + kernel_package_name + '-module-%s' + module_pattern_suffix
|
||||
|
||||
postinst = d.getVar('pkg_postinst:modules')
|
||||
postrm = d.getVar('pkg_postrm:modules')
|
||||
|
||||
modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%s-%s' % (kernel_package_name, kernel_version))
|
||||
if modules:
|
||||
metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE')
|
||||
d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules))
|
||||
|
||||
# If modules-load.d and modprobe.d are empty at this point, remove them to
|
||||
|
|
|
|||
|
|
@ -98,6 +98,13 @@ python __anonymous () {
|
|||
d.appendVar('PACKAGES', ' %s-image-%s' % (kname, typelower))
|
||||
d.setVar('FILES:' + kname + '-image-' + typelower, '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME}' + ' /' + imagedest + '/' + type)
|
||||
d.appendVar('RDEPENDS:%s-image' % kname, ' %s-image-%s' % (kname, typelower))
|
||||
splitmods = d.getVar("KERNEL_SPLIT_MODULES")
|
||||
if splitmods != '1':
|
||||
d.appendVar('RDEPENDS:%s-image' % kname, ' %s-modules' % kname)
|
||||
d.appendVar('RDEPENDS:%s-image-%s' % (kname, typelower), ' %s-modules-${KERNEL_VERSION_PKG_NAME}' % kname)
|
||||
d.setVar('PKG:%s-modules' % kname, '%s-modules-${KERNEL_VERSION_PKG_NAME}' % kname)
|
||||
d.appendVar('RPROVIDES:%s-modules' % kname, '%s-modules-${KERNEL_VERSION_PKG_NAME}' % kname)
|
||||
|
||||
d.setVar('PKG:%s-image-%s' % (kname,typelower), '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
|
||||
d.setVar('ALLOW_EMPTY:%s-image-%s' % (kname, typelower), '1')
|
||||
d.setVar('pkg_postinst:%s-image-%s' % (kname,typelower), """set +e
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user