Description of problem: when one installs a system that has it's disk attached via QLA HBA, and the ql??xx-firmware rpm is installed, mkinitrd will put the firmware blob under /lib/firmware on the initrd. It would seem that the system expects the blobs top be under /firmware though. Version-Release number of selected component (if applicable): mkinitrd-6.0.19-4.fc8 How reproducible: always Steps to Reproduce: 1. have a system where / is on a disk attached through QLA HBA 2. install as per Bug #377921 3. reboot after install Actual results: system does not come up. qla2xxx kernel module complains about not finding firmware Expected results: mkinitrd puts firmware in corrcet place on initial ramdisk Additional info: checking out the initrd as described at http://kbase.redhat.com/faq/FAQ_85_4791.shtm you will see that mkinitrd (and also anaconda during installation) puts the firmware blobs in /lib/firmware. The working initrd attached to bug #377921 has the blobs in /firmware, so one would presume the bug lies with mkinitrd.
The directory is actually not the problem; the initrd created by mkinitrd is supposed to mimic the installed system here. The problem is a simple code bug :/ Test packages are at http://pjones.fedorapeople.org/mkinitrd/ .
in response to Comment #2 yupp, works like a charm with the packages from that repo (did a local mirror here as my machine cannot access ouside) and of course the fix from Bug 377921 to be able to install at all. Installation was done via kickstart and I added a repo line for my mirror
Peter, any chance you could elaborate on the "simple code bug" you referenced in comment#2?
Here is what Peter changed in the code as far as I can see. It worked well for me, even when back-porting to FC7. Can this be included in the regular updates please? *** hotplug.c.uevent-done 2007-09-27 19:26:43.000000000 +0200 --- hotplug.c 2008-01-03 12:25:27.000000000 +0100 *************** *** 440,446 **** char *token; char *action = NULL, *subsystem = NULL, *seqnum = NULL; long cur; ! int done; action = envz_get(ue->envz, ue->envz_len, "ACTION"); subsystem = envz_get(ue->envz, ue->envz_len, "SUBSYSTEM"); --- 440,446 ---- char *token; char *action = NULL, *subsystem = NULL, *seqnum = NULL; long cur; ! int done = 0; action = envz_get(ue->envz, ue->envz_len, "ACTION"); subsystem = envz_get(ue->envz, ue->envz_len, "SUBSYSTEM");
*** Bug 329511 has been marked as a duplicate of this bug. ***
Given this is also on issue on RHEL5U1, should I open a new bug relative to it? comment#5's suggested patch to nash/hotplug.c resolves the problem on RHEL5U1's mkinitrd (5.1.19.6-19). I'd really like to see this resolved in >= RHEL5U2...
Yes, please open a new bug/support case so that the proper RHEL folks can take a look at this.