If you’ve used the Ralink RT73 chipset under Ubuntu for any length of time, you’ll know that the default drivers aren’t yet perfect (some supporting evidence). Some may have had more success, but in my experience they drop out regularly and transfer rates are pretty mediocre. The modules used are the rt2x00usb and rt73usb. These are the next generation of Ralink drivers from Serialmonkey, and to be fair they have improved a great deal over the past couple of years. However, there is a more stable driver, which, although requiring some sacrifice, rewards the user with good injection support, great transfer speeds and no drop-outs.

Step forward the rt73 legacy driver….

This “legacy” driver is still supported by Serialmonkey, as I myself witnessed when I found the module no longer compiled on Intrepid’s kernel. Vern, one of the developers, fixed the issue and the module now compiles without complaints. I was approached on the forum by someone wanting to know how to go about using this older module so I thought I’d write a quick how to. There is one already on the ubuntu forums, but it is a little dated and doesn’t include details about WICD.

First the bad news. The legacy driver doesn’t work with network-manager. This is more of a shame now network manager has actually started to justify its extra cpu usage, with decent support for mobile network connections, but there are ways to configure and use those without it.

The howto:

First download the tar.gz file for the rt73 driver (you can find it on the downloads page of the rt2x00 site).

Next download WICD. There is a .deb available. I can’t get version 1.5.3 to work, but others have not had problems. There’s probably a .deb of version 1.4.x floating around the net, if not I have one somewhere (update: here). I personally have to alter the file /opt/wicd/networking.py in version 1.4.2 to get it to work (I comment out line 365 which puts the interface down), but again no-one else seems to suffer with this glitch. You can add wicd to your sources list – I don’t just in case I lose connection and can’t download it when network-manager is removed:

sudo apt-get remove network-manager network-manager-gnome

Next you need to blacklist the existing ralink drivers that Intrepid uses. Edit the file:

/etc/modprobe.d/blacklist

and add these lines:

#Ralink, we're using the legacy driver now
blacklist rt73usb
blacklist rt2x00usb
blacklist rt2500usb
blacklist rt2x00lib

then remove the modules as they’ll currently be loaded into the kernel:

sudo ifconfig wlan0 down

(I’m guessing your wireless interface is wlan0 – you need to put it down first or the kernel won’t let you unload the module. You can find out for sure what it is called using ifconfig -a)

sudo modprobe -r rt73usb
sudo modprobe -r rt2500usb
sudo modprobe -r rt2x00usb

Okay now we can compile the module. cd to the directory containing the driver you downloaded. Then:

tar -xvzf rt73-cvs-daily.tar.gz
cd rt73-cvs-THE_TIMESTAMP/Module/
make
sudo make install
sudo modprobe -v rt73

..where THE_TIMESTAMP is the date part of the extracted directory. Then:

ifconfig -a

to find out the name of the interface (probably wlan0)

install and open up WICD and open the preferences. Select “ralink legacy” and type in the interface name in the “wireless interface” box.

Then you should be able to “refresh” and see your network. Add the encryption key if needed and connect.

Remember if it all goes wrong you’ll need to reinstall network manager (try rebooting first!)

sudo apt-get install network-manager network-manager-gnome

and comment out the lines you added to /etc/modprobe/blacklist (In fact if you’ve successfully loaded the rt73 driver you’ll need to blacklist that instead of the others: blacklist rt73 – in order for it not to conflict with the default Intrepid modules.)