Linux firmware
Linux firmware is a collection of firmware binary blobs distributed alongside the kernel, necessary for partial or full functionality of certain hardware devices. These binary blobs were never permitted to include in a GPL'd work, but have been permitted to redistribute under separate cover.
Typical kinds of hardware requiring firmware:
- GPUs,
- Wired network adapters,
- Wireless network adapters,
- Bluetooth controllers,
- Sound cards—professional audio or onboard audio.
Installation
Install the linux-firmware meta package to pull all commonly used firmware. This is the recommended way for most users. To save some space you could opt into installing firmware only for individual hardware vendors your system use.
Primary packages pulled by linux-firmware:
- linux-firmware-amdgpu — AMD Radeon GPUs,
- linux-firmware-atheros — Qualcomm Atheros Wi-Fi and Bluetooth adapters,
- linux-firmware-broadcom — Broadcom and Cypress network adapters,
- linux-firmware-cirrus — Cirrus Logic audio devices,
- linux-firmware-intel — Intel audio devices, Bluetooth adapters, GPUs, network adapters, NPUs, webcams and other various devices,
- linux-firmware-mediatek — MediaTek and Ralink network adapters,
- linux-firmware-nvidia — NVIDIA GPUs and SoCs,
- linux-firmware-other — unsorted various devices,
- linux-firmware-radeon — ATI Radeon GPUs,
- linux-firmware-realtek — Realtek network and Bluetooth adapters.
Optional packages:
- linux-firmware-liquidio — Cavium LiquidIO server adapters,
- linux-firmware-marvell — Marvell network adapters,
- linux-firmware-mellanox — Mellanox Spectrum switches,
- linux-firmware-nfp — Netronome Flow Processors,
- linux-firmware-qcom — Qualcomm SoCs,
- linux-firmware-qlogic — QLogic networked devices.
Third-party packages:
- alsa-firmware — loader programs in alsa-tools and hotplug firmware loader, see ALSA#Firmware,
- sane-gt68xx-firmware — gt68xx-based scanners,
- sigrok-firmware-fx2lafw — FX2 logic analyzers,
- sof-firmware — Sound Open Firmware.
Tips and tricks
Detecting loaded firmware
Sometimes you want to know what firmware is loaded by your system, for debugging or to pick firmware packages to install.
That could be achieved using dynamic debug:
- Add
dyndbg="func fw_log_firmware_info +p"
to the kernel parameters. Note that the quotes may need to be escaped depending upon boot loader. - List loaded firmware with
# journalctl -kg 'loaded f'