Iwlwifi

iwlwifi is the wireless driver for Intel's current wireless chips.

Kernel
To make it work some kernel configuration is needed. The driver supports 802.11a/b/g/n/ac (depending on the device), so IEEE 802.11 should be enabled.

Device driver iwlwifi
Use this driver for Intel's current wireless chips. Set it as a module  as shown here. Also the correct DVM or MVM option according to the Module column of the firmware table is needed.

Firmware
Also firmware for the individual device is needed as listed in this table. It is available in and in device-specific sys-firmware/iwlxxxx-*ucode packages.

When using built-in configuration
In case the driver is built into the kernel instead as a module, also the firmware needs to be built into the kernel.

In this case replace  with the exact firmware name. Some attention seems to be needed for FW_LOADER_USER_HELPER_FALLBACK.

modprobe and modinfo
should return nothing:

Most information about the driver module can be obtained by

lspci
should display  for both   and.

The  identifier will be useful for grepping specific information from dmesg.

dmesg
Check the output of dmesg. Replace  with the info from lspci.

Troubleshooting

 * Linux firmware for iwlwifi ucode failed with error -2 from http://z-issue.com/wp/

Wireless not working

 * Intel Corporation Wireless 8260 (rev 3a) can't access the RSA semaphore it is write protected

Kernel not loading firmware on systemd
For systems using udev or systemd, it is imperative to configure the kernel to load binary blobs. In this case the wireless card's firmware is the firmware that needs loaded. More information on configuring the kernel in this manner can be found in the following thread on the Gentoo forums: FW_LOADER_USER_HELPER_FALLBACK.

External resources

 * http://www.linuxwireless.org/en/users/Drivers/iwlwifi
 * http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git
 * https://cateee.net/lkddb/web-lkddb/IWLWIFI.html
 * https://wiki.archlinux.org/index.php/Wireless_network_configuration#iwlwifi