Hello Folks,
I'm currently experiencing this bug on a RHEL5.3 (anaconda-11.1.2.168-1).
Here's what I found/think:
I grabbed two disk drivers with modules (
Disk1:
mptbase scsi "Fusion MPT base driver"
mptscsih scsi "Fusion MPT scsi base driver"
mptctl misc "Fusion MPT ioctl driver"
mptsas scsi "Fusion MPT SAS driver"
mptspi scsi "Fusion MPT SPI driver"
Disk2:
adpinv scsi "Driver for Adaptec Inverness SAS/SATA Controller"
During the installation if I provide these disks in any order. For the
second attempt (loading the second driver disk) it failed. With the
following error:
"No devices of the appropriate type were found on the driver disk. Would you
like to manually select the driver, continue anyway, or load another driver
disk?"
If you manually choose the driver it works fine and installation continues.
Going further I added few debug statements in
anaconda-11.1.2.168/loader2/driverdisk.c and reproduced the same
behaviour and here's what I see:
anaconda.log:
14:16:52 DEBUG : In loadDriverDisks()
14:17:40 DEBUG : In loadDriverDisks() -> Calling loadDriverFromMedia()
14:17:40 DEBUG : Inside loadDriverFromMedia
14:17:40 DEBUG : DEV_DEVICE: devNames is (nil)
14:17:40 DEBUG : devices[0] is fd0
14:17:40 DEBUG : devices[1] is hdc
14:17:40 DEBUG : devices[2] is hda
14:17:40 DEBUG : Called getRemovableDevices()
14:17:40 DEBUG : rc is 3
14:17:58 DEBUG : In DEV_PART Calling getPartitionsList()
14:17:58 DEBUG : In DEV_INSERT
14:18:00 DEBUG : In DEV_INSERT. mount looks good moving to
verifyDriverDisk
14:18:00 DEBUG : In DEV_INSERT. After verifyDriverDisk rc is 0
14:18:00 DEBUG : In DEV_LOAD, calling probeDevices()
14:18:01 DEBUG : In DEV_LOAD after loadDriverDisk() rc is 0
14:18:01 DEBUG : In DEV_PROBE
14:18:01 DEBUG : In DEV_PROBE calling busProbe()
14:18:01 DEBUG : ignoring driverless device VMware Inc Abstract SVGA
II Adapter
14:18:01 INFO : modules to insert mii pcnet32 libata ata_piix
14:18:01 DEBUG : getModuleLocation: 2.6.18-128.el5/i686
14:18:02 INFO : loaded mii from /modules/modules.cgz
14:18:02 INFO : loaded pcnet32 from /modules/modules.cgz
14:18:02 INFO : loaded libata from /modules/modules.cgz
14:18:02 INFO : loaded ata_piix from /modules/modules.cgz
14:18:02 INFO : inserted /tmp/mii.ko
14:18:02 INFO : inserted /tmp/pcnet32.ko
14:18:02 INFO : inserted /tmp/libata.ko
14:18:03 INFO : inserted /tmp/ata_piix.ko
14:18:03 INFO : load module set done
14:18:03 INFO : load module set done
14:18:03 DEBUG : In DEV_PROBE found > before
At this stage it finshed loading the drivers from the first disk. So,
what it does here is, In driverdisk.c, look at loadDriverFromMedia(), in
particular, 'case DEV_LOAD:' and 'case DEV_PROBE:' near the bottom of
the switch.
It calls probeDevices() (from kudzu libraries) in DEV_LOAD and counts up
how many devices already have drivers loaded* and stores than in
'before'. Then, in DEV_PROBE, it does it again and stores it in
'found'. If 'found' is greater than 'before', then it must have found
the drivers on the driver disk and loaded them, so it's done with that disk.
* This only works for network devices at the moment... See kudzu.c
probeDevices() function...
If found == before, though, that means there was some kind of problem
with the driver disk, so it pops up the error message and asks you to
manually choose or try another disk.
For second disk (disk2):
14:18:19 DEBUG : Inside loadDriverFromMedia
14:18:19 DEBUG : DEV_DEVICE: devNames is (nil)
14:18:19 DEBUG : devices[0] is fd0
14:18:19 DEBUG : devices[1] is hdc
14:18:19 DEBUG : devices[2] is hda
14:18:19 DEBUG : Called getRemovableDevices()
14:18:19 DEBUG : rc is 3
14:20:03 DEBUG : In DEV_PART Calling getPartitionsList()
14:20:03 DEBUG : In DEV_INSERT
14:20:04 INFO : trying to mount hdc
14:20:04 DEBUG : In DEV_INSERT. mount looks good moving to
verifyDriverDisk
14:20:04 DEBUG : In DEV_INSERT. After verifyDriverDisk rc is 0
14:20:04 DEBUG : In DEV_LOAD, calling probeDevices()
14:20:04 DEBUG : In DEV_LOAD after loadDriverDisk() rc is 0
14:20:04 DEBUG : In DEV_PROBE
14:20:04 DEBUG : In DEV_PROBE calling busProbe()
14:20:04 DEBUG : probing buses
14:20:04 DEBUG : finished bus probing
14:20:04 DEBUG : ignoring driverless device VMware Inc Abstract SVGA
II Adapter
14:20:04 INFO : modules to insert
14:20:04 DEBUG : getModuleLocation: 2.6.18-128.el5/i686
14:20:04 INFO : load module set done
At this stage there could be two things, either the modules that I
provided was already present/loaded (which I dont suspect is the case)
or there was some issues with the modules that I use (but, even if you
swap the disks, i'e provide disk2 first which loads the drivers fine and
then insert disk1 then it again fails with the same error).
To rule out the possibility that I'm using incorrect drivers, I'm going
to try some other drivers (SCSI and Network) to see if that makes any
difference.
I would appreciate if you could shed some light on this issue.
Best regards,
--
Vishal Gaikwad, RHCE.
Red Hat Global Support Services Pune, India.
_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list