module loading order

Greg KH greg at kroah.com
Wed May 11 12:14:16 EDT 2011


On Wed, May 11, 2011 at 09:38:28PM +0530, Vikram Narayanan wrote:
> >> 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.

> > 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



More information about the Kernelnewbies mailing list