IMPORTANT
If you have a new kernel that supports mac80211 and includes the new rt73usb driver then you MUST blacklist it otherwise the ieee80211 version of the module below will not work. See blacklisting mac80211 driver version below.

Basic injection with rt73 and BackTrack v2 for beginners

When to use this driver?

If you have a Ralink chip in an USB device and that chip is a RT2570 or RT73 (RT73 is also as RT2571 and RT2573), you need the “rt2570” or “rt73” driver. “rt2500” driver is only for PCI/PCMCIA devices.

Using legacy drivers (or ASPj mods) interface name is ra0 for PCI/PCMCIA and rausb0 for USB devices, if you have wlan0 and wmaster0 interfaces you are using new rt2x00-mac80211 driver (rt2x00 has various modules, for USB devices they are “rt2x00lib”, “rt2x00usb” and “rt73usb”, unload them and load “rt2570” or “rt73”).

Troubleshooting Tips

Moving modules which are not required

Sometimes the original distribution modules can interfere with the new one you are creating. The following script will move all related modules out of the module tree. This eliminates the need to blacklist modules. Please be aware that it may move more then want out of the way if your have other ralink devices. As such, you may need to edit the script for your particular circumstances. Additionally, different distributions and even releases within a distribution put the modules in different path locations. So you will have to edit the script to reflect the locations on your particular release and distribution.

Blacklisting mac80211 driver version

If you have the file rt73usb.ko in the /lib/modules directory tree then you have two options to blacklist it. Failure to do this will mean that the ieee80211 rt73 module described on this page will fail to work properly. Here are the options:

Move the file to another area on your system as follows then do “depmod -ae”. Move

/lib/modules/k#/kernel/drivers/net/wireless/rt2x00/rt73usb.ko to a safe place. The “k#” and/or other parts of the path will be different for your distribution/system. Use “locate 73usb.ko” or “find /lib/modules -name *73usb*” to find the full path. After moving it, do “depmod -ae”.

Edit /etc/modprobe.d/blacklist and add “blacklist rt73usb” as a new line.

In both cases, reboot your system afterwards.

Scripts to switch between ieee80211 and mac80211

Yet another option is to use scripts to switch back and forth between the ieee80211 and mac80211 drivers. To do this, create two files in /usr/sbin called “rt73-mac” and “rt73-ieee”. Enter this into “rt73-mac”:

#!/bin/sh
rmmod rt73
modprobe rt73usb

and into rt73-ieee:

#!/bin/sh
rmmod rt73usb
modprobe rt73

After this, you can easily load the rt73 driver (ieee80211) using the command “rt73-ieee”. To revert back to rt73usb (mac80211), use “rt73-mac”.

Try a lower data rate

Try lowering your card rate to 1MB:

iwconfig rausb0 rate 1M

airmon-ng shows RT2500 instead of RT73

Move everything ralink related out of my modules prior to install the new driver with something similar to the following. Change the $KERNELVER to your kernel (uname -r provides the current kernel). Change $DIRECTORY to an existing directory where you want to save the module. Also your path may be slightly different from the one below. Use find or located to determine the exact path to the modules.

Ubuntu specific

If you are using Ubuntu (Gutsy, Feisty or Edgy) please follow this guide: Ralink rt73
(Some modules must be blacklisted)
Even when following the guide above, be sure to use the latest driver version available.

"iwe_stream_add_event" compile error message

NOTE: This applies only to driver version 3.0.1 and earlier. Version 3.0.2 should work out of the box with 2.6.27 kernels.

If you get a series of compile messages similar to “error: passing argument 1 of 'iwe_stream_add_event' from incompatible pointer type” then do the following: