Re: FC6 .22-9 kernel and qla2xxx driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mark Haney wrote:
> I just rebooted one of my SAN hosts, running FC6, and had it boot into
> the latest FC6 kernel 2.6.22-9.  After the boot, the primary SAN
> partitions it mounts weren't available.  A check through
> /var/log/messages revealed this little nugget:
>
> Nov  9 10:01:04 blowingrock kernel: QLogic Fibre Channel HBA Driver
> Nov  9 10:01:04 blowingrock kernel: e1000: eth0: e1000_probe: Intel(R)
> PRO/1000 Network Connection
> Nov  9 10:01:04 blowingrock kernel: ACPI: PCI Interrupt 0000:01:01.0[A]
> -> GSI 28 (level, low) -> IRQ 28
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Found an
> ISP2300, irq 28, iobase 0xffffc20001438000
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Configuring
> PCI space...
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Configure
> NVRAM parameters...
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Verifying
> loaded RISC code...
> Nov  9 10:01:04 blowingrock kernel: ACPI: PCI Interrupt 0000:02:04.1[B]
> -> GSI 26 (level, low) -> IRQ 26
> Nov  9 10:01:04 blowingrock kernel: e1000: 0000:02:04.1: e1000_probe:
> (PCI:33MHz:64-bit) 00:04:23:a8:96:d7
> Nov  9 10:01:04 blowingrock kernel: Floppy drive(s): fd0 is 1.44M
> Nov  9 10:01:04 blowingrock kernel: FDC 0 is a post-1991 82077
> Nov  9 10:01:04 blowingrock kernel: e1000: eth1: e1000_probe: Intel(R)
> PRO/1000 Network Connection
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Firmware image
> unavailable.
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Firmware
> images can be retrieved from: ftp://ftp.qlogic.com/outgoing/linux/firmware/.
> Nov  9 10:01:04 blowingrock kernel: qla2xxx 0000:01:01.0: Failed to
> initialize adapter
>
>
> So, in my panic, I reset grub to point back to the existing .20 kernel
> and all came up just fine:
>
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: Found an
> ISP2300, irq 28, iobase 0xffffc20000022000
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: Configuring
> PCI space...
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: Configure
> NVRAM parameters...
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: Verifying
> loaded RISC code...
> Nov  9 10:31:06 blowingrock kernel: Intel(R) PRO/1000 Network Driver -
> version 7.3.15-k2-NAPI
> Nov  9 10:31:06 blowingrock kernel: Copyright (c) 1999-2006 Intel
> Corporation.
> Nov  9 10:31:06 blowingrock kernel: input: PC Speaker as /class/input/input3
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: Allocated (412
> KB) for firmware dump...
> Nov  9 10:31:06 blowingrock kernel: scsi2 : qla2xxx
> Nov  9 10:31:06 blowingrock kernel: hdc: ATAPI 52X CD-ROM drive, 128kB
> Cache, UDMA(33)
> Nov  9 10:31:06 blowingrock kernel: Uniform CD-ROM driver Revision: 3.20
> Nov  9 10:31:06 blowingrock kernel: Floppy drive(s): fd0 is 1.44M
> Nov  9 10:31:06 blowingrock kernel: FDC 0 is a post-1991 82077
> Nov  9 10:31:06 blowingrock kernel: qla2xxx 0000:01:01.0: LOOP UP
> detected (2 Gbps).
>
>
> So my question, WTH is going on here?  I've obviously missed a memo or
> something.
>
>   
Well.. what's going on is that the kernel is trying to load the firmware
for the qla2xxx driver from the initrd, but it cannot find it.
It seems that the firmware is not inside the initrd (unlike your other
kernel, which does have this firmware in its initrd).

Why this is happening is unclear to me, because the firmware should be
present inside the initrd, however you can create an initrd yourself for
the new kernel (initrd-2.6.22.7-57.fc6.img should be replaced by your
initrd of the new kernel):
mkdir /root/new_initrd
cp /boot/initrd-2.6.22.7-57.fc6.img
/root/new_initrd/initrd-2.6.22.7-57.fc6.img.gz
cd /root/new_initrd
gunzip initrd-2.6.22.7-57.fc6.img.gz
mkdir img
cd img
cat ../initrd-2.6.22.7-57.fc6.img | cpio -iv

You should now have the contents of the initrd in the directory
/root/new_initrd/img/
You can get the firmware from the website, which is located inside your
logfiles or use one you might already have in /lib/firmware/. Now let's
put the firmware into the initrd and put it back together:

mkdir /root/new_initrd/img/lib/firmware
cp the-firmware /root/new_initrd/img/lib/firmware
cd /root/new_initrd/img/
find . -depth -print | cpio -oc > ../initrd-2.6.22.7-57.fc6.fixed.img ;
cd .. ; gzip initrd-2.6.22.7-57.fc6.fixed.img
cd ..
mv initrd-2.6.22.7-57.fc6.fixed.img.gz initrd-2.6.22.7-57.fc6.fixed.img
cp initrd-2.6.22.7-57.fc6.fixed.img /boot/

You should now have a new initrd with the correct firmware. It's a bit
of a hassle, and there should be a better solution to this
problem, but it *is* a solution :)
After changing your initrd in /etc/grub.conf, it should work again.

Hope it all works out.


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux