> -----Original Message-----
> From: Frank Steiner [mailto:fsteiner-mail1@bio.ifi.lmu.de]
> Sent: Friday, September 01, 2006 8:39 AM
> To: suse-autoinstall(a)suse.com
> Subject: [suse-autoinstall] Preload modules before hardware detection?
> (wrong scsi order)
>
> Hi,
>
> similar post was sent in July with title "Problem with the order of
disks",
> where Michael Schulz had the same problem we have:
>
> SCSI controllers are detected in the wrong order, so that the disk
that
> should be /dev/sda ends up as /dev/sde.
>
> This used to work with SuSE 9.0 where we loaded the module for the
first
> controller with "insmod gdth" passed to linuxrc (we are using
pxeboot).
> Now, with 10.1, the init process of YA starts a "Hardware detection"
> *before* loading the modules defined in the info file or passed to the
> command line.
>
> This makes the insmod option for linuxrc more or less superfluous and
> removes any control over the order in which modules are loaded during
> the AY boot. Here, it makes the fc modules load before the scsi
modules,
> thus moving our scsi disk to /dev/sde.
>
> Is it possible to disable automatic hardware detection or load the
modules
> before the hardware detection? Or could I try thinks like renaming the
> init binary in the initrd and install my own script there that's just
>
> modprobe gdth
> exec init.suse
>
> Of course, I would prefer a method without changing the initrd if
> possible...
>
> cu,
> Frank
I spent a bunch of time going around and around with this basic problem
-- a machine with two SATA controllers, and the wrong one was being
detected first. (System array is on a Silicon Image controller, Storage
array is on a 3ware card -- and detection happens in alphabetical
order).
In the end, I found it easier to make a chroot-script that basically
just does this:
`sed -i "s/3w_9xxx sata_sil/sata_sil 3w_9xxx/g" /etc/sysconfig/kernel`
`mkinitrd`
(replace the module names, of course, with the ones relevant to your
environment.)
This just takes advantage of the fact that, by the time chroot scripts
run, the sysconfig/kernel file is already populated (having just been
used to build the "broken" initrd).
The trick, here, is that you're installing to /dev/sde, but it's going
to be /dev/sda when the system boots. The bootloader section, at least,
needs to be adjusted to handle that case.
I'm a little fortunate in that the sed regex is always the same in my
environment. A more generalized version, though, could be done with
something like
`sed -i "s/3w_9xxx\(.*\)sata_sil/sata_sil\13w_9xxx/g"
/etc/sysconfig/kernel`
Anyway...your mileage with my hacks may vary, but hope this helps a
little...
- Ian