[OE-core] [Patch v2 1/1] kernel.bbclass: enable a link for external module building

Kamble, Nitin A nitin.a.kamble at intel.com
Tue Nov 4 23:58:43 UTC 2014



> -----Original Message-----
> From: Zanussi, Tom
> Sent: Tuesday, November 04, 2014 3:26 PM
> To: Kamble, Nitin A
> Cc: richard.purdie at linuxfoundation.org; Wold, Saul; Burton, Ross; Ashfield,
> Bruce (Wind River); dvhart at linux.intel.com; Openembedded-
> core at lists.openembedded.org
> Subject: Re: [OE-core] [Patch v2 1/1] kernel.bbclass: enable a link for external
> module building
> 
> On Tue, 2014-09-30 at 14:40 -0700, nitin.a.kamble at intel.com wrote:
> > From: Nitin A Kamble <nitin.a.kamble at intel.com>
> >
> > Even though the kernel-dev package provides the required support for
> > building external kernel modules on the target, some commonly used
> > scripts and utilities fail as they are not finding the kernel module
> > build support files at the desired location.
> >
> > Create the /lib/modules/<kernel-version>/build link on target pointing
> > to the sources provided by the kernel-dev package, to fix the issue.
> >
> > Fixes Bug:
> > [YOCTO #2968]
> >
> 
> I just updated my dizzy branch and am getting this when building a kernel
> with no modules:
> 
> Build Configuration:
> BB_VERSION        = "1.24.0"
> BUILD_SYS         = "x86_64-linux"
> NATIVELSBSTRING   = "Fedora-19"
> TARGET_SYS        = "i586-poky-linux-uclibc"
> MACHINE           = "galileo"
> DISTRO            = "poky-micro"
> DISTRO_VERSION    = "1.7"
> TUNE_FEATURES     = "m32 i586"
> TARGET_FPU        = ""
> meta
> meta-yocto
> meta-yocto-bsp    = "dizzy0:64643804aea02e3062a7cde7af236771c56311fd"
> meta-intel        = "dizzy0:002bef4c2a59e95503a2bb7729e7749cd5a9f65b"
> meta-micro-galileo = "dizzy0:f30310dc84dcd96b9e93bb6e5b531631d57d26d6"
> 
> NOTE: Preparing runqueue
> NOTE: Executing SetScene Tasks
> NOTE: Executing RunQueue Tasks
> ERROR: Function failed: do_install (log file is located at
> /home/trz/yocto/galileo-work/build/tmp/work/galileo-poky-linux-
> uclibc/linux-yocto-micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/temp/log.do_install.25369)
> ERROR: Logfile of failure stored in: /home/trz/yocto/galileo-
> work/build/tmp/work/galileo-poky-linux-uclibc/linux-yocto-
> micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/temp/log.do_install.25369
> Log data follows:
> | DEBUG: Executing python function package_get_auto_pr
> | DEBUG: Python function package_get_auto_pr finished
> | DEBUG: Executing shell function do_install
> | NOTE: no modules to install
> | ln: failed to create symbolic link
> | '/home/trz/yocto/galileo-work/build/tmp/work/galileo-poky-linux-uclibc
> | /linux-yocto-micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/image/
> | lib/modules/3.17.0-rc7-yocto-micro/build': No such file or directory
> | WARNING: /home/trz/yocto/galileo-work/build/tmp/work/galileo-poky-
> linux-uclibc/linux-yocto-micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/temp/run.do_install.25369:1 exit 1 from
> |   ln -sf /usr/src/kernel "/home/trz/yocto/galileo-
> work/build/tmp/work/galileo-poky-linux-uclibc/linux-yocto-
> micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/image/lib/modules/3.17.0-rc7-yocto-micro/build"
> | ERROR: Function failed: do_install (log file is located at
> | /home/trz/yocto/galileo-work/build/tmp/work/galileo-poky-linux-uclibc/
> | linux-yocto-micro/3.17+gitAUTOINC+fb21bdc896_522a64f489-
> r4.1.1/temp/lo
> | g.do_install.25369)
> ERROR: Task 4 (/home/trz/yocto/galileo-work/meta-intel/meta-micro-
> galileo/recipes-kernel/linux/linux-yocto-micro_3.17.bb, do_install) failed
> with exit code '1'
> NOTE: Tasks Summary: Attempted 387 tasks of which 386 didn't need to be
> rerun and 1 failed.
> No currently running tasks (357 of 395)
> 
> Summary: 1 task failed:
>   /home/trz/yocto/galileo-work/meta-intel/meta-micro-galileo/recipes-
> kernel/linux/linux-yocto-micro_3.17.bb, do_install
> Summary: There was 1 ERROR message shown, returning a non-zero exit
> code.
> 
> 
> Reverting this patch gets past it.
Hi Tom,
  Because of the no modules kernel configuration, the required directory structure is missing. This patch would fix the issue by ensuring the required directory is present. Can you verify the fix?

--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -213,6 +213,7 @@ kernel_do_install() {
        #
        kerneldir=${D}${KERNEL_SRC_PATH}
        install -d $kerneldir
+       mkdir -p "${D}/lib/modules/${KERNEL_VERSION}"
        ln -sf ${KERNEL_SRC_PATH} "${D}/lib/modules/${KERNEL_VERSION}/build"

Thanks,
Nitin

> 
> Tom
> 
> > Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
> > ---
> >  meta/classes/kernel.bbclass | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> > index 78b33ce..5ac4ff4 100644
> > --- a/meta/classes/kernel.bbclass
> > +++ b/meta/classes/kernel.bbclass
> > @@ -213,6 +213,7 @@ kernel_do_install() {
> >  	#
> >  	kerneldir=${D}${KERNEL_SRC_PATH}
> >  	install -d $kerneldir
> > +	ln -sf ${KERNEL_SRC_PATH}
> "${D}/lib/modules/${KERNEL_VERSION}/build"
> >
> >  	#
> >  	# Store the kernel version in sysroots for module-base.bbclass @@
> > -346,7 +347,7 @@ PACKAGES = "kernel kernel-base kernel-vmlinux
> > kernel-image kernel-dev kernel-mod  FILES_${PN} = ""
> >  FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order
> /lib/modules/${KERNEL_VERSION}/modules.builtin"
> >  FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
> > -FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers*
> /boot/config* ${KERNEL_SRC_PATH}"
> > +FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers*
> /boot/config* ${KERNEL_SRC_PATH}
> /lib/modules/${KERNEL_VERSION}/build"
> >  FILES_kernel-vmlinux = "/boot/vmlinux*"
> >  FILES_kernel-modules = ""
> >  RDEPENDS_kernel = "kernel-base"
> > --
> > 1.8.1.4
> >
> 



More information about the Openembedded-core mailing list