Thread (7 messages) flat view 7 messages, 3 authors, 2011-05-12

module loading order

From: Greg KH <hidden>
Date: 2011-05-11 16:14:16

On Wed, May 11, 2011 at 09:38:28PM +0530, Vikram Narayanan wrote:
quoted
quoted
This is a question that arose from a older kernel ( 2.6.21 ) but I think
it's generic to all kernels. Actually this might not a question on the
kernel itself at all. So here it goes,

I'm using a USB 3G modem with this kernel. The system loads three
modules for it: pl2303, option and usbserial. Problem is, it looks like
the order or loading is different ( I'm judging this by the order they
appear in lsmod output):

Sometimes, lsmod says:
pl2303 ? ? ? ? ? ? ? ? 18628 ?0
option ? ? ? ? ? ? ? ? ?9664 ?0
usbserial ? ? ? ? ? ? ?28296 ?2 pl2303,option

And sometimes, it says:
option ? ? ? ? ? ? ? ? ?9664 ?0
pl2303 ? ? ? ? ? ? ? ? 18628 ?0
usbserial ? ? ? ? ? ? ?28296 ?2 option,pl2303

Problem is, if option is before pl2303, the device won't work properly.
So my question is: who decides which is loaded first, or, why does lsmod
give different order?
It's random and there is no way to specify the order unless you make one
module a dependancy of the other.
Isn't modules.dep file take care of this?
Yes, but again, there is no such dependancy between these two modules
as they are separate and do not control the same type of hardware.  Or
at least, they shouldn't.
quoted
And for these modules, they should not be dependant on each other, so
you can't do that.
It does I guess. In my system, the modules.dep has,
kernel/drivers/usb/serial/pl2303.ko: kernel/drivers/usb/serial/usbserial.ko
Doesn't it mean that pl2303 is dependent on usbserial?
Yes, and so is the option module.  But you are looking at a wierd device
that somehow thinks it is both an option device, and a pl2303 device,
which are totally different chipsets.

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help