21

I have looked through all the previous questions but turning power management off for the Wi-Fi card didn't work. This problem seems to be with the Lenovo Thinkpads. I switched to Ubuntu 11.10 from Windows 7 3 days ago so I'm new to the operating system.

  • got the same problem - a terribly slow wireless connection - on a thinkpad e420s. you'll probably have the same issue I have with the intel centrino card; type sudo lspci -nn in a terminal and see "network controller". if you've got this card, see the bugreport here: bugs.launchpad.net/ubuntu/+source/linux/+bug/836250 – eskararriba Apr 9 '12 at 6:34
  • good post, can you tell me what the instructions actually doing? are these instructions for a specific wireless card? if you made your answer a bit more specific you can post the answer to your own question and accept it :) – amc May 3 '12 at 3:32
  • Have you solved this question? – pl1nk Jun 24 '12 at 23:11
  • I followed the last instructions in this post. It solved the issue on my Shuttle XS35 (Atom D510) with Ubuntu 12.04 from a starving speed of 0,91 Mbps to 8,74 Mbps (9x quicker). – cblanquer Jun 27 '12 at 7:57
  • 1
    I don't understand why no one here bothers to explain what all these commands actually do? Posting instructions like "on ubuntu x.xx copy this code into a terminal" is not helpful at all, isn't it? If you cannot provide an explanation please don't answer. – jan groth Aug 20 '13 at 2:32
20

OP Posted:

  • Note1: The slow connection can be due to your service provider or any other reason, to check it, try the same network by any other computer with different OS or by connection to the network by a cable. If it is fast, this solution can help you. If not, it can be wasting of time!*

  • Note2: In the first link in the References I put, there are more methods to solve the slow wireless connection. Each method solves different possible reason of the slow connection. I recommend to test the solution I put here before searching for different methods because it is most probably effective.*


If you are using Ubuntu 11.10, do the following:

open terminal. Type the following two lines:

sudo rmmod -f iwlagn
sudo modprobe iwlagn 11n_disable=1

Now, check your wireless Internet speed. If it is still slow, this solution is probably not a solution for your case. In this case, just restart the computer to revert the change you did. If it becomes normal and fast, do it permanently by typing the following line in the terminal:

gksudo gedit /etc/modprobe.d/iwlagn-disable11n.conf

A file will be opened. At the end of the file, paste the following line then save:

options iwlagn 11n_disable=1

After saving, just quit, and ENJOY!


Solution for Ubuntu 12.04:

open terminal. Type the following two lines:

sudo rmmod iwlwifi
sudo modprobe iwlwifi 11n_disable=1

Now, check your wireless Internet speed. If it is still slow, this solution is probably not a solution for your case. In this case, just restart the computer to revert the change you did. If it becomes normal and fast, do it permanently by typing the following line in the terminal:

gksudo gedit /etc/modprobe.d/iwlwifi-disable11n.conf

A file will be opened. At the end of the file, paste the following line then save:

options iwlwifi 11n_disable=1

After saving, just quit, and ENJOY!


References:

*I tried both solutions and they work.

  • I have to note that this solution works for shared wifi connection too. I had uplink speed about 2Mbits, but shared wifi as slow as 40kbits. Doing this on both machines did work. (probably the leecher machine was to blame) – culebrón Feb 1 '14 at 4:13
  • 1
    Valid still for 14.10. If you receive "ERROR: Module iwlwifi is in use by: iwlmvm", use "sudo rmmod iwlmvm" – Turtles Are Cute Apr 13 '15 at 17:15
  • After using modprobe, I couldn't connect to wireless at all. Turns out I had do to this to get around another bug, but afterwards, this definitely solved my problems as well. – Izkata Nov 28 '16 at 5:13
10

I solved this for myself by using the instructions here.

in a terminal, write:

echo "options iwlagn 11n_disable=1" | sudo tee /etc/modprobe.d/iwlagn.conf
sudo modprobe -rfv iwlagn
sudo modprobe iwlagn

