Difference between revisions of "Rt2870"

From ArchWiki
Jump to: navigation, search
(As of linux kernel 3.0, the rt2800usb driver automatically works with devices using the rt2870 chipset.)
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{i18n|Rt2870}}
+
#REDIRECT [[Wireless Setup#rt2x00]]
[[Category:Wireless Networking (English)]]
+
{{out of date}}
+
 
+
== Introduction ==
+
 
+
{{note|As of {{pkg|linux}} kernel 3.0, the rt2800usb driver automatically works with devices using the rt2870 chipset.}}
+
 
+
This entry is to aid you in configuring wireless settings for use with devices built with Ralink's rt2870 chipset. I hope that this entry will encourage further contribution regarding the configuration of Ralink drivers.
+
 
+
{{note|This entry has been (so far) written with Infrastructure mode and WPA authentication in mind. Please contribute any other configurations.}}
+
 
+
== Installation (kernels from 2.6.29 to 2.6.39) ==
+
Since version 2.6.29 this driver has been included in the kernel
+
 
+
== Installation - source ==
+
[[pacman|Install]] the {{AUR|rt2870}} package from the [[Arch User Repository|AUR]].
+
 
+
The driver installed will be named {{ic|rt2870sta.ko}}.
+
 
+
To simplify things, create a kernel module alias by appending the following line to {{ic|/etc/modprobe.d/modprobe.conf}}:
+
alias ra0 rt2870
+
 
