Solving connection issues with Intel Wireless-N 7265 under GNU/Linux.
If you buy a Thinkpad L450 with Intel Wireless-N 7265, you may have some trouble making it run under GNU/Linux:
This card is only supported by Linux kernel 3.13 or higher. When using Debian, this means you need at least Debian/Jessie.
You need a proprietary firmware. On Debian, you need the following package from the non-free section:
apt-get install firmware-iwlwifi
In a default setup as of 2015-02-23, you will experience a series of fast disconnects and reconnects, making the network almost unusable. Luckily, you can solve this issue by disabling some features of the card.
The following worked for me on Debian/Jessie with Linux kernel 3.16:
echo 'options iwlmvm power_scheme=1' >/etc/modprobe.d/iwlmvm.conf echo 'options iwlwifi bt_coex_active=N 11n_disable=1 swcrypto=1' >/etc/modprobe.d/iwlwifi.conf
After making these settings, either reload the kernel modules, or simply reboot.
If the above commands don't solve the issue for you, there is a linux-firmware bug tracker entry which provides a newer firmware for testing.
For reference, here are the log messages of a dysfunctional setup. The following messages are repeated over and over in dmesg (and thus /var/log/kern.log):
cfg80211: Calling CRDA to update world regulatory domain cfg80211: World regulatory domain updated: cfg80211: [...] wlan0: authenticate with **:**:**:**:**:** wlan0: send auth to **:**:**:**:**:** (try 1/3) wlan0: authenticated wlan0: associate with **:**:**:**:**:** (try 1/3) wlan0: RX AssocResp from **:**:**:**:**:** (capab=0x411 status=0 aid=1) wlan0: associated
Additionally, the following messages are repeated in /var/log/daemon.log:
wpa_supplicant[***]: wlan0: CTRL-EVENT-DISCONNECTED bssid=**:**:**:**:**:** reason=4 locally_generated=1 NetworkManager[***]: <warn> Connection disconnected (reason -4) wpa_supplicant[***]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD wpa_supplicant[***]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=DE NetworkManager[***]: <info> (wlan0): supplicant interface state: completed -> disconnected NetworkManager[***]: <info> (wlan0): supplicant interface state: disconnected -> scanning wpa_supplicant[***]: wlan0: SME: Trying to authenticate with **:**:**:**:**:** (SSID='***' freq=2412 MHz) NetworkManager[***]: <info> (wlan0): supplicant interface state: scanning -> authenticating wpa_supplicant[***]: wlan0: Trying to associate with **:**:**:**:**:** (SSID='***' freq=2412 MHz) NetworkManager[***]: <info> (wlan0): supplicant interface state: authenticating -> associating wpa_supplicant[***]: wlan0: Associated with **:**:**:**:**:** NetworkManager[***]: <info> (wlan0): supplicant interface state: associating -> 4-way handshake wpa_supplicant[***]: wlan0: WPA: Key negotiation completed with **:**:**:**:**:** [PTK=CCMP GTK=CCMP] wpa_supplicant[***]: wlan0: CTRL-EVENT-CONNECTED - Connection to **:**:**:**:**:** completed [id=0 id_str=] NetworkManager[***]: <info> (wlan0): supplicant interface state: 4-way handshake -> completed