Firmware can be built-in to the kernel, this means building the firmware into vmlinux directly, to enable avoiding having to look for firmware from the filesystem. Instead, firmware can be looked for inside the kernel directly. You can enable built-in firmware using the kernel configuration options:
- CONFIG_EXTRA_FIRMWARE
- CONFIG_EXTRA_FIRMWARE_DIR
This should not be confused with CONFIG_FIRMWARE_IN_KERNEL, this is for drivers which enables firmware to be built as part of the kernel build process. This option, CONFIG_FIRMWARE_IN_KERNEL, will build all firmware for all drivers enabled which ship its firmware inside the Linux kernel source tree.
There are a few reasons why you might want to consider building your firmware into the kernel with CONFIG_EXTRA_FIRMWARE though:
Even if you have these needs there are a few reasons why you may not be able to make use of built-in firmware: