I've been using a combo Wifi/Bluetooth Intel Centrino 6235 mini-pci wireless adapter on my laptop with Ubuntu 12.04 for many months without problem.
But since I've upgraded to Ubuntu Trusty 14.04 LTS and I've started to use Bluetooth audio, my wifi speed has dramatically dropped.
Wireless performances have become so bad that system seems to freeze for few seconds, web surfing is sluggish and file transfer can go down to 20 kB/s !
This problem seems to come from some kernel evolutions where default parameters for iwlwifi module have changed and are not suiting Intel Centrino 6235 wireless adapters.
This article explains how to get back normal performance on a Intel Centrino 6235 mini-pci wireless adapter under Ubuntu 14.04 LTS.
It has been tested on a Ubuntu Gnome 14.04 LTS Amb64 installation but should be applicable to any other 14.04 flavor.
To test whether your system is affected by this performance problem, first thing to do is to check that :
- you are running a recent kernel version, as only kernel versions 3.11.10+ seems to be affected
- you are using the iwldvm module
- your iwlwifi module recognizes new 11n_disable extended options
... Network controller : Intel Corporation Centrino Advanced-N 6235 [8086:088e] (rev 24)
# uname -a
Linux xxxxxxx 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
# lsmod | grep iwlwifi
iwlwifi 178135 1 iwldvm
cfg80211 521351 3 iwlwifi,mac80211,iwldvm
# modinfo iwlwifi
parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
If you are affected by this performance drop, you should notice that big file transfers are stating with some low speed (500 kB/s) and decrease slowly to some dramatic rate (around 50 kB/s ).
To solve this performance drop, we need to modify 3 options of iwlwifi module to :
- Re-enable TX AMPDU aggregation (that was disable by default for iwldvm devices)
- Disable an advanced technique that tries to minimize interferences between Wifi and Bluetooth signals
- Disable hardware encryption and use software encryption instead
Original configuration is :
# iwlwifi will dyamically load either iwldvm or iwlmvm depending on the
# microcode file installed on the system. When removing iwlwifi, first
# remove the iwl?vm module and then iwlwifi.
remove iwlwifi \
(/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
&& /sbin/modprobe -r mac80211
So, to restore previous performances, just replace this configuration with :
options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8
This file can be created with these commands :
# echo options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8 | sudo tee /etc/modprobe.d/iwlwifi.conf
You now need to unload/reload iwlwifi module (or to reboot your computer).
# sudo modprobe -r iwlwifi
# sudo modprobe iwlwifi
You should get back your normal Wifi speed on your Intel Centrino 6235 Wifi/Bluetooth adapter.
Hope it helps.