For 12.04 and newer: change options iwlagn 11n_disable=1 to options iwlwifi 11n_disable=1

  • I dont know what this does but it works. you are brilliant, thank you! – Kaine McAliece Apr 21 '12 at 3:34
  • Had to restart for it to work and then it's perfect! – miguelv May 3 '12 at 22:28
  • I don't have a iwlagn.conf in modeprobe.d, should I create one? btw I'm using 12.04 – shengy Oct 10 '12 at 12:52
  • "For 12.04, change options iwlagn 11n_disable=1 to options iwlwifi 11n_disable=1" - ok, but should we still edit iwlagn.conf or iwlwifi.conf ? – sylvainulg Apr 16 '13 at 7:22
  • 2
    For the record, that disables the "n" flavour of the 802.11 (aka WiFi) protocol, which is buggy on intel chipsets. Check the output of "iwconfig wlan0" before and after issueing those commands. It should start with "IEEE 802.11abgn" before and just "802.11abg" after. – sylvainulg Apr 16 '13 at 7:24
4

For 12.04, change:

options iwlagn 11n_disable=1

To:

options iwlwifi 11n_disable=1
4

This bug affects my laptop with Centrino Ultimate-N 6300 as well. The only thing that helped was turning on the swcrypto parameter. My /etc/modprobe.d/iwlwifi.conf now looks like this:

options iwlwifi 11n_disable=1 led_mode=1 swcrypto=1

And I can use wifi without problems. However, the fact that n-networks can not be used remains annoying.

  • Has this been corrected in Ubuntu 15 yet? – Jonathan Apr 27 '15 at 23:48
2

These commands helped and worked for me, Kubuntu 15.10 (wily), My Intel Wifi Adapter (Intel Corporation Centrino Wireless-N 1000) went to mostly full speed from a crawl (snail speed):

echo options iwlwifi 11n_disable=1 | sudo tee /etc/modprobe.d/iwlagn.conf
echo options iwlwifi 11n_disable=1 | sudo tee /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwlwifi
sudo modprobe iwlwifi
apt-get update

I had so much difficulty at first to find this, I hope it helps someone out there, it was so slow at first, when I installed Linux (Kubuntu), it was driving me crazy :)

  • My wifi cutout again and I did more research to find out that you can edit the line to: options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1 – David V. Nov 7 '15 at 5:34
  • I made a text file in my documents folder named iwlwifi.conf and added the original commands and the added line mentioned in the previous comment to read: # /etc/modprobe.d/iwlwifi.conf # 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 options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1 – David V. Nov 7 '15 at 5:42
  • Then save the document and run konsole and enter the commands su cp /home/[replaceyourusernamehere]/Documents/iwlwifi.conf /etc/modprobe.d/iwlwifi.conf After that my wifi started to work faster than before when I just entered: options iwlwifi 11n_disable=1 – David V. Nov 7 '15 at 5:44
  • ****I DID NOT DO THIS PART BELOW BUT IT MAY WORK**** You may need to still possibly run the commands as: su echo options options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1 | sudo tee /etc/modprobe.d/iwlwifi.conf sudo modprobe -rfv iwlwifi sudo modprobe iwlwifi apt-get update I was still getting error module iwlwifi was in use when I previously ran: sudo modprobe -rfv iwlwifi. Let me know if this works for you or not in the comments. – David V. Nov 7 '15 at 5:45
1

