2006-10-20 22:55:16

by Jim

[permalink] [raw]
Subject: kernel internal built in module loading order

Hi,

Does the kernel load internal built in modules (obj-y) in a certain
order, or in a random order? Does the kernel internal module loading
based on a configuration file?

I am running an ARM system, is there a way to delay the Ethernet module
loading until some other internal modules are loaded?

Thank you.

Jim


2006-10-20 23:18:21

by Jan Engelhardt

[permalink] [raw]
Subject: Re: kernel internal built in module loading order


> Does the kernel load internal built in modules (obj-y) in a certain
> order,

Yes. As far as I can tell:

- special ordering (when you find __define_initcall in the
kernel source, you know)

and

- linking order

play a role.

> or
> in a random order? Does the kernel internal module loading based on a
> configuration file?

/etc/modprobe.conf, but the proper answer would be "no".

> I am running an ARM system, is there a way to delay the Ethernet
> module loading
> until some other internal modules are loaded?

I am sure you can use some modprobe magic, such as:

install 8139too /usr/local/bin/my-8139-loader

And your 8139-loader contains:

#!/bin/bash

while ! condition; do
sleep 1;
done;
modprobe 8139too;

I just don't know how well that fares when you are trying to modprobe
from within modprobe.


-`J'
--

2006-10-20 23:44:16

by Michael Ruan

[permalink] [raw]
Subject: Re: kernel internal built in module loading order

>Hi,
>Does the kernel load internal built in modules (obj-y) in a certain
>order, or in a random order? Does the kernel internal module loading
>based on a configuration file?
>I am running an ARM system, is there a way to delay the Ethernet module
>loading until some other internal modules are loaded?
>Thank you.

Yes, it follows some rules.

Please refer to the "3.2 Built-in object goals - obj-y" section of your
kernel_source_root/Documentation/kbuild/makefiles.txt

Michael