Iwlwifi/de

iwlwifi is [[Article description::the wireless driver for Intel's current wireless chips.]] Correct operation requires support from the kernel's wifi stack and card specific firmware loaded at run time.

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.

IEEE 802.11
Activate at least cfg80211 ( CONFIG_CFG80211 ) and mac80211 ( CONFIG_MAC80211 ).

iwlwifi brings its own rate control algorithm iwl-agn-rs, see.

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.

After rebuilding the kernel and rebooting with this kernel, the selected options can be verified as follows:

Firmware
Additional for the individual device is needed as listed in this table. Contemporary firmware is always available in the package. In case it is not in linux-firmware it might be found in device-specific sys-firmware/iwlxxxx-*ucode packages.

Upstream Intel instructions recommend adding all iwlwifi ucode to the kernel image. This is recommended for convenience, however it will bloat the kernel slightly.

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.

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

Optional: savedconfig
The  USE flag could be set for  in order to avoid unneeded stuff in.

As for example the Intel® Centrino® Advanced-N 6205 needs iwlwifi-6000g2a-ucode while anything else may be commented out or deleted.

In order to not lose these settings on next firmware update the version number needs to be removed:

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 identifier from  and   with the.

Kernel not loaded
Check if the correct kernel is loaded. This can be accomplished as follows (depends on the ):

Firmware issues

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


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

Wireless not working

 * Intel Corporation Wireless 8260 (rev 3a) can't access the RSA semaphore it is write protected
 * Intel Wireless-AC 9560 iwlwifi not working kernel 5.4.0
 * Linux kernel 5.6.0 iwlwifi bug
 * Intel Corporation Wi-Fi 6 AX200 (rev 1a). If getting dmesg message pci_enable_msi failed - -38 and the card shows Input/output error in spite of the correct firmware being loaded, then try enabling the Message Signaled Interrupts (MSI and MSI-X) kernel option (CONFIG_PCI_MSI)

No internet connection
If you can connect to an access point, but still can't connect to any server or get any connection to the internet it might be worth a try to disable 802.11n and/or enable software encryption. You can pass the  or   and/or   option to the   module. In order to pass the option automatically on module load create the file as follows:

"Microcode SW error detected. Restarting 0x0" message in kernel logs
This indicates that a severe error has been encountered by the WiFi adapter's micro-controller which led it to be reset. Consequences might be network drop outs and/and severe slow downs even after the connection to the AP has been restored. The root cause might be difficult to point out (platform own radio noise/buggy firmware/etc) however one of the very first things to try, even if the power management has been disabled for the iwlwifi module, is to prevent the WiFi adapter PCIe link to go in power save mode. This is accomplished by changing the  value used by the iwlmvm module to 1 (active):

Amongst additional countermeasures suggested on https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi disabling 40 MHz channels usage on the 2.4GHz band might also help:

Externe Ressourcen

 * https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi
 * https://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