build initrd for qla2xxx firmware

Mark Haney mhaney at ercbroadband.org
Fri May 23 17:25:22 UTC 2008


Rick Stevens wrote:
> Mark Haney wrote:
>> Okay, I'm still unable to build a correct initrd to include the QLogic 
>> 2300 FC card I have in a couple of machines.  I've tried several 
>> methods (from scripts to cracking open the existing initrd) and 
>> nothing seems to work.  The firmware IS on the system (via an RPM) and 
>> the qla2xxx module gets loaded, but I cannot get it to load on boot.  
>> initrd complains about the firmware not being available.
>>
>> Surely others out there have these cards in use still and keep there 
>> systems up to date, so what am I doing wrong?  Can someone walk me 
>> through this.  I have one system stuck at FC6 because the newer kernel 
>> don't include the firmware and I can't upgrade until I can get this 
>> resolved.
> 
> Are you sure the firmware is in /lib/firmware?  Check that directory
> and verify you have "ql2300_fw.bin" or "ql2322_fw.bin" there.  Don't
> necessarily rely on the fact you have the RPM installed...something
> may have wiped the files.

I just ran mkinitrd -v -f /root/initrd-`uname -r`.img `uname -r`  to 
build a new initrd image, copied it to /boot/ and edited grub to use the 
new image.  No dice.  But, and this is the weird part, the output of 
mkinitrd SHOWS the firmware being included in the image:


copy from `/lib/modules/2.6.24.7-92.fc8/kernel/drivers/ata/pata_amd.ko' 
[elf64-x86-64] to `/tmp/initrd.Jq3472/lib/pata_amd.ko' [elf64-x86-64]
copy from `/lib/modules/2.6.24.7-92.fc8/kernel/drivers/scsi/scsi_tgt.ko' 
[elf64-x86-64] to `/tmp/initrd.Jq3472/lib/scsi_tgt.ko' [elf64-x86-64]
copy from 
`/lib/modules/2.6.24.7-92.fc8/kernel/drivers/scsi/scsi_transport_fc.ko' 
[elf64-x86-64] to `/tmp/initrd.Jq3472/lib/scsi_transport_fc.ko' 
[elf64-x86-64]
copy from 
`/lib/modules/2.6.24.7-92.fc8/kernel/drivers/scsi/qla2xxx/qla2xxx.ko' 
[elf64-x86-64] to `/tmp/initrd.Jq3472/lib/qla2xxx.ko' [elf64-x86-64]
`/lib/firmware/ql2400_fw.bin' -> 
`/tmp/initrd.Jq3472/lib/firmware/ql2400_fw.bin'
`/lib/firmware/ql2322_fw.bin' -> 
`/tmp/initrd.Jq3472/lib/firmware/ql2322_fw.bin'
`/lib/firmware/ql2300_fw.bin' -> 
`/tmp/initrd.Jq3472/lib/firmware/ql2300_fw.bin'
`/lib/firmware/ql2200_fw.bin' -> 
`/tmp/initrd.Jq3472/lib/firmware/ql2200_fw.bin'
`/lib/firmware/ql2100_fw.bin' -> 
`/tmp/initrd.Jq3472/lib/firmware/ql2100_fw.bin'
/sbin/lvm -> /tmp/initrd.Jq3472/bin/lvm
   /sbin/lvm.static -> /tmp/initrd.Jq3472/sbin/lvm.static
/etc/lvm -> /tmp/initrd.Jq3472/etc/lvm
`/etc/lvm/lvm.conf' -> `/tmp/initrd.Jq3472/etc/lvm/lvm.conf'


So, based on this, the firmware really is part of the initrd image, it's 
just not being used.  Is that what I'm seeing?



-- 
Libenter homines id quod volunt credunt -- Caius Julius Caesar


Mark Haney
Sr. Systems Administrator
ERC Broadband
(828) 350-2415

Call (866) ERC-7110 for after hours support




More information about the fedora-list mailing list