Ubuntu – Poor Wi-Fi performance : Intel PRO/Wireless 3945ABG

13.04driverswireless

here is the situation: Ubuntu 13.04, wireless adapter: intel PRO/Wireless 3945ABG [Golan]. Wireless driver: iwl3945.

The problem is that wireless performance is less than satisfactory. I can connect to any wireless network without difficulty but the transfer speed is way worse than it should be. A quick test on speedtest.net shows that I get about half the speed I used to get with the same laptop in windows environment (FYI the laptop had windows7 until last week and used to connect to the very same wireless network). Furthermore (like if that wasn't enough..), when copying files across the local network the speed is also far from pleasing… much slower it used to be. As a result, streaming a media file stored on another computer or device on the network is impossible. As this is what I'm primarily using this laptop for, it's a real pain that I can't get it working correctly.

What I've done so far:
I tried disabling hardware scan:

    modprobe -r iwl3945 
    modprobe iwl3945 disable_hw_scan=1

but this didn´t work so I didn´t bother making it permanent.

I also tried replacing the network manager with wicd – didn't help at all.

So what could it be?

Here´s the output of lshw -C network:

    icefire@Toshiba:~$ sudo lshw -C network
    [sudo] password for icefire: 
    *-network               
    description: Ethernet interface
    product: RTL8101E/RTL8102E PCI Express Fast Ethernet controller
    vendor: Realtek Semiconductor Co., Ltd.
    physical id: 0
    bus info: pci@0000:02:00.0
    logical name: eth0
    version: 02
    serial: 00:1e:33:5d:46:ab
    size: 10Mbit/s
    capacity: 100Mbit/s
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical  tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
    configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-        NAPI duplex=half latency=0 link=no multicast=yes port=MII speed=10Mbit/s
    resources: irq:44 ioport:4000(size=256) memory:d0010000-d0010fff memory:d0000000-d000ffff

    *-network
    description: Wireless interface
    product: PRO/Wireless 3945ABG [Golan] Network Connection
    vendor: Intel Corporation
    physical id: 0
    bus info: pci@0000:03:00.0
    logical name: wlan0
    version: 02
    serial: 00:1f:3c:ae:d0:ea
    width: 32 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
    configuration: broadcast=yes driver=iwl3945 driverversion=3.8.0-19-generic firmware=15.32.2.9 ip=192.168.1.20 latency=0 link=yes multicast=yes wireless=IEEE 802.11abg
    resources: irq:46 memory:d4200000-d4200fff

Here´s what iwconfig outputs:

    icefire@Toshiba:~$ iwconfig
    wlan0     IEEE 802.11abg  ESSID:"dd-wrt"  
      Mode:Managed  Frequency:2.437 GHz  Access Point: 00:26:5A:B1:62:EE   
      Bit Rate=54 Mb/s   Tx-Power=15 dBm   
      Retry  long limit:7   RTS thr:off   Fragment thr:off
      Power Management:off
      Link Quality=61/70  Signal level=-49 dBm  
      Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:6  Invalid misc:224   Missed beacon:0

     lo        no wireless extensions.

     eth0      no wireless extensions.

and ifconfig:

    icefire@Toshiba:~$ ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:1e:33:5d:46:ab  
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

     lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:65536  Metric:1
      RX packets:554 errors:0 dropped:0 overruns:0 frame:0
      TX packets:554 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:63267 (63.2 KB)  TX bytes:63267 (63.2 KB)

    wlan0     Link encap:Ethernet  HWaddr 00:1f:3c:ae:d0:ea  
      inet addr:192.168.1.20  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::21f:3cff:feae:d0ea/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:9773 errors:0 dropped:0 overruns:0 frame:0
      TX packets:6310 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:10377083 (10.3 MB)  TX bytes:1143412 (1.1 MB)

Best Answer

You could be seeing slightly different symptoms of the same wireless N problem that I was having with my Intel card. This is what fixed mine (reference Why does my wifi Internet intermittently disappear?):

Try typing the following commands at a terminal. These will turn off your ethernet port and disable the wireless N in the wifi driver. It is not permanent and will revert the next time you reboot:

sudo ifconfig eth0 down
sudo modprobe -r iwlwifi
sudo modprobe iwlwifi 11n_disable=1

If that works for you, there's a bash script on my Github that you can download and run each time you reboot: https://github.com/FreedomBen/handy-bash-scripts/blob/master/fixTheInternet.bash

I have this script on my desktop and I just run it each time I reboot. I haven't had any issues since.

Note: You will have to make the script executable. At a terminal, type:

cd path/to/script
chmod +x fixTheInternet.bash
Related Question