iwlwifi is the wireless driver for Intel's current wireless chips. For older chips, there are other drivers:
The following devices are supported (since kernel version):
For more information on Intel Wireless products, please visit Intel Wireless.
There are four repositories that we maintain:
You can get the latest firmware from linux-firmware.git, or download it from the table below.
NOTE: this table contains only the first official firmware version released, which is only guaranteed to work with the kernel version specified in the table. To get the latest version for newer kernels, please use the firmware git tree instead.
|Intel® Wireless Wi-Fi 5150AGN||2.6.29+||iwldvm||iwlwifi-5150-ucode-188.8.131.52.tgz|
| Intel® Wireless Wi-Fi 5100AGN |
Intel® Wireless Wi-Fi 5300AGN
Intel® Wireless Wi-Fi 5350AGN
| Intel® Centrino® Advanced-N 6230 |
Intel® Centrino® Wireless-N 1030
Intel® Centrino® Wireless-N 130
Intel® Centrino® Advanced-N 6235
|Intel® Centrino® Advanced-N 6205||2.6.35+||iwldvm||iwlwifi-6000g2a-ucode-184.108.40.206.tgz|
| Intel® Centrino® Wireless-N + WiMAX 6150 |
Intel® Centrino® Advanced-N + WiMAX 6250
| Intel® Centrino® Ultimate-N 6300 |
Intel® Centrino® Advanced-N 6200
|Intel® Centrino® Wireless-N 1000||2.6.30+||iwldvm||iwlwifi-1000-ucode-220.127.116.11.tgz|
|Intel® Centrino® Wireless-N 100||2.6.37+||iwldvm||iwlwifi-100-ucode-18.104.22.168.tgz|
|Intel® Centrino® Wireless-N 135||3.2+||iwldvm||iwlwifi-135-ucode-22.214.171.124.tgz|
|Intel® Centrino® Wireless-N 105||3.2+||iwldvm||iwlwifi-105-ucode-126.96.36.199.tgz|
|Intel® Centrino® Wireless-N 2200||3.2+||iwldvm||iwlwifi-2000-ucode-188.8.131.52.tgz|
|Intel® Centrino® Wireless-N 2230||3.2+||iwldvm||iwlwifi-2030-ucode-184.108.40.206.tgz|
|Intel® Wireless 7260||3.10+||iwlmvm||iwlwifi-7260-ucode-220.127.116.11.tgz|
|Intel® Wireless 3160||3.10+||iwlmvm||iwlwifi-3160-ucode-18.104.22.168.tgz|
| Intel® Wireless 7265 |
Intel® Wireless 3165 (starting from firmware XX.XX.13.0 and kernel 4.1)
|Intel® Wireless-AC 8260||4.1+||iwlmvm||iwlwifi-8000-ucode-22.214.171.124.tgz|
|Intel® Wireless-AC 8265||4.6+||iwlmvm||iwlwifi-8265-ucode-22.361476.0.tgz|
|Intel® Wireless-AC 3168||4.6+||iwlmvm||iwlwifi-3168-ucode-22.361476.0.tgz|
|Intel® Wireless-AC 9260||4.14+||iwlmvm||iwlwifi-9260-th-b0-jf-b0-34.618819.0.tgz|
| Intel® Wireless-AC 9560 |
Intel® Wireless-AC 9461
Intel® Wireless-AC 9462
|Intel® Wi-Fi 6 AX200 160MHz||5.1+||iwlmvm||iwlwifi-cc-46.3cfab8da.0.tgz|
|Intel® Wi-Fi 6 AX201 160MHz||5.2+||iwlmvm||iwlwifi-Qu-48.13675109.0.tgz|
Where that appropriate location is depends (again) on your system distribution. You can typically find this location by looking in the udev scripts of your distro, the default on most distributions is /lib/firmware.
Installation of the firmware is simply:
# cp iwlwifi-*.ucode /lib/firmware
You can now load the driver.
If you have technical issues or general questions about Intel Wi-Fi on Linux, please context Intel Customer Support.
For bug reports and debugging, please see the page dedicated to that.
Those devices will not be supported by the newest firmware versions: the last firmware that was released for 3160, 7260 and 7265 is -17.ucode. Bug fixes will be ported to -17.ucode. 7265D, 3165 and 3168's latest firmware version is -29.ucode. In order to determine if your 7265 device is a 'D' version, you can check the dmesg output:
Detected Intel(R) Dual Band Wireless AC 7265, REV=0x210
The revision number of a 7265D device is 0x210, if you see any other number, you have a 7265 device.
The firmware necessary to support the devices is distributed separately under the firmware license.
Note that many distributions ship the firmware, you could install the “linux-firmware” package or similar. If that doesn't work, or you need newer firmware, read on.?
The driver loads the firmware using the kernel's firmware_class infrastructure. More information can be found under in the Documentation/firmware_class/README file in the kernel source. In order to function correctly the driver requires this to be enabled in your kernel. When you configure the kernel, you can find this option in the following location:
Device Drivers -> Generic Driver Options -> Userspace firmware loading support
You can determine if your kernel currently has firmware loader support by looking for the
definition on your kernel's
In addition to having the firmware_class support in your kernel, you must also have a working userspace infrastructure configured. The steps for installing and configuring this are very distribution specific and the tools differ, but distributions have this enabled.
Once you have the firmware loader in place (or if you aren't sure and you just want to try things to see if it works), you need to install the firmware file into the appropriate location.
We merge the updates coming from the backport infrastructure on a regular basis. This means that the bleeding edge of the backport tree will run against decently recent kernel (usually against Linus's tree). If you checkout an earlier branch / commit in backport-iwlwifi.git, you might not be able to work against the most recent kernel. Please keep that in mind. We have a release cycle based on the backport tree. These Core releases can be very useful for someone who wants to integrate our Wi-Fi solution into his home made system.
If you have a dual-boot machine with a recent version of Windows and start seeing problems during initialization of the WiFi device when booting Linux, the problem could be due to the “fast startup” feature on Windows.
With this feature enabled, Windows don't really shut down the entire system, but leaves things partially running so you can start the machine faster again. Try to disable this option, on Windows 10 it should be in “Control Panel→Hardware and Sound→Power Options→System Settings”, then disable the “Fast Startup” option in “Shutdown Settings”. This will cause Windows to fully shutdown and may solve the issue.
Wi-Fi heavily relies on radio frequencies, and those are subject to interference. Interference may come from another Wi-Fi device, or from many other non Wi-Fi devices (e.g. microwaves) that operates on the same frequency, and it might also come from other components of your own device/computer – this is known as 'platform noise'. Platform noise depends on the actual platform/computer and its design/manufacturing, and not on the Intel Wi-Fi module.
Some common sources of platform noise might be:
This kind of interference might happen on 2.4GHz band, it is much less likely to happen on 5.2GHz band. Also note that using 40MHz (and not 20MHz) channel bandwidth will increase the probability to suffer from platform noise (since more frequencies might impact the Wi-Fi performance).
Some potential work-around options to this issue:
The fact that one of these options helped doesn't prove that the issue being troubleshooted is 'platform noise', but it may be an indication.
Another thing that can be tried is to modify the antenna position. The antennas are typically located in the lid of the laptop. It is worth trying to open / close the lid or to rotate the system and see if it has any effect.
Our devices support monitor mode. When you have VHT APs around, you should load the iwlwifi module with
This will put lots of pressure on the memory subsystem, but it will allow you to hear 12K long packets. You may see firmware crashes in case you didn't set that module parameter.
Having Wi-Fi and Bluetooth running at the same time is a challenge. These scenarios have been tested thoroughly on 7260 and up, less so on earlier devices. This is why some people may face issues with devices that are handled by iwldvm. For users of these devices who have problems when Wi-Fi and Bluetooth are running concurrently, we suggest to disable BT Coex by loading iwlwifi with bt_coex_active=0 as a module parameter.
Starting from 3.17, power management has been disabled in iwldvm because users reported it improved the behavior and was a valid work around for issues. The commit that disabled power management is here.
To enable manually power management, you can set the following module parameters to these values: iwlwifi.power_save=Y and iwldvm.force_cam=N.