Difference between revisions of "Rt2870"

From ArchWiki
Jump to: navigation, search
(Tenda w311u issues)
(As of linux kernel 3.0, the rt2800usb driver automatically works with devices using the rt2870 chipset.)
(35 intermediate revisions by 14 users not shown)
Line 1: Line 1:
[[Category:Communication and network (English)]]
+
#REDIRECT [[Wireless Setup#rt2x00]]
[[Category:Networking (English)]]
+
[[Category:HOWTOs (English)]]
+
 
+
= Introduction =
+
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.
+
 
+
{{Box 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 and on) =
+
Since version 2.6.29 this driver has been included in the kernel
+
 
+
= Installation - source =
+
* Install the Drivers
+
** Grab the tarball from AUR
+
*** http://aur.archlinux.org/packages.php?ID=14558
+
** Extract the Tarball
+
*** tar xvf rt2870.tar.gz
+
** Enter the rt2870 directory and build and install the driver; the driver installed will be called rt2870.ko
+
*** makepkg -i
+
 
+
* To simplify things, create a modprobe alias by editing /etc/modprobe.conf and entering the following line
+
alias ra0 rt2860
+
= Configuration =
+
This driver is best configured using tools that utilize the standard wireless extensions, such as wpa_supplicant, iwconfig and their frontends.
+
 
+
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. ifconfig ra0 up).
+
* First, go into the 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 RT2870STA.dat file to /etc/Wireless/RT2870STA (if the directory doesn't 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 newtork 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 CountryRegion setting.
+
My configuration
+
Channel=10
+
 
+
== Authentication ==
+
{{Box 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 by all-means correct me.}}
+
 
+
* 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.
+
I use WPA so,
+
AuthMode=WPA
+
* Set the encryption type to one of the following:
+
**WEP
+
**TKIP
+
**AES
+
**None
+
I use TKIP, so
+
EncrypType=TKIP
+
 
+
=== WPA ===
+
* If you're using WPA, set your WPAPSK
+
WPAPSK=mysecretkey
+
 
+
=== WEP ===
+
* If you're 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 know 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
+
 
+
No need to set the channel in the netcfg profile since the .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 /etc/Wireless/RT2870STA/ with the preconfigured .dat file in the 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 don't 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 [http://bbs.archlinux.org/viewtopic.php?pid=646813#p646813 this thread] says that you need to blacklist the '''rt2800usb rt2x00usb''' and '''rt2x00lib''' modules by modifying the MODULES array in /etc/rc.conf
+
MODULES=( ... !rt2800usb !rt2x00usb !rt2x00lib ... )
+
 
+
===Tenda w311u issues===
+
With 2.6.34 testing kernel and the [http://www.tenda.cn/product/show.php?productid-340.html tenda w311u usb stick]., I've had trouble with the rt2870sta module even when I've blacklisted rt2800usb. My lsusb prints<pre>Bus 001 Device 002: ID 148f:3070 Ralink Technology, Corp. RT2870 Wireless Adapter</pre>
+
I used this aur package http://aur.archlinux.org/packages.php?ID=38021 to get my wireless to work; you have to manually get the "sources" at the manufactures website http://eng.ralinktech.com.tw/support.php?s=2, put them in the build directory, and rename DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.bz2 to DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2.
+
Recap:<pre>
+
wget http://aur.archlinux.org/packages/rt3070usb/rt3070usb.tar.gz
+
tar xvcf rt3070usb.tar.gz
+
cd rt3070usb/
+
</pre>
+
accept license and save these files [http://eng.ralinktech.com.tw/license_us.php?n=2&p=0&t=U0wyRnpjMlYwY3k4eU1ERXdMekEwTHpFMUwyUnZkMjVzYjJGa09Ea3pOREU1TnpBeE9TNWllakk5UFQxRVVFOWZVbFF6TURjd1gweHBiblY0VTFSQlgxWXlMak11TUM0eVh6SXdNVEF3TkRFeUM%3D 1] [http://eng.ralinktech.com.tw/license_us.php?n=2&p=1&t=U0wyRnpjMlYwY3k4eU1ERXdMekF6THpNeEwyUnZkMjVzYjJGa01UWXpPRGs1T0Rnek5pNTZhWEE5UFQxU1ZESTROekJmUm1seWJYZGhjbVZmVmpJeUM%3D 2] in rt2070usb/
+
<pre>
+
mv DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.bz2 DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2
+
makepkg -s
+
pacman -U rt3070usb-2.3.0.2-1-i686.pkg.tar.xz
+
</pre>
+
Then edit /etc/Wireless/RT2870STA/RT2870STA.dat as [http://wiki.archlinux.org/index.php/Rt2870#Configuration_-_File_.28maybe_obsolete.29 shown above] or read rt3070usb/src/DPO_RT3070_LinuxSTA_V2.3.0.2_20100412/README_STA_usb. Then blacklist rt2800lib rt2800usb rt2x00usb rt2x00lib and add rt3070sta in /etc/rc.conf. Reboot. Then you can [http://wiki.archlinux.org/index.php/Wireless#Manual_setup manually setup the connection]. Please edit this section if you know a better/easier way.
+
 
+
= What next? =
+
 
+
Insert the device and try connecting. See the [http://wiki.archlinux.org/index.php/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