I'm installing the debian on my laptop for my first time and facing that problem:

Some of your hardware needs non-free firmware files to operate. The firmware can be loaded from removable media, such as a USB stick or floppy. The missing firmware files are: iwlwifi-3160-17.ucode. If you have media available now, insert it, and continue.

I've tried with Debian official image writing in ISO format as well as in DD format. I've added a necessary iwlwifi-3160-17.ucode file to the root of bootable device, but still no success, this file seems to be not visible to the installer. On debian wiki I've found

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

How can I do it? Or is there any other option?

5 Answers 5


Debian does not ship non-free firmware in its official distribution.

Fortunately, you can find Unofficial non-free images including firmware packages.

Use one of these images instead.

You specifically mention iwlwifi-3160-17.ucode isn't installed by your nonfree image.

I can see package firmware-iwlwifi version 20110315-3 in non-free contains this file. If you can get a terminal while running the non-free image, use this to find the package in your installation medium and install it:

dpkg -i $(find / -name firmware-iwlwifi*deb)

If you can't find this package, then consider downloading it directly, putting it on a USB, mounting that USB, then dpkg -i firmware-iwlwifi*deb from the USB.

  • I've tried it also, no success. Seems like this unofficial package still does not obtain the file I'm missing Commented Nov 4, 2021 at 7:53
  • If the missing firmware is the iwlwifi package, then you need the firmware at an earlier point in the installation process than you have access to dpkg (network config happens before package-manager setup). The ISOs that ship with non-free firmware unfortunately include only .deb files (not the .ucode that the installer requires). Is there a way to extract the required files from the .deb without dpkg?
    – mcwayliffe
    Commented Mar 29, 2022 at 13:44
  • apt is configured late, but dpkg is always available and doesn't depend on a network.
    – Stewart
    Commented Mar 30, 2022 at 6:24
  • @Stewart Ah, OK, I found it, although for some reason the binary was named udpkg. In the end, I needed to: 1. Go through the installer up to network config 2. Terminate network config prematurely 3. Drop to a console 4. udpkg -i $IWLWIFIDEB 5. Go back and re-run network config Is that how the ISO is intended to work? Needing to install the firmware from a .deb manually at a precise point in the install process seems non-intuitive, to say the least.
    – mcwayliffe
    Commented Mar 30, 2022 at 14:06
  • iwlwifi is a non-free package. Problems like this are caused by companies who insist on hiding everything about their hardware. Debian resists deploying closed-source binaries (hence non-free is not part of the official distribution) and does not put as much effort into hacking around these problems as other distros. Instead, focus is on the open-source stuff where efforts are spent improving things instead of working around private-company-policies. If the ease of using non-free is important to you, use another distro. Even better: don't buy closed hardware.
    – Stewart
    Commented Apr 1, 2022 at 9:19

Finally I've solved the issue following the instructions from wiki

I've added this to sources.list

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free

deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free

deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

And then with a wired connection:

apt update && apt install firmware-iwlwifi
modprobe -r iwlwifi
modprobe iwlwifi

Under certain conditions, you will see the message to provide drivers during installation even when using the image including firmware.

Some image writers will not deploy the Debian ISOs to USB media correctly. One case of this is Rufus in ISO mode (DD mode behaves correctly).

When using Rufus in ISO mode, the firmware folder on the resulting media will include all the expected .deb files with a file size of 0 bytes. Thus, the archives are useless during installation.

I found this issue reported on debianforum.de as well. If you're also running into this, re-create your installation media with a different approach.

  • 1
    The issue behind this is that the Debian maintainers used Rock Ridge symbolic links for a bunch of firmware files, and symbolic links are incompatible with FAT32. Symbolic links are fine for documentation or non critical files, but they should NEVER be used for firmware files or binaries that may be required for installation, because they just can't survive File System Transposition (i.e. the ability to extract content of a boot media using one file system and copy it to a different file system, which is a cornerstone of UEFI, and is what Rufus tries to use by default).
    – Akeo
    Commented Jan 14, 2023 at 21:42
  • @Akeo Highly appreciated context. Thanks a lot! Commented Jan 16, 2023 at 21:43

For anyone coming here in 2024+:

Starting from debian-12 "bookworm", official installation images do contain non-free firmware as well (see the official wiki statement). If the installer complains about some missing firmware, it's most probably optional as explained for example here and here. So unless you have a very recently released hardware, it should all work fine without any "missing files": just answer that you don't have any additional media and move on.

If however you do indeed need additional firmware, here are the official instructions how to prepare the medium and here is a trick to put them directly on the main installation medium, so that you don't need 2 separate USB sticks.


I've seen this message far too many times on Raspberry Pi. For those who don't know what it looks like, here it is: enter image description here

Notice how it says


If there is any parent directory to the firmware (like bnx2/) make sure it exists in /lib/firmware. If not, create it.

Next, mount your drive containing the firmware file(s) onto /mnt or something and copy them over to where the installer expects them, in this case /lib/bnx2/bnx2-mips-09-6.2.1b.fw (the installer lists the same file twice for some reason).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .