3

Ubuntu 12.04.1 with all updates installed. Laptop Lenovo Thinkpad X230 with Intel Corporation Centrino Advanced-N 6205.

WiFi sometimes becomes extremely slow. Often this occurs when I wake the system from suspend and connect to a different network. I find no obvious clues in system logs. /etc/init.d/network-manager restart doesn't help, but a reboot does. How can I go on with debugging this issue? In specific, which parts of the system should I try to restart (without a complete reboot)?

I know of problems with Intel WiFi (see for example this question and the instructions here), but if that was the problem, I would expect the WiFi to be slow at all times, and not just sometimes. Also, I have a gut feeling that it might be a DNS issue (for example, getting a page from a known server is faster than accessing a new server), but I don't know how to tackle it.

Update: despite numerous updates in the meanwhile, I still observe this behavior. It happens always when I access my WiFi router at home after returning from work; when I reboot my laptop, the connection speed is good again.

EDIT: I have found the problem! While at work, I use a Cisco-compatible VPN client to connect to intranet (without it, I only have Internet access); package vpnc. The problem appears if and only if I turn on VPN at work, put the computer to sleep, and wake it at home. The vpnc client does not run any longer, but apparently some configuration still lingers (I will dive into that over the next weeks). When at home and I run another vpn connection, and then disconnect with vpnc-disconnect, my problem disappears. The 11n_disable option has no influence on this behavior.

I thank both contributors with an upvote, but -- sorry -- not with the bounty. However, the bounty is still to have for the person who will either explain to me what is happening or give me a guide how to debug the vpnc problem.

January
  • 35,952

3 Answers3

4

The problem is most likely with the driver. Others have experienced problems with the iwlwifi driver when its 802.11n mode is enabled. To disable this mode, create a file named something like /etc/modprobe.d/iwlwifi-disable11n.conf with contents

options iwlwifi 11n_disable=1

and then reboot.

Wireless drivers sometimes don't implement power management very well. You could try adding power_save=0 to that line to see if it helps.

options iwlwifi 11n_disable=1 power_save=0
jdthood
  • 12,467
  • Why should the OP reboot? It shuld be sufficient to rmmod the module and to modprobe it again: rmmod iwlwifi && modprobe iwlwifi. – qbi Nov 06 '12 at 20:06
  • He can try to rmmod the module and modprobe it again, but, first, it's not always possible to rmmod a module. Second, a common driver shortcoming is failing to set registers that should be set. If the iwlwifi driver happens to have that shortcoming and a register has got into an incorrect state then the only way to reset it is to reboot. (Sometimes it's necessary to go further — to power down and take out the battery — in order to reset such registers.) – jdthood Nov 06 '12 at 21:24
  • OK, I have disabled 11n and reloaded the module w/o rebooting. This does not appear to have an effect. Since rebooting always helps anyways, I will keep that option as well as the power_save=0 and see what happens over the next days. As I mentioned, the problem is intermittent, which makes debugging problematic. – January Nov 07 '12 at 19:24
  • With power_save=0, the laptop doesn't wake up from suspend. – January Nov 08 '12 at 06:22
  • chili555 points out in a new answer that the default power_save value is 0 (or more correctly, N, but 0 is a synonym for N when setting boolean parameters), so setting this parameter to 0 probably wasn't the cause of the failure to wake up. – jdthood Nov 08 '12 at 16:53
1

In modinfo iwlwifi, power_save is set to disabled by default. As well, the parameter is boolean (Y or N) and not an integer (0 or 1).

The module will likely remove correctly with:

    sudo modprobe -r iwlwifi && sudo modprobe iwlwifi 11n_disable=1
chili555
  • 60,188
  • You are right that the default is "disabled". And yes, the parameter is boolean, but when setting it, 1 is synonymous with Y, 0 with N. Just tested this to make sure. – jdthood Nov 08 '12 at 16:51
1

This was a while ago but the last time I used a Cisco VPN client like that. I would have bad routes.

Sleeping the laptop while connected, then not reconnecting when it woke up left me with a bad route. This could be happening to you.

I would start by checking your static route table. Then if you still have a route to your VPN network deleting it manually.

See this link for examples of removing routes.

Like I said it's been a while for me, but I would always get a stale route. That stale route would make things run REALLY slowly on first connect (at the IP level not the client level). Basically it seemed like the network was running slow for no good reason.

If removing the route works, your can try adding the route removal script to either network manager (for starting new connections to "HOME") or to your wake from sleep scripts (vpnc should re-add the route when you connect which you would have to do after sleep anyway).

coteyr
  • 18,288