On Fri, Sep 08, 2017 at 09:06:17PM +0100, Paul Barker wrote: > On Mon, Aug 21, 2017 at 10:21 AM, Martin Hundebøll <m...@prevas.dk> wrote: > > Hard depending on the kernel makes it impossible to install kernel > > modules without getting the kernel image installed too. This is > > inconvenient in e.g. initramdisks, where the kernel is loaded from > > outside the initramdisk. > > > > Making the kernel modules rrecommend kernel-image-<version> instead of > > rdepending on it, makes it possible to install kernel modules without > > the kernel image by setting "kernel-image" in BAD_RECOMMENDATIONS. > > > > Signed-off-by: Martin Hundebøll <m...@prevas.dk> > > --- > > meta/classes/kernel-module-split.bbclass | 7 ++++++- > > 1 file changed, 6 insertions(+), 1 deletion(-) > > > > diff --git a/meta/classes/kernel-module-split.bbclass > > b/meta/classes/kernel-module-split.bbclass > > index 1035525dac..78843c5474 100644 > > --- a/meta/classes/kernel-module-split.bbclass > > +++ b/meta/classes/kernel-module-split.bbclass > > @@ -120,6 +120,11 @@ python split_kernel_module_packages () { > > rdepends[dep] = [] > > d.setVar('RDEPENDS_' + pkg, bb.utils.join_deps(rdepends, > > commasep=False)) > > > > + # let kernel modules runtime recommend kernel image > > + rrecommends = > > bb.utils.explode_dep_versions2(d.getVar('RRECOMMENDS_' + pkg) or "") > > + rrecommends['kernel-image'] = [] > > + d.setVar('RRECOMMENDS_' + pkg, bb.utils.join_deps(rrecommends, > > commasep=False)) > > + > > # Avoid automatic -dev recommendations for modules ending with > > -dev. > > d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1) > > > > @@ -138,7 +143,7 @@ python split_kernel_module_packages () { > > 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='kernel-%s' % > > (d.getVar("KERNEL_VERSION"))) > > + 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='') > > if modules: > > metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE') > > d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules)) > > -- > > 2.14.1 > > > > This breaks the method described in the kernel dev FAQ to omit the > kernel image from the rootfs which is to set the following in a conf > file: > > RDEPENDS_kernel-base = "" > > See > http://www.yoctoproject.org/docs/2.3.1/kernel-dev/kernel-dev.html#idm45690538384880. > > By recommending kernel-image directly instead of recommending the > top-level kernel-<version> package which was actually removed from > extra_depends, we skip the inclusion of the kernel-base package. I'm > not familiar enough with the details of kernel module loading to know > if the 2 files in kernel-base (modules.builtin and modules.order) are > strictly needed but I think they should at least be included in via > recommendation. > > As we already have a documented way to omit the kernel image, can we > revert this? > > As an alternative I can send in a patch which changes the recommend to > the top-level kernel-<version> package instead of kernel-image.
FWIW, this was discussed at #yocto on IRC today. When I first saw the change several days ago, I was puzzled as well... The existing method has been in use by many of us for a very long time and seems to be well documented - I also vote for reverting the change. -- Denys -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core