Rt2x00 beta driver

From ArchWiki
Revision as of 12:47, 25 August 2007 by StANTo (Talk | contribs) (Adjustments on situation with rt2570/2500 adapter and rt2x00 package in unstable.)

Jump to: navigation, search

This page describes how you can make the new rt2x00 Beta drivers work. This page does not describe the legacy rt2500, rt2400 and rt2570 drivers derived from the original Ralink drivers.

At the time of this writing, only the rt2560 PCI and PcCard chipsets (rt2500pci driver) are known to work in Open, WEP or WPA (PSK and EAP) mode. So far, there are no success stories with rt2400pci, rt2500usb and rt61pci drivers. If you succeed in using these drivers, please add a comment here.

// Currently the rt2500/2570usb adapter component is still in development. It should work and associate with an AP, then gain an IP from DHCP but the connection works intermittantly. NDiswrapper is recommended until fixed.

The rt2x00 drivers are supposed to work with SMP kernels, but I did not test this myself. Please add comments here if you were able to use the driver with an SMP kernel.

There are still many issues with this driver. Many people experienced crappy speed. To help solve these issues, everyone who is willing to test the new driver should look at the rt2x00 BETA Testing section of the rt2x00 forums.


Installing the driver

The rt2x00 Beta 3 (as posted in the AUR) and older version are known to NOT WORK. In order to have a working driver, you MUST use the new rewrite based on the DeviceScape stack. This new driver is (at the time of this writing) only available as a CVS snapshot. To install the driver, unpack the driver, change to the rt2x00-cvs-2006XXXXXX directory and type

make
make install

There is a package for this in [unstable] that currently has no maintainer, it is advised you use the latest snapshot. Grab the pkgbuild from CVS here: http://cvs.archlinux.org/cgi-bin/viewcvs.cgi/modules/rt2x00/?cvsroot=Unstable

If it is the rt61 driver you need, you'll also have to manually install the firmware from RaLink. To proceed, create a /lib/firmware directory -if you don't have one already- and place the *.bin files inside. (NB: this firmware is likely to be soon included into rt2x00.serialmonkey tree)

Using the driver

Setting the interface up

If you have module autoloading enabled, the drivers should be loaded automatically when you boot your machine or insert the device. If this doesn't work or autoloading is disabled, load the modules manually:

modprobe 80211
modprobe rc80211_simple
modprobe $driver

where $driver is one of the following: rt2500pci, rt2400pci, rt2500usb or rt61pci.

When the driver is loaded, you will have two interfaces, wmaster0 and wlan0.

Using the driver

In the case of these drivers, the order in which you configure them is important.

ifconfig wlan0 up
iwlist wlan0 scan
iwconfig wlan0 essid myessid
iwconfig wlan0 ap mybssid 

Is the preferred, and most likely to work order of configuring the device. From there you can use ifconfig or dhcpcd to get an IP, and wep or wpa if needed.

Extra utils for wep/wpa

wpa_supplicant

rt2x00 should work fine with the wpa_supplicant wext driver. It is not necessary to patch it any more.

Using wpa_supplicant

For example, to use wpa_supplicant, try

/usr/sbin/wpa_supplicant -wB -Dwext -iwlan0 -c/etc/wpa_supplicant.conf

Note that wpa_supplicant didn't work with hidden essid in my tests.

// TODO: someone please confirm that wpa_supplicant also successfully associates to open or wep-encrypted networks, I only tried WPA-PSK and read success reports about WPA-EAP

Using WEP

WEP should work with the Wireless Extensions used by iwconfig.

// TODO: Some please confirm that this works

Configuring the driver for automatic startup on booting

RT2400 (rt2400pci)

The following is known to work for the cvs snapshot available here with the date 23-Dec-2006.

To set the driver up for automatically connecting while the computer is booting, type the following in /etc/rc.conf

wlan0="wlan0 192.168.1.102 netmast 255.255.255.0 broadcast 192.168.1.255"
INTERFACES=(lo !eth0 wlan0)

And the following in /etc/rc.local

iwconfig wlan0 channel 10
iwconfig wlan0 essid linksys
iwconfig wlan0 ap 00:0c:41:a8:87:8e <-- Put your access point's bssid here