+
See [[Kernel_modules#Aliasing]] for more info.
+
 
+
== Configuration ==
+
This driver is best configured using tools that utilize the standard wireless extensions, such as {{Pkg|wpa_supplicant}}, {{Ic|iwconfig}}, and their front-ends.
+
 
+
Various driver specific options can be configured using iwpriv.
+
 
+
== Configuration - File (maybe obsolete) ==
+
This section is to help you with the configuration file used to set the parameters of the device when it is brought up (e.g. {{ic|ip link set ra0 up}}).
+
* First, go into the {{ic|src/}} directory where you built the package and into the source code's directory. For example
+
cd ~/AUR/rt2870/src/2008_0925_RT2870_Linux_STA_v1.4.0.0
+
* Copy the {{ic|RT2870STA.dat}} file to {{ic|/etc/Wireless/RT2870STA}}. If the directory does not exist, create it.
+
cp RT2870STA.dat /etc/Wireless/RT2870STA
+
 
+
=== Initial Configuration ===
+
* In this file, the first line must always contain the word Default, so it should be on the first line.
+
Default
+
* Change the country/region channel number to the one that corresponds to your network:
+
**0: channels 1 through 11
+
**1: channels 1 through 12
+
**2: channels 10 and 11 (according to ralink)
+
**3: channels 10 through 13
+
**4: channel 14
+
**5: channels 1 through 14
+
**6: channels 3 through 9
+
**7: channels 5 through 13
+
My configuration
+
CountryRegion=0
+
* Add your country code. Valid country codes include the following
+
AG, AR, AW, AU, AT, BS, BB, BM, BR, BE, BG, CA, KY, CL, CN, CO, CR, CY, CZ, DK, DO, EC, SV, FI, FR, DE, GR,
+
GU, GT, HT, HN, HK, HU, IS, IN, ID, E, IL, IT, JP, JO, LV, LI, LT, LU, MY, MT, MA, MX, NL, NZ, NO, PE, PT,
+
PL, RO, RU, SA, CS, SG, SK, SI, ZA, KR, ES, SE, CH, TW, TR, GB, UA, AE, US, VE
+
My configuration
+
ConuntryCode=US
+
* Edit the ssid to your network's SSID using either characters 0-z or 1~32 ASCII characters
+
For example
+
SSID=mywirelessnetwork
+
* Change the network type to whatever type of network you are using:
+
**Infra (for Infrastructure)
+
**Adhoc (for Ad-hoc)
+
My configuration
+
NetworkType=Infra
+
* Edit the wireless mode using numbers 0 through 10:
+
**0: legacy 11b/g mixed
+
**1: legacy 11b only
+
**2: legacy 11a only
+
**3: legacy 11a/b/g mixed
+
**4: legacy 11g only
+
**5: 11a/b/g/n mixed
+
**6: 11n only
+
**7: 11g/n mixed
+
**8: 11a/n mixed
+
**9: 11b/g/n mixed
+
**10: 11a/g/n mixed
+
I use 0
+
WirelessMode=0
+
* Edit the channel number. This must correspond to the {{ic|CountryRegion}} setting.
+
My configuration
+
Channel=10
+
 
+
=== Authentication ===
+
{{Note|Because I use WPA and have not tested WEP configuration, the WEP configuration type explained is just a guess. If you use a rt2870 device with a WEP-protected network, then please correct the wiki.}}
+
 
+
* Set authmode to one of the following options:
+
**Open (for WEP)
+
**WPA (WPA with WPA Supplicant)
+
**WPA2 (WPA2 with WPA supplicant)
+
**WPAPSK
+
**WPA2PSK
+
 
+
The WPA and WPA2 options should work with [[netcfg]] and [[NetworkManager]].
+
For WPA,
+
AuthMode=WPA
+
* Set the encryption type to one of the following:
+
**WEP
+
**TKIP
+
**AES
+
**None
+
For TKIP,
+
EncrypType=TKIP
+
 
+
==== WPA ====
+
* If you are using WPA, set your pre-shared key (PSK):
+
WPAPSK=mysecretkey
+
 
+
==== WEP ====
+
* If you are using WEP, first set the key index using numbers 1 through 4
+
For example,
+
DefaultKeyID=1
+
* Now, set the key type (of your corresponding key index) so it knows what kind of key to look for:
+
**0: hex
+
**1: ASCII string
+
Key1Type=0
+
* Provide your WEP key according to type, for example
+
For a string key
+
Key1Str=mysecretwepkey
+
For a hex key
+
Key1=01234
+
 
+
=== Examples ===
+
Here are some example options for reference.
+
 
+
RT2870STA.dat
+
Default
+
CountryRegion=0
+
CountryRegionABand=7
+
CountryCode=US
+
ChannelGeography=1
+
SSID=mywirelessnetwork
+
NetworkType=Infra
+
WirelessMode=0
+
Channel=10
+
BeaconPeriod=100
+
TxPower=100
+
BGProtection=0
+
TxPreamble=1
+
RTSThreshold=2347
+
FragThreshold=2346
+
TxBurst=0
+
PktAggregate=0
+
WmmCapable=0
+
AckPolicy=0;0;0;0
+
AuthMode=WPA
+
EncrypType=TKIP
+
WPAPSK=mysecretkey
+
DefaultKeyID=1
+
Key1Type=0
+
Key1Str=
+
Key2Type=0
+
Key2Str=
+
Key3Type=0
+
Key3Str=
+
Key4Type=0
+
Key4Str=
+
PSMode=CAM
+
FastRoaming=0
+
RoamThreshold=70
+
APSDCapable=0
+
APSDAC=0;0;0;0
+
HT_RDG=1
+
HT_EXTCHA=0
+
HT_OpMode=1
+
HT_MpduDensity=4
+
HT_BW=1
+
HT_AutoBA=1
+
HT_BADecline=0
+
HT_AMSDU=0
+
HT_BAWinSize=64
+
HT_GI=1
+
HT_MCS=33
+
HT_MIMOPSMode=3
+
IEEE80211H=0
+
TGnWifiTest=0
+
WirelessEvent=0
+
CarrierDetect=0
+
 
+
 
+
And a [[netcfg]] profile:
+
CONNECTION="wireless"
+
INTERFACE=ra0
+
SCAN="no"
+
SECURITY="wpa"
+
ESSID=mywirelessnetwork
+
KEY="mysecretkey"
+
IP="dhcp"
+
TIMEOUT=20
+
DHCP_TIMEOUT=30
+
 
+
There is no need to set the channel in the [[netcfg]] profile since the {{ic|.dat}} file took care of it.
+
 
+
== Troubleshooting ==
+
 
+
===dmesg:Bulk In Failed, CMDTHREAD_RESET_BULK_IN, etc.===
+
Bulk In Failed messages are not so bad, but a problem arises when and if the failed data leads to CMDTHREAD_RESET_BULK_IN which results in the module removing itself (e.g. modprobe -r rt2870sta).
+
 
+
This probably happened because you created your own RT2870STA.dat file. Go into the rt2870 tarball directory, into the source code directory, and replace the RT2870STA.dat in {{ic|/etc/Wireless/RT2870STA/}} with the preconfigured .dat file in the {{ic|2008_0718_RT2870_Linux_STA_v1.3.1.0}} directory. From there, set the options that correspond to your network without removing any of the options.
+
 
+
===rt2870CmdThread is using a lot of CPU===
+
I do not specifically know why this occurs, but it is probably because you connected your device to a hub.
+
 
+
===Kernel 2.6.30 issues===
+
There seem to be multiple issues with the rt2870 driver in the 2.6.30 kernel. Please refer to [http://bbs.archlinux.org/viewtopic.php?id=73964 this thread]
+
 
+
===Kernel 2.6.31 module conflicts===
+
The 2.6.31 kernel caused the rt2870 driver to conflict with other wireless modules. The fix in [https://bbs.archlinux.org/viewtopic.php?pid=646813#p646813 this thread] says that you need to blacklist the {{ic|rt2800usb}}, {{ic|rt2x00usb}}, and {{ic|rt2x00lib}} modules. See [[Kernel modules#Blacklisting]] for information about blacklisting kernel modules.
+
 
+
== What next? ==
+
 
+
Insert the device and try connecting. See the [[Wireless Setup#Part II: Wireless management|Wireless Management]] section of [[Wireless Setup]] for details on connection methods.
+

Revision as of 22:52, 3 August 2013