Firmware - Debian Wiki
Wiki
FrontPage
RecentChanges
FindPage
HelpContents
Firmware
Wiki
Comments
Info
Attachments
Firmware
Translation(s)
Italiano
Português (Brasil)
The Debian project
took the decision
in October 2022
to create a new repository component
non-free-firmware
, and include its content on installation media from
DebianBookworm
to make things easier for our users. This change was implemented in February 2023, and all d-i releases and daily and weekly images since then include firmware.
For information about older releases, see
"Older releases"
Contents
What is firmware?
Using non-free firmware on a Debian system
Debian 12 (bookworm) and later
How to disable detection and use of non-free firmware
Older releases
Firmware during the installation
Firmware after installation
Firmware missing from Debian
Location of firmware files
Debian 8 "Jessie" and newer
Debian 7 "Wheezy", Debian 6.0 "Squeeze"
List of firmware in Debian
Free and Open Source boot firmware
Computer Firmware
Updating firmware
What is firmware?
Firmware refers to embedded software which controls electronic
devices. Well-defined boundaries between firmware and software do not
exist, as both terms cover some of the same code. Typically, the term
firmware deals with low-level operations in a device, without which
the device would be completely non-functional
(read more on
Wikipedia
Many devices require firmware to operate. Historically, firmware would
be built into the device's ROM or Flash memory, but more and more
often, a firmware image has to be loaded into the device RAM by a
device driver during device initialisation.
A few
firmware images are Free Software and Open Source but
unfortunately almost all of them are
non-free
which means that Debian cannot include them as normal in the archive
under
main
or
contrib
Using non-free firmware on a Debian system
Debian 12 (bookworm) and later
For Debian 12 onwards, all the packaged non-free firmware binaries
that Debian can distribute have been moved to a new component in the
Debian archive, called
non-free-firmware
. If you're upgrading
from an older release of Debian and you need these firmware binaries,
you should update the apt
sources.list
on your system to use
this new component. If you only had the
non-free
component
enabled on your system to allow you to install firmware, you can
safely remove that now.
Debian's installation and live images now include all of those
firmware packages. The system should automatically detect, load and
install the firmware available for your devices, where possible. There
are a
small
number of cases where Debian can't do this, typically
because of not being allowed to distribute the needed firmware
binaries.
If you are booting the Debian installer over the network, that will
not
include all the firmware packages in the initramfs. This is
a deliberate choice due to the extra space needed for all the firmware
here. Many/most users will already need to modify the initramfs when
setting up netboot, so an extra step here is reasonable. Adding the
firmware blobs to your initramfs is easy: simply grab the appropriate
cpio archive for your target release from
and append it
directly to the initramfs file.
How to disable detection and use of non-free firmware
Since Debian 12, the installer will automatically check for needed
firmware blobs and add them as required. If you would prefer it not
to do this, add
firmware=never
to the installer boot parameters as described in the
installation guide
On a Debian Live ISO, add
firmware=never live-installer/enable=false
to the installer boot parameters as described in the
Debian Installer Live Manual
Note: using firmware=never will also skip free firmware detection and installation, so you will have to do it manually if it is needed.
Older releases
For
Debian 11 (bullseye) and older
, Debian did not include firmware
on official installation and live images. The following sections are now of historical interest and
describe how firmware was used when installed those old releases of Debian.
Firmware during the installation
In some cases the installer detects the need for non-free firmware and
prompts the user to make the firmware available to the installer to
complete the installation. This can happen, for example, with wireless
network cards which often require non-free firmware to function (see
ipw2200
for an example).
Installation images with firmware
An easy method is to use an
installer image
that includes all
non-free firmware packages directly. See
Firmware on removable media
You can also
download the firmware archive
for your platform and
unpack it into a directory named
firmware
in the root of a removable
storage device (USB/CD drive). You can find firmware downloads for
your Debian version at
. When the installer
starts, it will automatically find the firmware files in the directory
on the removable storage and, if needed, install the required
firmware.
In some cases, firmware supplied on removable media may not be
detected automatically (e.g.
740503
). In these situations,
drop to the console (
Ctrl+alt+F2
) and manually
mount(8)
your removable storage on a temporary
directory (e.g.
/media
).
Firmware on removable media and preseeding
It is also possible to bypass the installer's searching and
installation process by
preseeding
and
providing the firmware files directly to the kernel:
The needed firmware files are assumed to be in a directory named firmware on a FAT partition formatted with
mkfs.vfat
and
labelled
FIRMWARE.
The following addition is made to the installer's kernel command line. It is a single command but has been broken here for readability. Press TAB when the installation choice is highlighted to make the command line visible. A variation on this technique is presented
elsewhere
Installation+Archive+USBStick
preseed/early_command="modprobe vfat ; sleep 2 ;
mount /dev/disk/by-label/FIRMWARE /media ;
cp -a /media/firmware /lib"
NetbootFirmware
- Firmware for Netbooting.
Once the network is configured, Debian-Installer can fetch firmware from Debian repositories.
Firmware after installation
The
isenkram
and other tools can prompt to install the
appropriate firmware and other hardware support packages when the
hardware is plugged in. This mostly
relies
on
packages declaring via
AppStream
what hardware they support. This
might not work for all firmware, so read on for another solution.
If you still see missing firmware console messages when the initramfs
is updated (for example whenever a kernel update is applied):
W: Possible missing firmware /lib/firmware/i915/skl_guc_62.0.0.bin for module i915
Then you can use
apt-file
or the
Debian package contents search
to look for the package that contains the firmware files, install it and then update the initramfs:
$ apt-file search skl_guc_62.0.0.bin
firmware-misc-nonfree: /lib/firmware/i915/skl_guc_62.0.0.bin
$ sudo apt install firmware-misc-nonfree
$ sudo update-initramfs -c -k all
Firmware missing from Debian
If the missing firmware is not available in Debian or if you still
see missing firmware console messages even when you have the right
firmware-* package installed, you can download and install the
firmware from the
linux-firmware
repository, e.g. for i915 firmware:
mkdir firmware
cd firmware
wget -r -nd -e robots=no -A '*.bin' --accept-regex '/plain/' https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915/
sudo mv *.bin /lib/firmware/i915/
sudo update-initramfs -c -k all
Location of firmware files
Debian 8 "Jessie" and newer
udev
used in Debian Jessie and later, only checks one directory for firmware files:
/lib/firmware
. See
729252
for details.
Debian 7 "Wheezy", Debian 6.0 "Squeeze"
Firmware is sourced from the following places (see
udev
's
/lib/udev/hotplug.functions
and
/lib/udev/firmware.agent
/lib/firmware/$(uname -r)
- Firmware provided by a package, specific for a kernel.
/lib/firmware/
- Firmware provided by a package, valid for all kernels.
/usr/local/lib/firmware
- Location for manually installed firmware.
/usr/lib/hotplug/firmware
- Firmware provided by a package, valid for all kernels
List of firmware in Debian
To find which package provides a given firmware file, you can use this search page:
Firmware/List
lists firmware distributed by Debian.
Free and Open Source boot firmware
Projects besides Debian can provide FOSS firmware for booting into your Debian system, projects such as coreboot.
We maintain a list on
Firmware/Open
- some (not all) of them are also packaged by Debian.
These projects offer an interesting alternative to many proprietary BIOS/UEFI firmware and other types of firmware. For example, they may provide certain advanced security features.
Computer Firmware
EFI/
UEFI
Found on most modern x86 PCs and servers, along with some ARM boards - (
wikipedia
BIOS
Found on older "IBM-PC" machines, generally most regular PCs and servers that were manufactured before 2011 - (
wikipedia
OpenFirmware
also known as
OpenBoot, Found on Sun SPARC systems, IBM Power, PowerPC-based Apple Macintosh, IEEE 1275-1994... (
wikipedia
Coreboot (LinuxBIOS)
Can be used on
some boards
and
tested under emulators
- (
wikipedia
PMON2000
Found on the
Lemote Yeeloong
and embedded devices
Updating firmware
Firmware can be
updated
using various methods.
CategoryPermalink
CategoryHardware
CategoryProprietarySoftware
Firmware (
last modified 2025-08-16 20:50:51
Changes made after 24 July 2025 00:00 UTC are available under
Creative Commons Attribution-ShareAlike 4.0 International
unless otherwise noted.
Debian
, Wiki
team
bugs
and
config
MoinMoin
and
Python
, with hosting provided by
Metropolitan Area Network Darmstadt
US