Firmware

Don Zickus dzickus at redhat.com
Mon Jun 9 15:25:08 UTC 2008


On Mon, Jun 09, 2008 at 11:08:57AM -0400, Jarod Wilson wrote:
> Don Zickus wrote:
>>>>> I suspect that (for now) we should make the kernel binary packages
>>>>> depend on kernel-firmware?
>>>>>
>>>>> Should the package own the /lib/firmware/ directory?
>>>>>
>>>>> Ideally we'll want kernel-firmware to be a .noarch.rpm, but we can't get
>>>>> that until we start to build it from a separate srpm.
>>>> I assume the %install would cause a rebuild of the initrd to deal with
>>>> storage device firmware on bootup?
>>> The kernel install already does that. Perhaps we should ensure that
>>> kernel-firmware gets updated before the kernel proper, to ensure that
>>> the new firmware is included. 
>>
>> Or maybe always rebuild initrd when installing kernel-firmware?  It's a
>> little overkill but handles scenarios when the vendor updates their
>> storage blob but we have no new kernel update to go with it (that's
>> probably a little long term thinking to handle the scenario when you
>> actually separate the srpms..).
>
> I'd stick to rebuilding initrds only for a new kernel. Your issue of 'what 
> do I do if the new firmware is bunk' pops up if installing kernel-firmware 
> triggers a new initrd for an already functioning kernel. :)

Hmm, that would cause issues.  But then when folks like qlogic have new
fw, how do you update it successfully?  A stub kernel?

Perhaps creating a new initrd based on the same kernel and a corresponding
new grub entry (entry would consist of old kernel / new initrd image)
would allow people to fallback to the old initrd image if the new one was
bunk?

>
>>>> We were trying to do this with RHEL (jcm was working on this).  One of the
>>>> issues I brought up (which no one had a solution for) was the case for a
>>>> bad firmware for storage devices.  Currently they are built into the
>>>> kernel.  So if you stumble upon bad firmware, you just boot the previous
>>>> working kernel.  How would this be handled with everything under
>>>> /lib/firmware?  I guess a previously working initrd image might suffice.
>>> Yeah, the previous kernel would have had its initrd generated when that
>>> kernel was installed. That initrd should continue to work.
>>
>> Yeah, not sure why I didn't think of this months ago when I was discussing
>> this with folks internally.
>
> Could still be an issue for any device that doesn't get brought up until 
> we've already spun up the kernel and initrd -- i.e., system boots off 
> internal disk, later during boot, brings up external storage on fibre 
> channel adapter, which loads its firmware from /lib/firmware.

I didn't find that scenario interesting because you already have your
rootfs mounted so you could do other tricks to recover from that.

Cheers,
Don




More information about the Fedora-kernel-list mailing list