Commit Graph

7 Commits

Author SHA1 Message Date
Martin Jansa 407103302f kernel-module-split.bbclass: Allow autoloading multiple modules or modules where basename != module name
* new KERNEL_MODULE_AUTOLOAD syntax doesn't support modules where basename and
  module name don't match (usually - and _), e.g.:

  module_autoload_bq27x00_battery = "bq27x00-battery"

* sometimes it's useful to load modules in particular order and
  module_autoload allowed to just list multiple modules, e.g.:

  module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-s3c24xx snd_soc_s3c24xx_i2s snd-soc-dfbmcs320 snd-soc-wm8753 snd-soc-neo1973-wm8753"
  or
  module_autoload_g_ether = "s3c2410_udc g_ether"

  restore this possibility which is useful for incorrect dependencies
  between modules

(From OE-Core rev: e9cd8ba3dda624615b68c601eac04427d9483f14)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-23 21:59:15 +01:00
Richard Purdie dae258afc8 kernel-module-split: Fix KERNEL_MODULE_AUTOLOAD handling
Addresses the problem:

The stack trace of python calls that resulted in this exception/failure was:
File: 'split_kernel_module_packages', lineno: 164, function: <module>
     0160:        if len(os.listdir(dir)) == 0:
     0161:            os.rmdir(dir)
     0162:
     0163:
 *** 0164:split_kernel_module_packages(d)
     0165:
File: 'split_kernel_module_packages', lineno: 150, function: split_kernel_module_packages
     0146:     0147:    postinst = d.getVar('pkg_postinst_modules', True)
     0148:    postrm = d.getVar('pkg_postrm_modules', True)
     0149:
 *** 0150:    modules = do_split_packages(d, root='/lib/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", True)))
     0151:    if modules:
     0152:        metapkg = d.getVar('KERNEL_MODULES_META_PACKAGE', True)
     0153:        d.appendVar('RDEPENDS_' + metapkg, ' '+' '.join(modules))
     0154:
File: 'package.bbclass', lineno: 148, function: do_split_packages
     0144:                d.setVar('pkg_postrm_' + pkg, postrm)
     0145:        else:
     0146:            d.setVar('FILES_' + pkg, oldfiles + " " + newfile)
     0147:        if callable(hook):
 *** 0148:            hook(f, pkg, file_regex, output_pattern, m.group(1))
     0149:
     0150:    d.setVar('PACKAGES', ' '.join(packages))
     0151:    return split_packages
     0152:
File: 'split_kernel_module_packages', lineno: 109, function: frob_metadata
File "split_kernel_module_packages", line 109, in frob_metadata

Exception: AttributeError: 'NoneType' object has no attribute 'split'

ERROR: Function failed: split_kernel_module_packages

[YOCTO #6461]

[a revised version of a patch from Nitin Kamble]

(From OE-Core rev: f30d12b4fbfe7d6b581598efa9ceca69dcfb4294)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-18 10:44:10 +01:00
Richard Purdie c56c9a2f41 kernel-module-split: Add support for KERNEL_MODULE_AUTOLOAD and KERNEL_MODULE_PROBECONF
The current module_autoload_* and module_conf_* variables are error
both ugly and error prone. They aren't registered in the task checksums
so changes to them aren't reflected in the build. This turns out to
be near impossible to fix with the current variable format in any
sensible way :(.

This patch replace module_autoload with the list of variables in
KERNEL_MODULE_AUTOLOAD which is a much simpler and usable API. An
error is printed if an old style variable is encountered. It should
be simple to convert to this.

module_conf_* are harder to deal with since there is data associated
with it, it isn't simply a flag. We need a list of variables that are set
in order to be able to correctly handle the task checksum so we add
KERNEL_MODULE_PROBECONF for this purpose and error if the user hasn't
added a module to it when they should have.

[YOCTO #5786]

(From OE-Core rev: 6f8b5be646be0f3e15e215907547f11d2a23d81b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-16 15:31:40 +01:00
Phil Blundell 8b0be3ffb8 kernel-module-split: Remove extraneous call to depmod from module postinst
During rootfs construction, image.bbclass will call depmod after all the
modules are installed.  There's no need to run it from the postinst when
operating in offline root mode.

(From OE-Core rev: e8db81e4655ab7535db04aa3c8d7f9868ced6039)

Signed-off-by: Phil Blundell <pb@pbcl.net>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-10 15:16:51 +00:00
Richard Purdie 534325fd1f image/kernel-module-split/eglibc-ld.inc: Remove has_key() usage
The has_key() attribute has been removed in python 3 since there is better
syntax available. Use the improved syntax.

(From OE-Core rev: 3dff13793e875ff58cc38c4a960caca9b6969843)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09 14:06:51 +01:00
Martin Jansa 750d475a91 kernel-module-split: append space to RDEPENDS
* it was generating invalid RDEPENDS when KERNEL_MODULES_META_PACKAGE had
  RDEPENDS set already without trailing space

(From OE-Core rev: 5ff26f61b6860e56c255b2b6a2b0215be75b1db9)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-07 11:14:40 +00:00
Martin Jansa 2b8f2e770e kernel: extract functions for kernel modules to separate bbclass
* this way we can reuse the same functionality also for external modules
  including module_autoload_foo and module_conf_foo functionality
* MODULE_PACKAGES variable was removed (splited modules are now returned
  by do_split_packages
* KERNEL_MODULES_META_PACKAGE is used to append all splitted packages
  to RDEPENDS. In kernel.bbclass it's old "kernel-modules" in
  module.bbclass it defaults to ${PN} for upgrade path from
  single PN with all modules to PN depending on all new kernel-module-*

(From OE-Core rev: 51928b6b5ca0a46a9dcd754483a19af58b95fa18)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-05 13:14:50 +00:00