Ubuntu – Ralink 5390 card in laptop does not work after installing driver

10.10drivershpralinkwireless

I recently bought a HP g62x laptop for myself. It sports a decent Core i3 processor, 4 gigs of RAM and a 500GB HDD. It also came with Wireless-N, a real bonus because I am using a Wireless-N router. The WiFi chipset is a Ralink 5390. It came preinstalled with Windows 7, and everything works fine in there (obviously).

I then proceeded to install Ubuntu 10.10 x64 a few days ago (this is before Natty came out) and everything worked . . . except WLAN. So I plugged in via Ethernet and went looking and found that I clearly wasn't the first to discover this issue. I found a guide here that I followed to download the Ralink Linux driver (which is stated to support my chipset), configure, compile, and install. Everything went perfectly, I restarted; lo and behold, I have a list of access points. I went to connect to mine, entered the password, and now the animated "WiFi wave" logo keeps going indefinitely until you click it, and it freezes for a few minutes. It will unfreeze if you let it sit but clicking it causes the same freeze again.

I couldn't really care less about a WiFi icon freezing, but a.) it freezes everything else in the system up, not just the icon, and b.) it never actually completes the WiFi connection. Anyone knowledgeable in fixing issues like these that has an idea what to do, I would really appreciate it! I really, really don't want to be forced to use Windows because of a crappy WiFi driver!

Since Natty came out I installed that and I can't even compile the driver without fatal errors, so I reverted to 10.10 and everything is the same as it was before. Note that this is a clean Ubuntu 10.10 Desktop Edition 64-bit install, nothing updated/modified/changed besides (attempting) to install this driver.

Best Answer

The source code for the RT5390 driver is currently being managed through the Suse repositories, the link is here.

Ubuntuforums.org has instructions to compile the source code for Natty. I've reproduced the instructions here to complete the answer.

You'll see 64-bit (x86_64) and 32-bit (i586) packages listed. Download the openSUSE driver package - the source RPM, not the binary package: rt5390sta-2.4.0.4-6.2.src.rpm

Open your web browser's download directory and double-click the src RPM. Extract all files into a new directory named openSUSE_rt5390sta_driver

Open a terminal and sudo to root:

sudo su -
cd openSUSE_rt5390sta_driver
tar jxvf 2010_1216_RT5390_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO.tar.bz2
cd 2010_1216_RT5390_LinuxSTA_V2.4.0.4_WiFiBTCombo_DPO/
patch -p0 < ../rt5390sta-2.4.0.4-config.patch
patch -p0 < ../rt5390sta-2.4.0.4-WPA-mixed.patch
patch -p0 < ../rt5390sta-2.4.0.4-convert-devicename-to-wlanX.patch
patch -p0 < ../rt5390sta-2.4.0.4-remove-potential-conflicts-with-rt2860sta.patch 
patch -p0 < ../rt5390sta-2.4.0.4-return_nonvoid_function.patch
patch -p0 < ../rt5390sta-2.4.0.4-reduce_debug_output.patch
mv RT2860STA.dat RT5390STA.dat
vi os/linux/config.mk

Change HAS_ANTENNA_DIVERSITY_SUPPORT to: HAS_ANTENNA_DIVERSITY_SUPPORT=y

make
mkdir -p /etc/Wireless/RT5390STA
cp  RT5390STA.dat /etc/Wireless/RT5390STA/
cp -i os/linux/rt5390sta.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/
echo rt5390sta >> /etc/modules
echo "blacklist rt2800pci" >> /etc/modprobe.d/blacklist.conf
depmod -a