6.4. Loading Missing Firmware

As described in Section 2.2, “Devices Requiring Firmware”, some devices require firmware to be loaded. In most cases the device will not work at all if the firmware is not available; sometimes basic functionality is not impaired if it is missing and the firmware is only needed to enable additional features.

If a device driver requests firmware that is not available, debian-installer will display a dialog offering to load the missing firmware. If this option is selected, debian-installer will scan available devices for either loose firmware files or packages containing firmware. If found, the firmware will be copied to the correct location (/lib/firmware) and the driver module will be reloaded.

[Note] Note

Which devices are scanned and which file systems are supported depends on the architecture, the installation method and the stage of the installation. Especially during the early stages of the installation, loading the firmware is most likely to succeed from a FAT-formatted USB stick.

Note that it is possible to skip loading the firmware if you know the device will also function without it, or if the device is not needed during the installation.

debian-installer only prompts for firmware needed by kernel modules loaded during the installation. Not all drivers are included in debian-installer, in particular radeon is not, so this implies that the capabilities of some devices may be no different at the end of the installation from what they were at the beginning. Consequently, some of your hardware may not be being used to its full potential. If you suspect this is the case, or are just curious, it is not a bad idea to check the output of the dmesg command on the newly booted system and search for firmware.

6.4.1. Preparing a medium

Official installation images do not include non-free firmware. The most common method to load such firmware is from some removable medium such as a USB stick. Alternatively, unofficial installation images containing non-free firmware can be found at https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/. To prepare a USB stick (or other medium like a hard drive partition), the firmware files or packages must be placed in either the root directory or a directory named /firmware of the file system on the medium. The recommended file system to use is FAT as that is most certain to be supported during the early stages of the installation.

Tarballs and zip files containing current packages for the most common firmware are available from:

Just download the tarball or zip file for the correct release and unpack it to the file system on the medium.

If the firmware you need is not included in the tarball, you can also download specific firmware packages from the (non-free section of the) archive. The following overview should list most available firmware packages but is not guaranteed to be complete and may also contain non-firmware packages:

It is also possible to copy individual firmware files to the medium. Loose firmware could be obtained for example from an already installed system or from a hardware vendor.

6.4.2. Firmware and the Installed System

Any firmware loaded during the installation will be copied automatically to the installed system. In most cases this will ensure that the device that requires the firmware will also work correctly after the system is rebooted into the installed system. However, if the installed system runs a different kernel version from the installer there is a slight chance that the firmware cannot be loaded due to version skew.

If the firmware was loaded from a firmware package, debian-installer will also install this package for the installed system and will automatically add the non-free section of the package archive in APT's sources.list. This has the advantage that the firmware should be updated automatically if a new version becomes available.

If loading the firmware was skipped during the installation, the relevant device will probably not work with the installed system until the firmware (package) is installed manually.

[Note] Note

If the firmware was loaded from loose firmware files, the firmware copied to the installed system will not be automatically updated unless the corresponding firmware package (if available) is installed after the installation is completed.

6.4.3. Completing the Installed System

Depending on how the installation was performed, it might be that the need for some firmware was not detected during installation, that the relevant firmware was not available, or that one chose not to install some firmware at that time. In some cases, a successful installation can still end up in a black screen or a garbled display when rebooting into the installed system. When that happens, the following workarounds can be tried:

  • Pass the nomodeset option on the kernel command line. This might help boot into a fallback graphics mode.

  • Use the Ctrl+Alt+F2 key combination to switch to VT2, which might offer a functional login prompt.

Once logged in into the installed system, it is possible to automate the detection of missing firmware, and to perform the required steps to enable them following this procedure:

  1. Install the isenkram-cli package.

  2. Run the isenkram-autoinstall-firmware command as the root user.

Usually, rebooting is the simplest way to make sure all kernel modules are properly initialized; that's particularly important when one has booted the system with the nomodeset option as an interim measure.

[Note] Note

Installing firmware packages is very likely to require enabling the non-free section of the package archive. As of Debian GNU/Linux 11.0, running the isenkram-autoinstall-firmware command will do that automatically by creating a dedicated file (/etc/apt/sources.list.d/isenkram-autoinstall-firmware.list), pointing at a generic mirror.