Red Hat Bugzilla – Bug 31439
Kernel 2.2.17 i686 ent & smp aic7xxx 2940 not detected on boot
Last modified: 2007-04-18 12:32:07 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (X11; U; Linux 2.2.17-14enterprise i686)
On a Supermicro P6DGE moboard RedHat 7 2.2.17smp or enterprise dual PII400
512 MB RAM with Tandberg NS20, Yamaha 4416 CDRW, Iomega 100 on Adaptec 2940
SCSI controller, the controller is not recognized on boot, "0 hosts
detected" after upgrading from 2.2.16 kernel which worked just fine.
Control panel kernel modules shos aic7xxx module is loaded.
Steps to Reproduce:
1. Boot computer
Setup - install as per description above.
Actual Results: No SCSI devices available.
Expected Results: Being able to use tape drive, nice CD Burner etc.
I assume this system uses an IDE hard drive since you appear to be able to run
without the aic7xxx module loaded. What happens if you type modprobe aic7xxx at
the command prompt as root? What does lspci show on the system?
modprobe aic7xxx causes scsi devices to become available.
no output is returned from typing modprobe aic7xxx
00:00.0 Host bridge: Intel Corporation 440GX - 82443GX Host bridge
00:01.0 PCI bridge: Intel Corporation 440GX - 82443GX AGP bridge
00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02)
00:0f.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 20)
00:10.0 Ethernet controller: Lite-On Communications Inc LNE100TX (rev 20)
00:12.0 SCSI storage controller: Adaptec AHA-294x / AIC-7871
00:14.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08)
01:00.0 VGA compatible controller: nVidia Corporation Riva TnT 128 [NV04] (rev 0
Oh, and you are correct about ide drive being available as boot device.
OK, this isn't a kernel bug then. At worst it's an upgrade bug. At best it's a
"feature". Basically, since the SCSI driver isn't needed for booting, it
doesn't have to be loaded. The 0 hosts found messages is normal and simply
indicates that the scsi subsystem was initialized and the initial state didn't
include any hosts. If you check a complete message list from your 2.2.16 kernel
you had prior to the upgrade you would find that it also said 0 hosts found
right before it started to load the aic7xxx driver and after the startup
messages it would print out 1 host found. The only difference now is that the
aic7xxx driver isn't getting loaded. So, there are three ways to proceed
(listed in order of least preferred to most preferred).
1) Manually type modprobe aic7xxx after each reboot the first time you log in.
This will make the aic7xxx stuff available to you when you need it.
2) Simply try to use the CD device or the tape backup without typing modprobe
aic7xxx after a reboot. This should automatically load the aic7xxx module as
needed, and when you are done and an idle period has passed, unload the aic7xxx
module. This will involve waiting for the aic7xxx driver to init whenever you
haven't used the devices in a while (aka, the first time you go to mount a CD
after a long idle time, you'll have to wait for the complete aic7xxx init cycle
to compete before the mount can proceed). This also relies on having automatic
module probing enabled (the default for a Red Hat system is for this to be
enabled, but if you've turned it off for some reason then this won't work). You
will have to make sure there is a line:
alias scsi_hostadapter aic7xxx
in the file /etc/modules.conf in order for the autoprobe to work as well.
3. Use an initrd image to load the driver at each boot. This is how things are
normally done when the primary hard disk is a SCSI drive. It's not a
requirement for IDE disks (at least with our 2.2 kernels, 2.4 kernels may be a
different story). To make this work you have to follow these steps:
A) Make sure that the new kernel has an initrd= line in the /etc/lilo.conf
file. Since you are using the 2.2.17-14enterprise kernel, it should look
something like this:
B) Make sure the /etc/modules.conf includes the alias scsi_hostadapter aic7xxx
line mentioned above.
C) Make sure the /boot/initrd-2.2.17-14enterprise.img file exists and is
valid. To make sure it is, run this command:
mkinitrd -v -f /boot/initrd-2.2.17-14enterprise.img 2.2.17-14enterprise
The command should tell you it is loading the aic7xxx module if B has been done.
D) Now that all the other steps are in place, run lilo from the command
prompt.. Lilo should tell you about the kernels it is setting up. Once that's
done, reboot into the enterprise kernel and everything should work fine without
you having to do anything. For other kernels, repeat this process and simply
replace all the 2.2.17-14enterprise occurances with the proper kernel version.
That should solve the problem on your system. As far as the upgrade bug goes, I
have no clue if the bug still exists in current installers. Someone from the
install team would have to comment on that issue. I'm changing the component to
anaconda (the install program) so that the install people can see this and do
whatever might need done.
Can you duplicate this problem with Red Hat Linux 7.1?
Closing due to inactivity. Please reopen if you have any more info.