Table of Contents
DEPRECATED
IMPORTANT NOTE: This page is deprecated, updated documentation can be found here
Installing
This page only deals with the ieee80211 version of the RT73 driver. For the mac80211 rt73usb version see the mac80211 page. To understand the differences, see mac80211 versus ieee80211 stacks write-up.
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.
Open up a shell and type:
wget http://homepages.tu-darmstadt.de/~p_larbig/wlan/rt73-k2wrlz-3.0.3.tar.bz2 tar -xjf rt73-k2wrlz-3.0.3.tar.bz2 cd rt73-k2wrlz-3.0.3/Module make
then, as root, type
make install modprobe rt73
A mirror for the above driver can be found here and a home page mirror can be found here.
Using driver with aircrack-ng
as root:
iwconfig rausb0 mode monitor airodump-ng rausb0 ...
if you want to use aireplay-ng:
iwpriv rausb0 rfmontx 1 aireplay-ng rausb0 ...
The newer versions of the driver should properly setup the attributes, so simply:
ifconfig rausb0 up airmon-ng start rausb0 ... use the aircrack-ng suite tools you want
Basic injection with rt73 and BackTrack v2 for beginners
See this thread.
When to use this driver?
See this message.
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
See the next troubleshooting tip as an alternative to moving the modules.
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.
#!/bin/bash DIRECTORY="/root/rt73module" if [ ! -d $DIRECTORY ] then echo "$DIRECTORY directory created" mkdir $DIRECTORY else echo "$DIRECTORY directory exists" fi if [ -d /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00 ] then echo "Moving modules from /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00 directory" mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt61pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00/rt73usb.ko $DIRECTORY depmod -ae echo "Please reboot your system." else if [ -d /lib/modules/$(uname -r)/kernel/drivers/net/wireless ] then echo "Moving modules from /lib/modules/$(uname -r)/kernel/drivers/net/wireless directory" mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2400pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2500pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2500usb.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00lib.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt2x00usb.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt61pci.ko $DIRECTORY mv /lib/modules/$(uname -r)/kernel/drivers/net/wireless/rt73usb.ko $DIRECTORY depmod -ae echo "Please reboot your system." else echo "No valid kernel directories were found. Please investigate." fi fi
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.
mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt61pci.ko $DIRECTORY mv /lib/modules/$KERNELVER/kernel/drivers/net/wireless/rt2x00/rt73usb.ko $DIRECTORY depmod -ae
Perhaps locate these same modules and move them out. Just be aware that you will only have support for rt73 by doing this. But this is really the objective. Be sure to run “depmod -ae”.
aireplay-ng freezes after injecting 700 to 1000 packets
If aireplay-ng freezes after injecting 700 to 1000 packets, try using the “-x” option which limits the packet injection rate. Try various values from “-x 100” to “-x 250”.
"Network is down" error message
If you get messages similar to this:
wconfig rausb0 mode monitor -> Error for wireless request "Set Mode" (8B06): SET failed on device rausb0. Network ist down. airodump-ng rausb0 -> ERROR: ioctl (SI0CSIFFLAGS) Failed Invalid Argument. airmon-ng start rausb0 -> raus0 RaLink USB rt73SI0CSIFFLAGS Argument not allowed (Monitor mode enabled) Interface doesnt accept ioctl... rfmontx (8BEC) Network is down.
If you get a “Network down” message then you must first issue:
ifconfig rausb0 up
Then put the card into monitor mode with:
airmon-ng start rausb0 <optionally specify the channel here>
Instead of airmon-ng, you can set the card manually with:
iwpriv rausb0 forceprism 1 iwpriv rausb0 rfmontx 1 iwconfig rausb0 mode monitor channel <x>
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:
Open up a shell and type:
wget http://homepages.tu-darmstadt.de/~p_larbig/wlan/rt73-k2wrlz-3.0.1.tar.bz2 tar -xjf rt73-k2wrlz-3.0.1.tar.bz2 cd rt73-k2wrlz-3.0.1/Module wget http://patches.aircrack-ng.org/rt73_2.6.27.patch patch -Np2 -i rt73_2.6.27.patch make
then, as root, type
make install modprobe rt73
"error: implicit declaration of function ‘kill_proc’" compile error message
See this thread for a patch. Version 3.0.2 of the driver shouldn't have this bug anymore.
2.6.27 kernel support
Version 3.0.2 does support 2.6.27 out of the box without any modifications needed.
If you want to use an earlier version with 2.6.27, here are the patching instructions:
2.6.31 kernel and above gives rt73.ko failed to build
Compiling on 26.31 and above kernels gives an error message “rt73.ko failed to build!”. This thread provides a workaround. Hopefully a corrected version of the driver will be released shortly.