Linux firmware - ArchWiki

Jump to content

# Linux firmware

From ArchWiki

Related articles

- Kernel
- Microcode
- fwupd

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 uses.

Warning Lack of necessary firmware could make your system inoperable.

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 The quotes may need to be escaped depending upon boot loader.

- List loaded firmware after modifying the kernel parameters:

    # journalctl -kg 'loaded f'

    Jan 01 00:00:00 example kernel: amdgpu 0000:03:00.0: Loaded FW: amdgpu/psp_13_0_0_sos.bin, sha256: SHA_sum
    Jan 01 00:00:00 example kernel: amdgpu 0000:6d:00.0: Loaded FW: amdgpu/vcn_3_1_2.bin, sha256: SHA_sum
    …
    Jan 01 00:00:00 example kernel: bluetooth hci0: Loaded FW: mediatek/BT_RAM_CODE_MT7922_1_1_hdr.bin, sha256: SHA_sum
    Jan 01 00:00:00 example kernel: mt7921e 0000:0a:00.0: Loaded FW: mediatek/WIFI_RAM_CODE_MT7922_1.bin, sha256: SHA_sum
    …

## See also

- Gentoo:Linux firmware

Categories:

- Hardware
- Kernel

Linux firmware
Add topic