Ian Bruce wrote: > It turns out that in the mkinitrd script there is a function called > "print_ide_modules()" which is responsible for most of the contents of > this "loadmodules" file. It doesn't appear to do any kind of hardware > detection. It just runs "find" on the > /lib/modules/<version>/kernel/drivers/ide/pci directory, the output of > which depends only on the order that the files in that directory were > originally copied into it. > > Notice that both of the lists you quoted are (mostly) alphabetically > ordered, the first in reverse. This is undoubtedly a result of modules > being copied into various directories in that order; "for x in *" would > do it. The implication is that neither the installer nor mkinitrd is > particularly concerned about the order in which IDE modules are loaded.
Right.. I should have said that the installer tries to match the load
order of the installed system within blocks for a single subsystem --
things like loading ethernet interface modules in the same order, and
loading ide-core after all the pci ide chipset drivers. Necessities of
the installation may result in it loading network modules before ide
drivers or the like.
Here's a reworking of Frans's lists that may make this more clear:
installer reboot
--------- ------
(ethdetect)
3c59x (unsure what part of the initrd loads these)
vesafb
fbcon
unix
(hw-detect)
(pci ide chipset drivers) (pci ide chipset drivers)
piix pdc202xx_new
via82cxxx adma100
trm290 aec62xx
triflex alim15x3
slc90e66 amd74xx
sis5513 atiixp
siimage cmd640
serverworks cmd64x
sc1200 cs5530
rz1000 cy82c693
pdc202xx_old generic
pdc202xx_new hpt34x
opti621 hpt366
ns87415 ns87415
hpt366 opti621
generic pdc202xx_old
cy82c693 piix
cs5530 rz1000
cmd64x sc1200
cmd640 serverworks
amd74xx siimage
alim15x3 sis5513
aec62xx slc90e66
adma100 triflex
trm290
via82cxxx
(misc others) (misc others)
ide-detect ide-detect
ide-disk ide-disk
(cdrom-detect)
cdrom
ide-cd
isofs
BTW, you're right that there's a high correlation between the order the
modules are on disk/ramdisk and the load order for the pci ones, since we do
use find. The reversal of the order is interesting; they're in the udeb
in the same order that find finds them on disk from the kernel package.
Also, the correlation is not perfect, somehow piix is loaded first instead
of later by the installer (unless you loaded piix first by hand).
> > In this case the problem could well be the reversed load order of the
> > piix and generic modules.
>
> I tried hacking the mkinitrd script to reverse the relative order of
> these two modules, and I also tried eliminating all the other IDE
> modules except those. Neither change fixed the problem.
>
> modprobe -k vesafb > /dev/null 2>&1
> modprobe -k fbcon 2> /dev/null
> modprobe -k unix 2> /dev/null
> modprobe -k piix > /dev/null 2>&1
> modprobe -k generic > /dev/null 2>&1
> modprobe -k ide-detect
> modprobe -k ide-disk
So it's not an ordering problem at all..?
> The installation floppies still have no difficulty at all with this
> hardware. What file on them controls module loading? Perhaps some module
> parameters are required? I could change mkinitrd to produce exactly the
> same module load order as during installation, but it's not clear
> to me that this will work either. Any suggestions?
Most module loading, except for a few exceptions such as getting the
frame buffer and essential acpi stuff loaded as the installer boots, is
performed by /bin/hw-detect. We don't pass any parameters to ide pci
modules unless the user tells us to (in expert mode). ide-detect and
ide-disk don't get any special params by default either.
--
SEE Shy jo
signature.asc
Description: Digital signature

