Tenda W311M is a mini USB WiFi adapter. It use Ralink RT5370 chip.

gary@ubuntu:/proc$ lsusb
Bus 001 Device 002: ID 148f:5370 Ralink Technology, Corp. 

TP-LINK TL-WN727N also has the exact chipset as Tenda W311M, and the instructions below also apply to TP-LINK TL-WN727N.

Devices with RT5370 chipset do not work out of the box in Ubuntu 11.10 to 12.04. They work automatically in Ubuntu 12.10.

There are two drivers supporting this chip, a driver supplied by RALink and the rt2800usb which is part of the Linux kernel tree.

Ralink Driver must be compiled. Ralink only supports Infrastructure and Ad-Hoc mode.

1. Download the Linux driver from Ralink

RT3070/RT3072/RT3370/RT5370/RT5372 all-in-one driver package. The latest version is v2.5.0.3


2. Extract the package to user home, and rename the directory name to sta, for example.

3. Change HAS_WPA_SUPPLICANT and AS_NATIVE_WPA_SUPPLICANT_SUPPORT from n to y in os/linux/config.mk

# Support Wpa_Supplicant


# Support Native Wpa_Supplicant for Network Maganger


4. now just make, make install, and register your module with modprobe

sudo su
make install
modprobe rt5370sta

5. To enable the module at each boot add your module to /etc/modules

echo rt5370sta >> /etc/modules

Thanks to vitoshka@

rt2800usb driver

rt2800usb is more powerful. "The rt2x00 driver is currently in the kernel tree marked as experimental."

If the kernel is 3.0.0-12 above(?), it's very easy to enable the driver.

sudo modprobe rt2800usb
echo 148F 5370 | sudo tee /sys/bus/usb/drivers/rt2800usb/new_id

Then there will be an interface named wlan0

Make the driver loaded at every boot (this step is not needed if you use the udev method below).

echo "rt2800usb" | sudo tee -a /etc/modules

Removing rt5730 module if was installed

Remove the rt5370sta module if you added it like in the Ralink driver section above.

Open the modules list

sudo gedit /etc/modules

and delete "rt5370sta" from the list. Save and close.

Unload the rt5370sta module

sudo modprobe -r rt5370sta

Enable support in udev

"udev is a generic kernel device manager. It listens to events the kernel sends out if a new device is initialized or a device is removed from the system. The system provides a set of rules that match against exported values of the event and properties of the discovered device. A matching rule will possibly name and create a device node and run configured programs to set-up and configure the device." ---chili555@

Suppose you're using GNOME

gksu gedit /etc/udev/rules.d/95-RT5370.rules

A new empty document will open. Copy and paste the text as follows:

SUBSYSTEM=="usb", ATTR{idVendor}=="148f", ATTR{idProduct}=="5370", RUN="/etc/RT5370.sh"

save and close gedit Create another file

gksu gedit /etc/RT5370.sh

A new empty document will open. Copy and paste the text as follows:

modprobe rt2800usb
echo 148F 5370 > /sys/bus/usb/drivers/rt2800usb/new_id

save and close gedit

make the file executable

sudo chmod +x /etc/RT5370.sh

so the two files looks like below

root@ubuntu:~# cat /etc/udev/rules.d/95-RT5370.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="148f", ATTR{idProduct}=="5370", RUN="/etc/RT5370.sh"

root@ubuntu:~# cat /etc/RT5370.sh 
modprobe rt2800usb
echo 148F 5370 > /sys/bus/usb/drivers/rt2800usb/new_id

Configure Access Point Mode

The W311M can work as an access point with hostapd >=0.7.3. And there is more

gary@ubuntu:~/sta/os/linux$ iw list
Wiphy phy0
        Band 1:
                Capabilities: 0x172
                        Static SM Power Save
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 2 usec (0x04)
                HT RX MCS rate indexes supported: 0-7, 32
                TX unequal modulation not supported
                HT TX Max spatial streams: 1
                HT TX MCS rate indexes supported may differ
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm) (passive scanning, no IBSS)
                        * 2472 MHz [13] (20.0 dBm) (passive scanning, no IBSS)
                        * 2484 MHz [14] (20.0 dBm) (passive scanning, no IBSS)
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps (short preamble supported)
                        * 5.5 Mbps (short preamble supported)
                        * 11.0 Mbps (short preamble supported)
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
        max # scan SSIDs: 4
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point
        Supported commands:
                 * new_interface
                 * set_interface
                 * new_key
                 * new_beacon
                 * new_station
                 * new_mpath
                 * set_mesh_params
                 * set_bss
                 * authenticate
                 * associate
                 * deauthenticate
                 * disassociate
                 * join_ibss
                 * Unknown command (68)
                 * Unknown command (55)
                 * Unknown command (57)
                 * Unknown command (59)
                 * Unknown command (67)
                 * set_wiphy_netns
                 * Unknown command (65)
                 * Unknown command (66)
                 * connect
                 * disconnect


WifiDocs/Device/Tenda_W311M (last edited 2012-11-14 20:55:15 by ngrhodes)