Skip to main content
Illustration for the linux firmware packages explained guide

Linux Firmware Packages Explained

Why Linux separates kernel drivers from device firmware, how linux-firmware is distributed, and what missing blobs mean for hardware support.

By Sarah Jenkins Updated 2024-03-01Reviewer: Sarah Jenkins (2024-05-11)

Linux commonly places open-source driver code in the kernel while distributing binary device firmware as files loaded after hardware discovery.

Topic 1

Driver and firmware boundary

The kernel driver runs on the host CPU and manages buses, memory, and operating-system interfaces. A firmware blob runs on a controller inside Wi-Fi, Bluetooth, graphics, or other hardware. The two components follow different release and licensing paths.

Topic 2

linux-firmware contents

The linux-firmware project collects redistributable blobs from many hardware vendors. Distributions package snapshots under /lib/firmware, often with compression. Kernel log messages name the exact path requested when a driver expects a blob that is not present.

Topic 3

Version relationships

A newer kernel can introduce support that expects a newer firmware file, while a vendor may require a minimum kernel interface for newer firmware. Distribution backports complicate simple version comparisons, making package provenance part of the compatibility picture.