Intel Centrino Wireless-N 1030 on Linux

This wireless card came in my new Dell Inspiron 14z laptop, but I had to make a few changes for it to work correctly under Linux. I got this information from other posts scattered across the Internet, but I thought I would write them up here to save people some trouble. These changes were necessary under Linux 3.0.0-14-generic; they may not be required on newer versions. These fixes may be applicable to other wireless devices that use the iwlagn driver.

With power management and wireless-N enabled on my card, I get very poor connectivity. The device connects to the network, but rarely exceeds a download rate of over 1 kB/s.

First, power management needs to be disabled. You can check if power management is currently enabled by running iwconfig wlan0 from a terminal. This should output something like this:

wlan0     IEEE 802.11bg  ESSID:"Femto"
          Mode:Managed  Frequency:2.437 GHz  Access Point: 00:25:9C:45:94:56
          Bit Rate=54 Mb/s   Tx-Power=15 dBm
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=52/70  Signal level=-58 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:887   Missed beacon:0

To turn power management off manually, do

sudo iwconfig wlan0 power off

and type in your password. You can permanently disable power management by editing the file

/usr/lib/pm-utils/power.d/wireless

On line 39, change “power on” to “power off”. You will need root access to edit this file. (Use sudo.) Credit to this poster for discovering this fix!

Next, wireless-N needs to be disabled. It seems as though Intel and/or the kernel developers are still working on wireless-N support for this device. If you run dmesg | grep iwlagn to search the kernel’s log for messages from the card’s driver, you may see the message iwlagn: Microcode SW error detected., followed by several lines of debug data.

Disabling wireless-N will prevent this error from occurring. This change is not required if you know you will only be using wireless access points that do not support wireless-N. (For example if your access point says wireless-G somewhere on it.)

Type in these commands at a terminal:

sudo rmmod iwlagn
sudo modprobe iwlagn 11n_disable=1

This unloads the iwlagn kernel module, then re-enables it without wireless-N. If the 11n_disable option is not recognized, try 11n_disable50 instead. To permanently disable wireless-N, create a file /etc/modprobe.d/iwlagn.conf containing a single line:

options iwlagn 11n_disable=1

You will need to restart your computer or perform the temporary fix (using the rmmod and modprobe commands) for this change to take effect.

I hope this helps! Please comment with any questions or corrections.

Advertisements

3 thoughts on “Intel Centrino Wireless-N 1030 on Linux

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s