How does linux load firmeware for built-in driver modules
I read through the kernel sources, especially drivers/base/firmware_class.c
, and discovered that
CONFIG_FW_LOADER_USER_HELPER
would activate the udev
firmware loading variant (obviously only usable for loadable modules when udev is running). But as mentioned on LKML this seems to be an obsolete method.
Furthermore firmware required by built-in modules is loaded from initramfs
by fw_get_filesystem_firmware()
through a kernel_read()
, to be precise.