[yocto] Proper Use of KERNEL_MODULE_AUTOLOAD variable

Bruce Ashfield bruce.ashfield at windriver.com
Sat Feb 2 19:37:51 PST 2019


On 2019-02-02 10:16 p.m., Ken Sloat wrote:
> On Sat, Feb 2, 2019 at 10:03 PM Bruce Ashfield
> <bruce.ashfield at windriver.com> wrote:
>>
>> On 2019-02-02 9:59 p.m., Ken Sloat wrote:
>>> Hello,
>>>
>>> I have an out of tree kernel module which I want autoloaded at startup
>>> on my system. Looking at the Yocto project manual, I see that one way
>>> I can do this is to add the module name to the KERNEL_MODULE_AUTOLOAD
>>> variable within my custom module recipe.
>>>
>>> What I have found is that the module-split class is indeed generating
>>> the "/etc/modules-load.d/mymodule.conf" file, however this file is not
>>> actually being installed. To be more precise it is appearing in the
>>> "package" directory (i.e.
>>> tmp/work/**/mymodule/package/etc/modules-load.d/mymodule.conf) but not
>>> within the "image" directory (nor in my final rootfs).
>>>
>>> Is there something I'm missing in the usage of KERNEL_MODULE_AUTOLOAD?
>>> Is the intention for this variable I add extra steps to manually
>>> install this file in my recipe? FYI I'm using Morty.
>>
>> Can you provide your recipe ? It would make suggestions easier. For
>> example, my first question is: Is the module being installed to your
>> image via IMAGE_INSTALL, or some other similar variable ?
>>
>> Bruce
>>
>>>
>>> Thanks,
>>> Ken Sloat
>>>
>>
> 
> Hi Bruce,
> 
> Thanks for your quick reply. Yes the module is being installed via
> image_install. Module is installed but generated conf file is not. See
> recipe below:

Hmm. If you are really installing kernel-module-<your name> to the
image, at a glance, what you have really should be enough.

Can you confirm that you are seeing your .ko on the image, and that
it just isn't being autoloaded ? Are you running an init system that
respects the autoload configuration ?

> 
> require mymodule.inc
> 
> inherit module kernel-module-split

Note that module already inherits kernel-module-split, so you really
shouldn't need to explicitly add that inherit.

Bruce

> 
> DEPENDS = "virtual/kernel"
> 
> EXTRA_OEMAKE_append = " \
>      KERNELDIR=${STAGING_KERNEL_DIR} \
>      "
> 
> MAKE_TARGETS = "module"
> 
> MODULE_NAME = "mymodule"
> 
> PKG_${PN} = "kernel-module-${MODULE_NAME}"
> 
> module_do_install() {
>      install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}
>      install -m 0644 ${MODULE_NAME}.ko \
>      ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko
> }
> 
> FILES_${PN} = " \
>      /lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME} \
> "
> 
> KERNEL_MODULE_AUTOLOAD += "${MODULE_NAME}"
> 



More information about the yocto mailing list