Linux firmware

The Linux firmware package contains binary blobs of firmware necessary for partial or full functionality of certain hardware devices on Linux systems. These binary blobs are usually proprietary necessary because certain hardware manufacturers do not release source code necessary to build the firmware itself.

Modern graphics card from AMD and NVidia almost certainly require binary blobs to be loaded for the hardware to operate correctly.

Although integrated graphics on Intel CPUs do not need binary blobs, Intel Wi-Fi devices almost always do require blobs to be loaded.

Installation
For security reasons, hotloading firmware into a running kernel has been shunned upon. Modern init systems such as systemd have strongly discouraged loading firmware from userspace.

Kernel
A few kernel options are important to consider when building in firmware support for certain devices in the Linux kernel:


 * CONFIG_FW_LOADER : This option is provided for the case where none of the in-tree modules
 * CONFIG_FIRMWARE_IN_KERNEL : Enabling this option will build each required firmware blob specified by EXTRA_FIRMWARE into the kernel directly, where the  function will find them without having to make a call out to userspace.
 * CONFIG_EXTRA_FIRMWARE : This option is a string and takes the (space-separated) names of firmware files to be built into the Kernel. These files will then be accessible to the kernel at runtime.

Searching for loaded firmware
dmesg can be grepped to determine what firmware has been loaded: