On Mon, Aug 23, 2021 at 9:18 AM Böszörményi Zoltán <zbos...@pr.hu> wrote: > > 2021. 08. 23. 14:55 keltezéssel, Bruce Ashfield írta: > > On Mon, Aug 23, 2021 at 8:23 AM Zoltan Boszormenyi via > > lists.openembedded.org <zboszor=pr...@lists.openembedded.org> wrote: > >> > >> From: Zoltán Böszörményi <zbos...@gmail.com> > >> > >> 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. > >> > > > > There's still an outstanding issue though. Unless you generate the > > provides/rdepends along with the monolithic package, any existing > > rdepends on kernel modules break. > > The next patch in the thread does it.
That's what my follow up said ;) See my second reply though, this gap in functionality created by this commit, should be documented in the commit that it will be restored in future ones. Cheers, Bruce > > > > > While that likely isn't something you hit in your use case, it would > > be something that would have to be covered to make this part of core. > > > > About 7 years ago, I was most of the way through a similar change, > > that created on large package with all the rprovides generated (I'm > > not sure I can track it down now, but I could have a look), since > > doing an on target update with thousands of kernel module package is > > very painful. > > Well, yes. In our defconfig, about 1500 kernel-module-* subpackages > were created and had to be upgraded at once. It was *very* painful > with over 50 minutes to download and upgrade the kernel. > > > > > Cheers, > > > > Bruce > > > >> Set KERNEL_SPLIT_MODULES="0" for this. > >> > >> The default is one subpackage per module. > >> > >> Signed-off-by: Zoltán Böszörményi <zbos...@gmail.com> > >> --- > >> meta/classes/kernel-module-split.bbclass | 17 +++++++++++++---- > >> 1 file changed, 13 insertions(+), 4 deletions(-) > >> > >> diff --git a/meta/classes/kernel-module-split.bbclass > >> b/meta/classes/kernel-module-split.bbclass > >> index 6c1de4c992..a29c294810 100644 > >> --- a/meta/classes/kernel-module-split.bbclass > >> +++ b/meta/classes/kernel-module-split.bbclass > >> @@ -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 > >> -- > >> 2.31.1 > >> > >> > >> > >> > > > > > > > > > > > > > -- - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end - "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#155158): https://lists.openembedded.org/g/openembedded-core/message/155158 Mute This Topic: https://lists.openembedded.org/mt/85083968/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-