How do I enumerate firmware used by compiled-in drivers?
From: Michael Conrad
Date: Tue Dec 17 2013 - 01:39:52 EST
Hi, I am trying to maintain an initrd for a homebrew Linux distro. I'm
having a problem where kernel modules are gradually shifting from
linux/firmware to /lib/firmware, which breaks my initrd (which currently
uses CONFIG_FIRMWARE_IN_KERNEL). I am looking for a way to extract a
list of needed firmware files from my compiled kernel so that I can
include them in my initrd. I want to automate this so that I don't have
to fight it on every kernel upgrade. A helpful fellow on freenode
#kernel pointed out that modinfo contains a list of firmware names, but
didn't know any way to find that information for compiled-in drivers.
Is there any way I can do this?
More context:
I have an initrd, so I'm ok with the idea of switching from
firmware-in-kernel to /lib/firmware. However /lib/firmware is 57 MB and
contains many firmware files which aren't even used by Linux 3.10.17 or
by my configuration. I want to include only the ones that the kernel
might try to load.
I want to support most popular network and storage chipsets, plus a few
specific less popular ones, so I have lots of drivers selected (some
modules, some compiled-in) and I don't want to be surprised when a
driver (like bnx2) decides to switch from an in-kernel firmware to a
lib/firmware file. I want my kernel-build script to search for and
include these AUTOMATICALLY, because there are too many to inspect them
by hand each time I upgrade.
Does anyone have advice for this?
Thanks in advance.
-Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/