[LEDE-DEV] Difference between AutoLoad vs. AutoProbe for kernel modules?

John Crispin john at phrozen.org
Tue Jan 10 00:20:32 PST 2017



On 10/01/2017 09:17, Baptiste Jonglez wrote:
> On Tue, Jan 10, 2017 at 07:56:36AM +0100, John Crispin wrote:
>>>> While investigating an issue with module loading order¹, I discovered
>>>> that
>>>> some kernel packages use AutoProbe, like this:
>>>>
>>>>      AUTOLOAD:=$(call AutoProbe,xt_hashlimit)
>>>>
>>>> while some kernel packages use the AutoLoad helper I was used to, with a
>>>> priority:
>>>>
>>>>      AUTOLOAD:=$(call AutoLoad,28,raid0)
>>>>
>>>> Judging from this commit² and `include/kernel.mk`, it seems the only
>>>> difference is that AutoProbe does not include a priority.
>>>>
>>>> Is the loading order determined automatically for AutoProbe?  If so,
>>>> where
>>>> is the magic, and why is AutoLoad still needed in some cases?
>>>
>>> I opened the issue, so using autoload the modules will get a priority
>>> specified by the number, for wireguard above 90 would issue only one
>>> warning and using autoprobe the module would be loaded by the order of
>>> the name ? so setting the xt_hashlimit with a lower number (autoload)
>>> will start wireguard without complaining
>>>
>>
>> autoload is like insmod while autoproe is more liek modprobe. kmodloader
>> will first load all numbered modules in the given order and then probe
>> the remaining ones.
> 
> So, with AutoProbe, there is dependency resolution, similarly to modprobe?
> But without using depmod?
> 

correct. kmodloader will scan the ELF header and work out which other
modules are required to be loaded. depmod caches this dependency info
while kmodloader generates it when needed.

	John



More information about the Lede-dev mailing list