Thread (8 messages) 8 messages, 5 authors, 2012-07-24

Re: calling request_firmware() from module init will not work with recent/future udev versions

From: Johannes Berg <johannes@sipsolutions.net>
Date: 2012-07-24 14:16:32
Also in: linux-wireless

Possibly related (same subject, not in this thread)

On Thu, 2012-07-19 at 12:46 +0200, Kay Sievers wrote:
quoted
quoted
quoted
What I'm was asking then is this: Can udev know that it is running from
initramfs (presumably that can't be too hard) and simply not reply to
async requests it doesn't have firmware for? Then once the real root is
mounted it could satisfy (or not) firmware requests from the real root.
We can surely change it to not cancel the firmware request.

Either by making it aware that we run from initramfs, or by never
cancelling any firmware request and just leave it hanging around for
forever?
Never say 6 months is a long time to reply. :)
Hehe :-)
Fedora uses systemd in the initramfs now, which made it trivial to
implement this, and to leave the firmware requests hanging around
until we reach in the real rootfs and know if the firmware file is
available:
  http://cgit.freedesktop.org/systemd/systemd/commit/?id=39177382a4f92a834b568d6ae5d750eb2a5a86f9

The logic to tell udev that it runs in the initramfs could easily be
implemented by other initramfs tools than dracut, but they usually do
not really follow what we do here, so this might for now only work on
recent systems using dracut.
Ok, too bad there wasn't a generic way, but at least there's a way
now :-)

Anyway, I think this is a good thing.

johannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help