[linux-yocto] Build Kernel module on target

Bodke, Kishore K kishore.k.bodke at intel.com
Fri Aug 17 11:11:07 PDT 2012



>-----Original Message-----
>From: Darren Hart [mailto:dvhart at linux.intel.com]
>Sent: Thursday, August 16, 2012 5:00 PM
>To: Bodke, Kishore K
>Cc: linux-yocto at yoctoproject.org
>Subject: Re: Build Kernel module on target
>
>
>
>On 08/16/2012 04:31 PM, Bodke, Kishore K wrote:
>> Hi Darren,
>
>Hi Kishore,
>
>> I am trying to build the Kernel Module on the target with sdk image.
>> I get the below error for all the kernel modules I am building.
>>
>> == Build lib/librte_eal/linuxapp/igb_uio
>>
>> make: *** /lib/modules/3.4.6-yocto-standard/build: No such file or
>> directory.  Stop.
>>
>> make[7]: *** [igb_uio.ko] Error 2
>>
>> Makefile has the kernel source directory  set like below.
>>
>> RTE_KERNELDIR = /lib/modules/$(shell uname -r)/build
>>
>> And I see there is no build directory there in
>> /lib/modules/3.4.6-yocto-standard .
>>
>> I changed the RTE_KERNELDIR to
>>
>> RTE_KERNELDIR =/usr/src/kernel
>
>Correct.

Why Yocto does not have /lib/modules/$(shell uname -r)/build? 
Generally  /lib/modules/$(shell uname -r)/build is where EVERY kernel module goes to look for kernel headers to build against.

>
>> This time it went further to build the kernel module but failed for the
>>
>> /usr/src/kernel/scripts/recordmcount: No such file or directory
>>
>> I saw the ${STAGING_KERNEL_DIR} for the recordmcount.  There is no such
>file
>> I think we need  scripts/recordmcount to be a part of the final image?
>
>This is an unfortunate result of the kernel building those "scripts" for
>the host, which we can't deploy to the target. We intentionally remove
>them. To build on the target, you must first build the "scripts":
>
>$ cd /usr/src/kernel
>$ make scripts
>
>Then try to build your modules.

If I had to build the same module using recipe via bitbake, I get the same error.
Unfortunately I cannot inherit module in my recipe. The reason being, it is building for the local host if I do inherit module.
I had to export the kernel source directory to ${STAGING_KERNEL_DIR}, then it gave the same scripts/recordmcount not found error.

Do you recommend doing this in my do_compile() as well?
$ cd ${STAGING_KERNEL_DIR}
$ make scripts

Thanks
Kishore.
 



More information about the linux-yocto mailing list