summaryrefslogtreecommitdiff
path: root/meta/classes/kernel-module-split.bbclass
AgeCommit message (Collapse)AuthorFiles
2017-03-21kernel: use ${nonarch_base_libdir} for kernel modules installation.Amarnath Valluri1
Replace hardcoded '/lib' in kernel modules installation path with ${nonarch_base_libdir}, which is meant exactly for this. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
2017-02-07kernel-module-split: Allow custom suffix for package namesAndreas Oberritter1
This makes it possible to restore the behaviour changed by commit 78cde87 "kernel-module-split: Append KERNEL_VERSION string to kernel module name". Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-31meta: remove remaining True option to getVar callsMing Liu1
This is a complementary fix to commit 7c552996: [ meta: remove True option to getVar calls ] it intended to remove all True option to getVar calls, but there are still some remaining. Search made with the following regex: getVar ?\((.*), True\) Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-19kernel-module-split: Add PACKAGE_WRITE_DEPS for postinstRichard Purdie1
The postinstall needs kmod-native and depmodwrapper-cross, mark these dependencies. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-19Revert "kernel: Modify kernel modules installation path."Jason Wessel1
This reverts commit 0ccb2efe9837e2915c093341a662dffc1df00866. The OVS fails to function and the kernel modules cannot be found by any of the kernel tools such as depmod because they are installed into the wrong directory in multilib 64bit/32bit bulids. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-19kernel-module-split: Append KERNEL_VERSION string to kernel module nameOla Redell1
The KERNEL_VERSION string is added to kernel module package names in order to make the kernel modules for different kernel versions distinct packages instead of different versions of the same package. With this change, when a new kernel is installed together with its kernel modules (e.g. by upgrade of the packages kernel and kernel-modules) using some package manager such as apt-get or rpm, the kernel modules for the older kernel will not be removed. This enables a fall back to the older kernel if the new one fails. Also, for backwards compatibility and to enable kernel version agnostic dependencies to kernel modules, create a virtual package with the old (shorter) kernel module package name using RPROVIDES. Signed-off-by: Ola Redell <ola.redell@retotech.se> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-16kernel: Modify kernel modules installation path.Amarnath Valluri1
Use ${base_libdir}/modules inplace of /lib/modules for kernel modules installation path. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-16meta: remove True option to getVar callsJoshua Lock1
getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-08kernel-module-split.bbclass: no need for running depmodAndré Draszik1
With the recent changes, executing depmod is not needed anymore. This simplifies and removes a lot of unnecessary code. Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-08kernel-module-split.bbclass: generate dependencies across recipesAndré Draszik1
The information retrieved via depmod is incomplete with regards to kernel modules that are dependencies, in particular where two kernel modules are built from different source trees / recipes, which leads to incomplete dependency information for packages created. So far, our packages created didn't contain dependencies on packages created by other recipes, as we solely use depmod for that, and depmod can only work well after *all* kernel modules have been copied into one place - it doesn't work well in a staged approach. Now that all .ko have correct dependency information at packaging time, we can use that information to properly track dependencies across recipies, and can combine the information from the .modinfo elf section with the information from depmod. Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-07-01kernel-module-split.bbclass: add a prefix for module package name patternRicardo Neri1
When splitting kernel modules into individual packages, such packages take their names from the module name. This is OK under most of the circumstances. However, it may lead to package naming collisions if there exists two modules with the same name. Situations like this can occur when building testing modules. For instance, there exists testing versions of the modules for non-volatile memory that are built with different linker options but bear the same module name. If one wants to package such modules, it is be good to be able to name packages differently. This can be done by prefixing the package name with a KERNEL_MODULE_PACKAGE_PREFIX that can be set by the recipes that inherit from module.bbclass. Cc: Megha Dey <megha.dey@intel.com> Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2015-03-24kernel-module-split.bbclass: Avoid bogus recommends for modules ending with -devAndreas Oberritter1
Example: lirc-dev.ko -> kernel-module-lirc-dev Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-03-24kernel-module-split.bbclass: fix autoloading from postinst scriptAndreas Oberritter1
When using KERNEL_MODULE_AUTOLOAD, autoload was empty, causing "modprobe None" to get appended to the postinst script. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-23kernel/image/depmodwrapper: Fixups for depmodRichard Purdie1
With the rpm package backend enabled, running: bitbake <image> bitbake virtual/kernel -c clean bitbake <image> -c rootfs -f results in an image with incorrect kernel module dependency information. The problem is that the System.map and kernel-abiversion files are needed for depmod and after the recent kernel changes, these are no longer in sstate. Its reasonable to require the kernel to unpack/build if you're about to build a module against it. It is not reasonable to require this just to build a rootfs. Therefore stash the needed files specifically for depmod. Also fix some STAGING_KERNEL_DIR references which were incorrect, found whilst sorting through his change. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-01-16kernel: move source and build output to work-sharedBruce Ashfield1
commit 3b3f7e785e279 [kernel: Rearrange for 1.8] began the process of moving the kernel source and build artefacts out of sstate control and into a shared location. This changed triggered some workflow issues, as well as bugs related to the kernel source containing build output, and hence being dirty and breaking kernel rebuilds. To solve these issues, and to make it clear that the kernel is not under sstate control, we move the source and build outputs to: work-shared/MACHINE/kernel-source work-shared/MACHINE/kernel-build-artifacts Where kernel-build-artifacts is the kernel build output and kernel-source is kept "pristine". The build-artifacts contain everything that is required to build external modules against the kernel source, and includes the defconfig, the kernel-abiversion, System.map files and output from "make scripts". External module builds should either pass O= on the command line, or set KBUILD_OUTPUT to point to the build-artifacts. module-base.bbclass takes care of setting KBUILD_OUTPUT, so most existing external module recipes are transparently adapted to the new source/build layout. recipes that depend on the kernel source must have a depedency on the do_shared_workdir task: do_configure[depends] += "virtual/kernel:do_shared_workdir" With this dependency added, the STAGING_KERNEL_DIR will be populated and available to the rest of the build. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-23kernel-module-split.bbclass: Allow autoloading multiple modules or modules ↵Martin Jansa1
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 Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-18kernel-module-split: Fix KERNEL_MODULE_AUTOLOAD handlingRichard Purdie1
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-06-16kernel-module-split: Add support for KERNEL_MODULE_AUTOLOAD and ↵Richard Purdie1
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] Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-01-10kernel-module-split: Remove extraneous call to depmod from module postinstPhil Blundell1
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. Signed-off-by: Phil Blundell <pb@pbcl.net> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-05-09image/kernel-module-split/eglibc-ld.inc: Remove has_key() usageRichard Purdie1
The has_key() attribute has been removed in python 3 since there is better syntax available. Use the improved syntax. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2013-03-07kernel-module-split: append space to RDEPENDSMartin Jansa1
* it was generating invalid RDEPENDS when KERNEL_MODULES_META_PACKAGE had RDEPENDS set already without trailing space Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
2013-03-04kernel: extract functions for kernel modules to separate bbclassMartin Jansa1
* 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-* Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>