I have an ASUS eeePC 1000, running Ubuntu 10.10. Wireless worked flawlessly at home, which is where I use it 99% of the time. On our most recent trip, however, it wasn’t working. It couldn’t connect to a WPA-secured network. Here are the relevant error messages:
NetworkManager[770]: <warn> Activation (wlan0/wireless): association took too long.
NetworkManager[770]: <warn> (wlan0): link timed out.
NetworkManager[770]: <warn> Activation (wlan0) failed for access point (linksys)
NetworkManager[770]: <warn> Activation (wlan0) failed.
NetworkManager[770]: <info> (wlan0): deactivating device (reason: 0).
After a little googling on my phone, I found out that others had this problem with the rt2860sta wireless driver. Fortunately, there is a solution, which involved downloading the source code for the latest driver, modifying it a bit and rebuilding the driver. Here are the instructions:
Step 1: Download the driver
Download the latest rt2860sta driver.
Step 2: Rename and extract the downloaded file
Mine was named download.php
, but it’s really a tar file:
vinod@ike:~ $ mkdir test
vinod@ike:~ $ mv download.php test/driver.tar
vinod@ike:~ $ cd test/
vinod@ike:~/test $ tar xf driver.tar
vinod@ike:~/test $ mv 2010_07_16_RT2860_Linux_STA_v2.4.0.0 driver
vinod@ike:~/test $ cd driver
Step 3: Apply patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -urbB old/common/cmm_wpa.c new/common/cmm_wpa.c | |
--- old/common/cmm_wpa.c 2010-07-08 07:40:24.000000000 -0400 | |
+++ new/common/cmm_wpa.c 2011-08-30 18:27:46.856572005 -0400 | |
@@ -2420,7 +2420,7 @@ | |
UCHAR PrimaryRsnie; | |
BOOLEAN bMixCipher = FALSE; // indicate the pairwise and group cipher are different | |
UCHAR p_offset; | |
- WPA_MIX_PAIR_CIPHER FlexibleCipher = MIX_CIPHER_NOTUSE; // it provide the more flexible cipher combination in WPA-WPA2 and TKIPAES mode | |
+ WPA_MIX_PAIR_CIPHER FlexibleCipher = WPA_TKIPAES_WPA2_TKIPAES; | |
rsnielen_cur_p = NULL; | |
rsnielen_ex_cur_p = NULL; | |
diff -urbB old/os/linux/config.mk new/os/linux/config.mk | |
--- old/os/linux/config.mk 2010-07-09 04:58:09.000000000 -0400 | |
+++ new/os/linux/config.mk 2011-08-30 18:23:52.120572001 -0400 | |
@@ -8,10 +8,10 @@ | |
HAS_XLINK=n | |
# Support Wpa_Supplicant | |
-HAS_WPA_SUPPLICANT=n | |
+HAS_WPA_SUPPLICANT=y | |
# Support Native WpaSupplicant for Network Maganger | |
-HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n | |
+HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y | |
#Support Net interface block while Tx-Sw queue full | |
HAS_BLOCK_NET_IF=n |
Step 4: Backup old driver
vinod@ike~/test/driver/ $ sudo ifconfig wlan0 down
vinod@ike~/test/driver/ $ sudo rmmod rt2860sta
vinod@ike~/test/driver/ $ mkdir backup
vinod@ike~/test/driver/ $ sudo mv /etc/Wireless/RT2860STA backup/
vinod@ike~/test/driver/ $ sudo mv /lib/modules/2.6.35-30-generic/kernel/drivers/staging/rt2860/rt2860sta.ko backup/
Step 5: Install and activate new driver
vinod@ike:~/test/driver $ sudo make install
vinod@ike:~/test/driver $ sudo depmod -a
vinod@ike:~/test/driver $ sudo modprobe rt2860sta
```
### Step 6: Fix problems with hibernation
A separate problem is that wireless has been flaky when the computer
wakes from hibernation, but [it's also fixable](http://www.twentyways.com/2010/11/19/fixing-wireless-issues-with-asus-eeepc-1000he-running-ubuntu-10-10/).
Add the following lines to `/etc/modprobe.d/blacklist.conf`:
blacklist rt2800pci
blacklist rt2800lib
blacklist rt2x00usb
blacklist rt2x00pci
blacklist rt2x00lib
Create a new file called `/etc/pm/config.d/unload_wireless` with the following line:
SUSPEND_MODULES="rt2860sta"
Reboot and you should have WPA-compatible, hibernatable wireless.
### References:
1. [rt2860sta driver installation](http://www.ctbarker.info/2010/05/ubuntu-1004-wireless-chipsets-and-wpa.html)
2. [Proper hibernation](http://www.twentyways.com/2010/11/19/fixing-wireless-issues-with-asus-eeepc-1000he-running-ubuntu-10-10/)
3. [Ubuntu Forums thread](http://ubuntuforums.org/showthread.php?t=1476007)