22

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.

Jorge Castro
  • 71,754
  • 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: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/836250 – eskararriba Apr 09 '12 at 06: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 03 '12 at 03:32
  • Have you solved this question? – pl1nk Jun 24 '12 at 23:11
  • 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 02:32
  • This looks like a starting point to understand most answers. No Intel wifi -> no result. – Jan Groth Aug 20 '13 at 02:39
  • And here is an explanation what it does. – Jan Groth Aug 20 '13 at 02:48
  • I've posted a solution that let's you use wireless n without slowness! People assume you have to disable wireless n, but really you just need to tweak all the other settings! See: https://askubuntu.com/a/917923/10857 – hazrpg May 23 '17 at 01:16
  • 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 07:57

9 Answers9

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.

Jorge Castro
  • 71,754
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

Jorge Castro
  • 71,754
  • I dont know what this does but it works. you are brilliant, thank you! – Kaine McAliece Apr 21 '12 at 03:34
  • Had to restart for it to work and then it's perfect! – miguelv May 03 '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 07: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 07: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.

3

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.

David Foerster
  • 36,264
  • 56
  • 94
  • 147
  • To become superuser you need to run command: sudo passwd root – David V. Nov 07 '15 at 06:07
  • I am running ubuntu 20.04 with intel wireless AC 7260. I tried this, and it did seem to improve my wifi speed and connectivity. There are still some wifi networks I can't seem to connect to, but at least my problem is partially solved. – gannex Sep 16 '21 at 19:22
2

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.

David Foerster
  • 36,264
  • 56
  • 94
  • 147
Mukund
  • 2,102
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 :)

David Foerster
  • 36,264
  • 56
  • 94
  • 147
  • 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 07 '15 at 05: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 07 '15 at 05: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 07 '15 at 05: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 07 '15 at 05:45
2

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!)
hazrpg
  • 956
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.

  • Same here also in Ubuntu 21.04 with Intel 8265, very unstable performance compared to Windows. – rustyx Oct 09 '21 at 21:43