After several years of being unable to utilise 801.11n on my laptop. I found a solution that genuinely fixes this problem! This seems to be the best possible solution because you can still use bluetooth, and also access networks via 801.11n too without any problems (I'm getting ~70Mbps).

Enter the following commands into a terminal:

echo options iwlwifi bt_coex_active=0 swcrypto=1 11n_disable=8 | sudo tee /etc/modprobe.d/iwlwifi-disable11n.conf

sudo modprobe -r iwlwifi

sudo modprobe iwlwifi

Here's an explanation as to what we're doing:

  • swcrypto=1 switches hardware encryption for software encryption.
  • bt_coex_active=0 turns off the auto-interference feature between bluetooth and wifi off - this is most likely the true cause of problems.
  • 11n_disable=8 enables TX AMPDU aggregation.

What bt_coex_active actually does when it is enabled is essentially "muting" the wifi whenever the system thinks the bluetooth frequency is being used - but in buggy implementations, it assumes that that the bluetooth is always transmitting, thus capping the wifi permanently.

Most people opt to changing the default file /etc/modprobe.d/iwlwifi.conf but personally I prefer putting it into a separate file so that it can be undone if need be. If you've tried previous tweaks, please check that your file is reverted back to the default settings. For reference mine is (on Ubuntu 16.04):

# /etc/modprobe.d/iwlwifi.conf
# 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

If this doesn't work for you, please run:

sudo rm /etc/modprobe.d/iwlwifi-disable11n.conf

Sources:

https://superuser.com/a/924560/135819

My Usage (your milage may vary):

  • OS: Ubuntu 16.04 (will work on newer and older version too!)
  • Hardware: Intel Corporation Centrino Wireless-N 1000 [Condor Peak] (but will work on similar models, e.g. Intel Centrino 6235!)
1

UPDATE: It somehow ended up not connecting again so I did more research here is what I found:

Restore the original iwlwifi commands in the file iwlwif.conf (may not be necessary to restore the original commands in the iwlwifi.conf file) in /etc/modprobe.d/iwlwifi.conf and pasted this line at the end:

options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1

To restore the file you can make a new text file in your documents named iwlwifi.conf and add the command lines:

# /etc/modprobe.d/iwlwifi.conf
# 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

options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1

Then save the document and run konsole and enter the commands

sudo cp /home/[replaceyourusernamehere]/Documents/iwlwifi.conf /etc/modprobe.d/iwlwifi.conf

After that my wifi started to work faster than before when I just entered:

options iwlwifi 11n_disable=1

Note: the above just worked for me where I copied the file using superuser. I did not do this part below but it may or may not work.

You may need to still possibly run the commands as:

echo options options iwlwifi 11n_disable=1 bt_coex_active=0 power_save=0 auto_agg=0 swcrypto=1 | sudo tee /etc/modprobe.d/iwlwifi.conf
sudo modprobe -rfv iwlwifi
sudo modprobe iwlwifi
apt-get update

I was still getting error module iwlwifi was in use when I previously ran:

sudo modprobe -rfv iwlwifi.

Let me know if this works for you or not in the comments.

  • To become superuser you need to run command: sudo passwd root – David V. Nov 7 '15 at 6:07
1

Open a terminal (Alt+Ctrl+T) and type:

sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1

Now check if the speeds have improved. If yes lets make it permanent.

  1. Open /etc/modprobe.d/iwlwifi_disable11n.conf as super-user, e. g.:

    gksudo gedit /etc/modprobe.d/iwlwifi_disable11n.conf
    
  2. Add the following line to the end of the file:

    options iwlwifi 11n_disable=1
    
  3. After that, save it and quit!

In case you get an error like

ERROR: Removing 'iwlwifi': No such file or directory

replace iwlwifi with iwlagn in the above commands and try again.

0

I am using Ubuntu 18.04LTS with kernel version 5.0.0-27-generic and Intel wireless 7265 card. I still see the problem even after using "iwlwifi 11n_disable=1 swcrypto=1 11n_disable=8 bt_coex_active=0 auto_agg=0" in /etc/modprobe.d/iwlwifi.conf. I tried various combinations of driver options and kernel versions. (mostly 4.15.x)

At this point, I gave up. The problem not only causes the laptop wifi to slow down, it slows down entire wifi system. Looking at Unifi's analysis, it brings down entire wifi network to it's knee.

I went with the hardware solution - added a wifi network without N. I brought out a Apple AirPort, and set to not use "N" mode. I have a primary wifi using Ubiquity Unifi. So, the Intel wifi points to wifi without N and other machines and phones use a/g/n network and everything works fine. I also ordered a Broadcom chipset wifi card so when it comes, I'll swap out the Intel wifi with it and I don't have to worry about this ever again. It took me multiple days of experiement to get to this point, and it's just not worth fiddling around buggy driver for me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.