Ralink RT2870 based USB Wireless N adapters (Ubuntu)

BE AWARE
For kernels >= 2.6.35 make sure you read the the EDIT.

If you want to know which kernel you are using, open a terminal and enter:

uname -r

(if it’s greater than, or equal to 2.6.35, be sure to follow the instructions in the EDIT.


In Ubuntu 9.10 (Karmic), Ubuntu 10.04 (Lucid), and Ubuntu 10.10 (Maverick) there is an issue with USB Wireless N adapters based on the Ralink RT2870 chip.
The issue seems to be that 2 (conflicting?) driver modules are loaded… rt2870sta and rt2800usb… resulting in no wireless access.

The solution is to blacklist the rt2800usb module if it is loaded.

To see if they are both loaded, enter this in a terminal:

sudo lsmod | grep rt28

if they are both loaded, blacklist the rt2800usb module by opening the /etc/modprobe.d/blacklist.conf file (as root)

sudo gedit /etc/modprobe.d/blacklist.conf

and add the line:

blacklist rt2800usb

then save the file and reboot.

If after rebooting you can now ‘see’ the network, but it will not accept a WPA key (WEP seems fine)… you need to recompile the driver with WPA support… the driver can be found here:

2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2 (you can enter ‘any’ name and email)
or
Ralink Linux Driver Page
(HINT - change the files extension to tar.gz before unpacking… for some reason it comes up as an invalid bz2 archive, but unpacks properly as a tar.gz)

Before compiling - you are going to need to install build-essential, and linux-headers-generic.

sudo apt-get update && sudo apt-get install build-essential linux-headers-generic

If you use WPA/WPA2 encryption, you will have to change the lines
HAS_WPA_SUPPLICANT=n
and
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n

in:
/os/linux/config.mk
(inside the unpacked driver)

to
HAS_WPA_SUPPLICANT=y
and
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y

Once you have changed these to =y and saved the config.mk file…

[EDIT]
Newer kernels >= 2.6.35 will fail to compile (make) the driver because the driver makes use of the functions usb_buffer_alloc() and usb_buffer_free() which were renamed in kernel 2.6.35 … so if during the next (make && make install) step it fails with this error:

make[2]: *** [/home/mark/Desktop/RT2870/os/linux/../../common/cmm_mac_usb.o] Error 1 make[1]: *** [_module_/home/mark/Desktop/RT2870/os/linux] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-27-generic' make: *** [LINUX] Error 2
or similar.

The fix is to cd to the driver source directory (eg. 2010_0709_RT2870_Linux_STA_v2.4.0.1), and run the following 3 commands which will clean the build directory and replace the old calls with the new ones:

make clean
find . -name \*.[ch] -exec grep usb_buffer_alloc "{}" ";" -exec sed -i 's/usb_buffer_alloc/usb_alloc_coherent/g' "{}" ";"
find . -name \*.[ch] -exec grep usb_buffer_free "{}" ";" -exec sed -i 's/usb_buffer_free/usb_free_coherent/g' "{}" ";"

(hitting enter after each line)

Or, I’ve uploaded a pre-modified version of the driver that WILL compile on kernels >= 2.6.35 here:
2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2

Then carry on with the “sudo su” and “make && make install”, as per the instructions below.
[END EDIT]

To compile and install, open a terminal and enter:

sudo su
make && make install

It is important here not to use “sudo” alone, but “sudo su” because with sudo for some reason the installation script fails to create the necessary files and folders.

Now, while still root modprobe the driver module:

modprobe rt2870sta

Give it a minute to create the ra0 device node, and network manager should now be able to display all visible wireless networks in your area, meanwhile you can stop being root.

exit

Make sure that ra0 is up and running as it’s supposed to:

iwconfig

and check for a section similar to:

ra0 RT2870 Wireless ESSID:"" Nickname:"RT2870STA" Mode:Managed Frequency=2.412 GHz Access Point: Bit Rate=54 Mb/s RTS thr:off Fragment thr:off Link Quality=100/100 Signal level:-29 dBm Noise level:-71 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

To make sure the module is loaded after a reboot, add it to the /etc/modules file:

sudo sh -c 'echo rt2870sta >> /etc/modules'

Your wireless card should now be working (it may require a reboot first)… Use network manager to set your WEP/WPA(2) key, and connect to your network.


Further info can be found at the following URLs:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/460323

http://www.linuxquestions.org/questions/linux-hardware-18/d-link-dwa-140-802-11n-usb-with-ralink-rt2870-chispet-driver-probs-635827/

http://swiss.ubuntuforums.org/showthread.php?t=1382798

Hi Mark

I have been looking for a solution to this problem for ages on and have tried allsorts with my patchy but growing knowledge of linux. I am now running xubuntu 11.04 on an ancinet laptop. The USB wifi unit is recognised in 11.04 without the need for blacklisting and I can see my network but canont login. On your modified driver for later kernals do I need to change thge WPA_Supplicant info or have you done that already? I am going to try this tonight.

I must say this is the clearest linux forum that I have come across.

Thanks

SSID

I’ve NOW changed the WPA settings to Y in the pre-modified driver :slight_smile:

Hi Mark,

Thank you very much for the tip on the compilation error, this certainly saved me quite a bit of trouble.

I’m up and running now (on Natty), but I notice that iwconfig is only reporting 54 Mb/s. As I have an “N” speed router & adapter (and is configured as such), shouldn’t I be seeing speeds higher than this?

Thanks again…

Are there any slower wireless devices connected to the router ?

AFAIK, a mixed mode b/g/n wireless router (or access point) will default to the slowest protocol depending on what devices are connected wirelessly.
(ie. an 802.11n router that supports b/g/n will scale back to 802.11b if a device with only 802.11b capabilities connects to it… slowing ALL other device connections)

You could try changing the (default) configuration:
WirelessMode=5
line in
/etc/Wireless/RT2870STA/RT2870STA.dat

sudo gedit /etc/Wireless/RT2870STA/RT2870STA.dat

to
WirelessMode=6
to force a Wireless “N” connection.
(be aware, if there are any slower devices connected to the router this mode may leave you unable to connect)

Some people say setting it to:
WirelessMode=7
or
WirelessMode=9
helps, in mixed mode… ie.dropping support for 802.11b and/or 802.11a

WirelessModes -

 0: legacy 802.11b/g mixed
 1: legacy 802.11b only
 2: legacy 802.11a only
 3: legacy 802.11a/b/g mixed
 4: legacy 802.11g only
 5: 802.11a/b/g/n mixed
 6: 802.11n only
 7: 802.11g/n mixed
 8: 802.11a/n mixed
 9: 802.11b/g/n mixed

10: 802.11a/g/n mixed

Don’t forget to save the RT2870STA.dat file, and restart the wireless (or reboot).

It’s all in the README_STA file in the driver archive :wink:

Hi,

I recently download Ubuntu 11.04 and created a dual-boot system. This is my second experience with Linux in general in about 12 years, and so far, so good. However, I’m trying to get it to connect to the internet and I can’t seem to get it to.

I have an AE1000 USB Adapter, and following the step-by-step wizard included with ubuntu for configuring wireless settings got me as far as “Great! Now go to the device drivers page” which just brought me back to the same instruction page I was on. But it did yield the fact that the chipset within my USB Adapter (which it was able to recognize as being plugged in, if not being able to load some sort of driver for initializing it) was an RT2870.

I’m a Windows user; I’m used to the command prompts in MS-DOS and the Terminal system is somewhat familiar to me, but I still can’t get it to do much of anything. Is there anyway you could perhaps make it simpler for a complete Noob such as myself to follow your instructions? I got as far as saving that reworked driver you made to my Linux partition, but I just can’t get to it through terminal. In windows you can change directories via “cd” much as linux does, but I must be getting some critical element of the syntax wrong, because no matter how I vary the spacing, or use “/” versus "" or including multiple folder files to provide the exact file path name, it always returns a file not found message. Which is somewhat frustrating.

As soon as I figure out more of the way commands are entered into terminal, I could perhaps piece together the rest of what I need from posts. In fact, I’m about to google that now, so, if I don’t have it solved by the time I get a reply, at least my need for simpler instructions won’t be as—stringent. Thank you in advance!

Can you confirm you can browse to the file using the nautilus file manager, and where it is ?

If you downoaded it with Firefox (with default settings) it is probably in the “Downloads” directory.

If you can’t find it, download it again with these commands:

cd ~
wget -O 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2 "http://bit.ly/eZHx0J"

You with then find the 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2 file in your “Home” directory.

you can unpack it through the GUI, or with:

tar -jxvf 2010_0709_RT2870_Linux_STA_v2.4.0.1.tar.bz2

cd into the unpacked directory:

cd ~/2010_0709_RT2870_Linux_STA_v2.4.0.1

then carry on from the:

sudo su
make && make install

Extra info

Just prior to posting this, I’ve updated the pre-modified driver to also include the WPA/WPA2 modification… so it would probably be a good idea to re-download it anyway.


BTW, the ~ in the above paths just means the current users “Home” directory… it saves you having to type /home/username

If you want to get to grips with the Linux command line, some of these free online books might help -
http://linuxforums.org.uk/ubuntu/ubuntu-andor-generic-linux-books-or-text-()/

If you want to know more about a particular command, you can enter “man” in front of it to see the commands man page (manual)… eg.

man tar
man make
man modprobe

etc.
To exit the man page, just hit the Q key.

I can confirm I can browse to the file using nautilus manager, and it was in the downloads folder. What was really wrong was the fact I was not including the ‘~’ symbol. Thank you for the heads-up about that one.

I downloaded your revised driver, accessed it using Terminal and it seemed to throw a couple of memory warnings. Went to install it again, and it said directories were already created, so I’m not sure if all went well upon download or not.

However I seem to have run into a snag, in that the ‘iwconfig’ command still didn’t return all of the information that you showed would’ve been available had all gone well. It is probably pertinent to mention at this point that I did not follow the edits for blacklisting. I will do that now, just to say I tried everything. I was confused, as you mentioned specific versions, and the dimly hopeful feeling in my soul said, “Well, maybe they fixed it in 11.04.” My bad on that one.

First, let’s confirm your card IS an RT2870 based card… can you post the output from:

sudo lshw -C network

entered into a terminal.

I can confirm the driver builds and installs properly on 11.04, so I’m guessing something went wrong on your build… and I’m guessing (because of your “directories were already created” comment) that the command wasn’t run as root… but we’ll get to that once you post the output from the above command :wink:

I ran that command and it kicked out:

Description: Ethernet Interface
Product: Netlink BCM 57780 Gigabit Ethernet PCIe
Vendor: Broadcom Corp
Physical ID: 0
Bus Info: . . . . . . and it all goes on. This, as you may have guessed is all information related to my onboard network adapter which I can visually confirm is not what connects me to the Internet. Never has been, never will, and I forgot about it until now.
I have had to use my windows OS to sign onto the internet and talk with you here, and I’ve been copy/pasting posts/directions inbetween. The reason I didn’t go much further is because, as I discovered, the disk I’ve been using was configured by windows as a pseudo-USB device that will let me read off it—but not write to it, at least with Ubuntu. So I wrote down enough to convey the general impression that this is in fact not my usb device at all… Since I didn’t have another disk.

 Ubuntu doesn't even seem to recognize that my USB adapter exists.  And I can confirm that I was in root when I ran that program, because it prompts me to enter a password in when I access any sudo commands and will not run until I do.

 Do you know of any off-the-shelf internet adapters that do work with Linux right out of the box?
This, as you may have guessed is all information related to my onboard network adapter which I can visually confirm is not what connects me to the Internet. Never has been, never will, and I forgot about it until now. I have had to use my windows OS to sign onto the internet

Erm… If you don’t have an active internet connection in Ubuntu, this command will have failed:

sudo apt-get update && sudo apt-get install build-essential linux-headers-generic

It needs an active internet connection to download/install those files… which would explain why the “make && make install” command also failed.

So connect with a cable, and try again.


If that doesn’t work…

Can you unplug your USB wireless adapter… wait 5 seconds… plug it back in, then run:

dmesg | tail -n 15

and post the output.

and the FULL output from:

sudo lshw -C network

and

lsusb

If you can’t mount and write to the windows disk/partition… use a cabled connection to your router, or copy the output to a USB stick.

Okay, I entered ‘sudo apt-get update && sudo apt-get install build-essential linux-headers-generic’ and here’s what linux kicked:
logan@logan-Studio-XPS-8000:~$ sudo apt-get update && sudo apt-get install build-essential linux-headers-generic
[sudo] password for logan:
Ign http://extras.ubuntu.com natty InRelease
Ign http://security.ubuntu.com natty-security InRelease
Ign http://us.archive.ubuntu.com natty InRelease
Ign http://us.archive.ubuntu.com natty-updates InRelease
Hit http://extras.ubuntu.com natty Release.gpg
Hit http://security.ubuntu.com natty-security Release.gpg
Hit http://us.archive.ubuntu.com natty Release.gpg
Hit http://extras.ubuntu.com natty Release
Hit http://security.ubuntu.com natty-security Release
Hit http://us.archive.ubuntu.com natty-updates Release.gpg
Hit http://extras.ubuntu.com natty/main Sources
Hit http://security.ubuntu.com natty-security/main Sources
Hit http://us.archive.ubuntu.com natty Release
Hit http://extras.ubuntu.com natty/main amd64 Packages
Ign http://extras.ubuntu.com natty/main TranslationIndex
Hit http://security.ubuntu.com natty-security/restricted Sources
Hit http://security.ubuntu.com natty-security/universe Sources
Hit http://security.ubuntu.com natty-security/multiverse Sources
Hit http://security.ubuntu.com natty-security/main amd64 Packages
Hit http://security.ubuntu.com natty-security/restricted amd64 Packages
Hit http://us.archive.ubuntu.com natty-updates Release
Hit http://security.ubuntu.com natty-security/universe amd64 Packages
Hit http://security.ubuntu.com natty-security/multiverse amd64 Packages
Ign http://security.ubuntu.com natty-security/main TranslationIndex
Ign http://security.ubuntu.com natty-security/multiverse TranslationIndex
Ign http://security.ubuntu.com natty-security/restricted TranslationIndex
Hit http://us.archive.ubuntu.com natty/main Sources
Hit http://us.archive.ubuntu.com natty/restricted Sources
Hit http://us.archive.ubuntu.com natty/universe Sources
Hit http://us.archive.ubuntu.com natty/multiverse Sources
Hit http://us.archive.ubuntu.com natty/main amd64 Packages
Ign http://security.ubuntu.com natty-security/universe TranslationIndex
Hit http://us.archive.ubuntu.com natty/restricted amd64 Packages
Hit http://us.archive.ubuntu.com natty/universe amd64 Packages
Hit http://us.archive.ubuntu.com natty/multiverse amd64 Packages
Ign http://us.archive.ubuntu.com natty/main TranslationIndex
Ign http://us.archive.ubuntu.com natty/multiverse TranslationIndex
Ign http://us.archive.ubuntu.com natty/restricted TranslationIndex
Ign http://us.archive.ubuntu.com natty/universe TranslationIndex
Hit http://us.archive.ubuntu.com natty-updates/main Sources
Hit http://us.archive.ubuntu.com natty-updates/restricted Sources
Hit http://us.archive.ubuntu.com natty-updates/universe Sources
Hit http://us.archive.ubuntu.com natty-updates/multiverse Sources
Hit http://us.archive.ubuntu.com natty-updates/main amd64 Packages
Hit http://us.archive.ubuntu.com natty-updates/restricted amd64 Packages
Hit http://us.archive.ubuntu.com natty-updates/universe amd64 Packages
Hit http://us.archive.ubuntu.com natty-updates/multiverse amd64 Packages
Ign http://us.archive.ubuntu.com natty-updates/main TranslationIndex
Ign http://us.archive.ubuntu.com natty-updates/multiverse TranslationIndex
Ign http://us.archive.ubuntu.com natty-updates/restricted TranslationIndex
Ign http://us.archive.ubuntu.com natty-updates/universe TranslationIndex
Ign http://extras.ubuntu.com natty/main Translation-en_US
Ign http://extras.ubuntu.com natty/main Translation-en
Ign http://security.ubuntu.com natty-security/main Translation-en_US
Ign http://security.ubuntu.com natty-security/main Translation-en
Ign http://security.ubuntu.com natty-security/multiverse Translation-en_US
Ign http://security.ubuntu.com natty-security/multiverse Translation-en
Ign http://security.ubuntu.com natty-security/restricted Translation-en_US
Ign http://security.ubuntu.com natty-security/restricted Translation-en
Ign http://security.ubuntu.com natty-security/universe Translation-en_US
Ign http://security.ubuntu.com natty-security/universe Translation-en
Ign http://us.archive.ubuntu.com natty/main Translation-en_US
Ign http://us.archive.ubuntu.com natty/main Translation-en
Ign http://us.archive.ubuntu.com natty/multiverse Translation-en_US
Ign http://us.archive.ubuntu.com natty/multiverse Translation-en
Ign http://us.archive.ubuntu.com natty/restricted Translation-en_US
Ign http://us.archive.ubuntu.com natty/restricted Translation-en
Ign http://us.archive.ubuntu.com natty/universe Translation-en_US
Ign http://us.archive.ubuntu.com natty/universe Translation-en
Ign http://us.archive.ubuntu.com natty-updates/main Translation-en_US
Ign http://us.archive.ubuntu.com natty-updates/main Translation-en
Ign http://us.archive.ubuntu.com natty-updates/multiverse Translation-en_US
Ign http://us.archive.ubuntu.com natty-updates/multiverse Translation-en
Ign http://us.archive.ubuntu.com natty-updates/restricted Translation-en_US
Ign http://us.archive.ubuntu.com natty-updates/restricted Translation-en
Ign http://us.archive.ubuntu.com natty-updates/universe Translation-en_US
Ign http://us.archive.ubuntu.com natty-updates/universe Translation-en
Reading package lists… Done
Reading package lists… Done
Building dependency tree
Reading state information… Done
build-essential is already the newest version.
linux-headers-generic is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 84 not upgraded.

Here is the output after reinserting my wireless adapter and entering in ‘dmesg | tail -n 15’ :
logan@logan-Studio-XPS-8000:~$ dmesg | tail -n 15
[ 13.276620] tg3 0000:05:00.0: eth0: Link is up at 100 Mbps, full duplex
[ 13.276623] tg3 0000:05:00.0: eth0: Flow control is off for TX and off for RX
[ 13.277151] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 13.820860] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro,commit=0
[ 23.649522] eth0: no IPv6 routers present
[ 46.751357] CE: hpet5 increased min_delta_ns to 7500 nsec
[ 46.751365] CE: hpet5 increased min_delta_ns to 11250 nsec
[ 46.751368] hrtimer: interrupt took 2788 ns
[ 51.270000] CE: hpet2 increased min_delta_ns to 7500 nsec
[ 51.270065] CE: hpet2 increased min_delta_ns to 11250 nsec
[ 68.197523] CE: hpet3 increased min_delta_ns to 7500 nsec
[ 68.197533] CE: hpet3 increased min_delta_ns to 11250 nsec
[ 99.129742] CE: hpet4 increased min_delta_ns to 7500 nsec
[ 99.129773] CE: hpet4 increased min_delta_ns to 11250 nsec
[ 643.711646] usb 2-1.4: new high speed USB device using ehci_hcd and address 6

Here is the full output of ‘sudo lshw -C network’ :

logan@logan-Studio-XPS-8000:~$ sudo lshw -C network
*-network
description: Ethernet interface
product: NetLink BCM57780 Gigabit Ethernet PCIe
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:05:00.0
logical name: eth0
version: 01
serial: 00:25:64:e5:04:60
size: 100Mbit/s
capacity: 1Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=tg3 driverversion=3.116 duplex=full firmware=sb v2.05 ip=192.168.2.2 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
resources: irq:48 memory:fbff0000-fbffffff

[EDIT] : Here’s ‘lusb’ results:

root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1# lsusb
Bus 002 Device 006: ID 13b1:002f Linksys AE1000 v1 802.11n [Ralink RT2870]
Bus 002 Device 005: ID 0461:4d65 Primax Electronics, Ltd
Bus 002 Device 004: ID 0b38:0003 Gear Head
Bus 002 Device 003: ID 18e3:9106 Fitipower Integrated Technology Inc
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1#

[ 643.711646] usb 2-1.4: new high speed USB device using ehci_hcd and address 6

This tells us that it is detecting a USB device is being attached, but the system isn’t recognising it as a wireless adapter.

you missed the:

lsusb

command… hopefully this will give us the vendor and device ID string, so we can find out what the adapter is.

There may also be an issue with your sources.list as you shouldn’t be getting those Ign lines

Is this a fresh install of natty, or an upgrade ?

This is a fresh install. I’m utterly new to Linux of any sort; the last thing I tried was Redhat 6.0. :-[

[EDIT] This is also the first time I’ve ever physically connected to ethernet. The last hardline I ever had connected to my computer was indeed a regular phone line. Once we upgraded to something faster, I automatically switched to wireless. . . It goes a whole lot quicker than wireless does. Think I might just get about 30 feet or so of line and call it good, lol. Seeing as how the adapter that came with the computer works and all. . . .

Heh ;D bit restrictive if it’s a laptop though… you’ll trip everyone else up.

Can you post the output from:

lsusb

with the adapter plugged in.

Sorry, I edited my original post that had all the command results, it’s at the bottom.

root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1# lsusb
Bus 002 Device 006: ID 13b1:002f Linksys AE1000 v1 802.11n [Ralink RT2870]
Bus 002 Device 005: ID 0461:4d65 Primax Electronics, Ltd
Bus 002 Device 004: ID 0b38:0003 Gear Head
Bus 002 Device 003: ID 18e3:9106 Fitipower Integrated Technology Inc
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Naw, it’s a desktop. Only laptop I got is a netbook, hehe.

Sorry, I’ve been trying to just repost it, but for some reason it’s not letting me. But it’s at the end of that post that has all the commands in it, as an edit when I realized I mistyped the ‘lusb’ command.

HAH! And then they all went through at once. . . :-[

OK, I’ve added your cards ID string to the driver, so you’re going to have to download it again…

First delete everything (files and folders) in your home folder that has RT2870 in it’s name.

Now download the new driver:
http://dl.dropbox.com/u/11876059/Noobuntu.tar.bz2

and put it in your home folder.

unpack it with:

cd ~

then:

tar -xjvf Noobuntu.tar.bz2

change to root:

sudo su

cd into the unpacked directory:

cd /home/username/2010_0709_RT2870_Linux_STA_v2.4.0.1

(be sure to change the username to YOUR username in the above command)
now build the driver:

make

now install it with:

make install

Then see what:

modprobe rt2870sta

then:

exit

then:

iwconfig

gives you.


If it works, but doesn’t survive a reboot… run this:

sudo sh -c 'echo rt2870sta >> /etc/modules'

and reboot again.

Okey dokey, here’s what happened when I ‘make’ -ed it:

[spoiler]logan@logan-Studio-XPS-8000:~$ sudo su
[sudo] password for logan:
root@logan-Studio-XPS-8000:/home/logan# cd /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1
root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1# makemake -C tools
make[1]: Entering directory /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools' gcc -g bin2h.c -o bin2h make[1]: Leaving directory /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools’
/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/tools/bin2h
cp -f os/linux/Makefile.6 /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/Makefile
make -C /lib/modules/2.6.38-8-generic/build SUBDIRS=/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux modules
make[1]: Entering directory /usr/src/linux-headers-2.6.38-8-generic' CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_md5.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_sha2.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_hmac.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c: In function ‘WscEncryptData’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c:1522:1: warning: the frame size of 1424 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c: In function ‘WscDecryptData’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c:1592:1: warning: the frame size of 1424 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c: In function ‘AES_GTK_KEY_WRAP’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c:2265:1: warning: the frame size of 1648 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c: In function ‘AES_GTK_KEY_UNWRAP’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_aes.c:2348:1: warning: the frame size of 1152 bytes is larger than 1024 bytes CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/crypt_arc4.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c: In function ‘MlmeResetRalinkCounters’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c:895:2: warning: cast from pointer to integer of different size /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c:895:2: warning: cast from pointer to integer of different size /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c: In function ‘BssTableSetEntry’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c:5739:39: warning: operation on ‘Tab->BssOverlapNr’ may be undefined /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c: In function ‘BssTableSortByRssi’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/mlme.c:6100:1: warning: the frame size of 1728 bytes is larger than 1024 bytes CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_wep.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/action.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_data.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtmp_init.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_tkip.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_aes.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_sync.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/eeprom.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_sanity.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_info.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_cfg.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_wpa.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/dfs.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/spectrum.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/spectrum.c: In function ‘PeerMeasureReportAction’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/spectrum.c:1977:3: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’ CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtmp_timer.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rt_channel.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_profile.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_asic.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_cmd.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/assoc.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/auth.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/auth_rsp.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c: In function ‘PeerBeaconAtJoinAction’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c:1094:1: warning: the frame size of 1424 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c: In function ‘PeerBeaconAtScanAction’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c:764:1: warning: the frame size of 1360 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c: In function ‘MlmeStartReqAction’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c:581:1: warning: the frame size of 1088 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c: In function ‘PeerBeacon’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sync.c:1764:1: warning: the frame size of 1424 bytes is larger than 1024 bytes CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sanity.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/rtmp_data.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/connect.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/connect.c: In function ‘CntlOidScanProc’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/connect.c:355:1: warning: the frame size of 1776 bytes is larger than 1024 bytes CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/wpa.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/ags.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../sta/sta_cfg.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtmp_init_inf.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_profile.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c: In function ‘rt_ioctl_siwencode’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:1479:3: warning: suggest parentheses around operand of ‘!’ or change ‘&’ to ‘&&’ or ‘!’ to ‘~’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c: In function ‘rt_ioctl_iwaplist’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:599:1: warning: the frame size of 1280 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c: In function ‘rt_ioctl_siwmlme’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:1979:1: warning: the frame size of 1696 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c: In function ‘RTMPIoctlMAC’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:5836:1: warning: the frame size of 1360 bytes is larger than 1024 bytes /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c: In function ‘RTMPIoctlE2PROM’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/sta_ioctl.c:6035:1: warning: the frame size of 1376 bytes is larger than 1024 bytes CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘duplicate_pkt’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:477:3: warning: passing argument 1 of ‘memmove’ makes pointer from integer without a cast /usr/src/linux-headers-2.6.38-8-generic/arch/x86/include/asm/string_64.h:58:7: note: expected ‘void *’ but argument is of type ‘sk_buff_data_t’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:479:3: warning: passing argument 1 of ‘memmove’ makes pointer from integer without a cast /usr/src/linux-headers-2.6.38-8-generic/arch/x86/include/asm/string_64.h:58:7: note: expected ‘void *’ but argument is of type ‘sk_buff_data_t’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘ClonePacket’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:629:23: warning: assignment makes integer from pointer without a cast /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘update_os_packet_info’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:651:15: warning: assignment makes integer from pointer without a cast /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘wlan_802_11_to_802_3_packet’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:672:15: warning: assignment makes integer from pointer without a cast /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘send_monitor_packets’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:945:9: warning: format ‘%d’ expects type ‘int’, but argument 3 has type ‘long unsigned int’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘RtmpOSNetDevDetach’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:1694:38: warning: initialization discards qualifiers from pointer target type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c: In function ‘RtmpOSNetDevAttach’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_linux.c:1731:38: warning: initialization discards qualifiers from pointer target type CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_main_dev.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_main_dev.c: In function ‘MainVirtualIF_close’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_main_dev.c:117:13: warning: unused variable ‘Cancelled’ CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/ba_action.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/ba_action.c: In function ‘convert_reordering_packet_to_preAMSDU_or_802_3_packet’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/ba_action.c:1531:2: warning: assignment makes integer from pointer without a cast CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.o /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In function ‘RTMPFreeTxRxRingMemory’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:234:9: warning: passing argument 3 of ‘RTMPFreeUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62:20: note: expected ‘UCHAR **’ but argument is of type ‘struct __TX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:241:9: warning: passing argument 3 of ‘RTMPFreeUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62:20: note: expected ‘UCHAR **’ but argument is of type ‘struct __TX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:278:11: warning: passing argument 3 of ‘RTMPFreeUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62:20: note: expected ‘UCHAR **’ but argument is of type ‘struct __HTTX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In function ‘NICInitTransmit’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:507:12: warning: passing argument 3 of ‘RTMPFreeUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:62:20: note: expected ‘UCHAR **’ but argument is of type ‘struct __TX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c: In function ‘RTMPAllocTxRxRingMemory’: /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:566:13: warning: passing argument 3 of ‘RTMPAllocUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34:20: note: expected ‘VOID **’ but argument is of type ‘struct __HTTX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:596:12: warning: passing argument 3 of ‘RTMPAllocUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34:20: note: expected ‘VOID **’ but argument is of type ‘struct __TX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:610:12: warning: passing argument 3 of ‘RTMPAllocUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34:20: note: expected ‘VOID **’ but argument is of type ‘struct __TX_BUFFER **’ /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:628:13: warning: passing argument 3 of ‘RTMPAllocUsbBulkBufStruct’ from incompatible pointer type /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_mac_usb.c:34:20: note: expected ‘VOID **’ but argument is of type ‘UCHAR **’ CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtusb_io.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtusb_bulk.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtusb_data.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/cmm_data_usb.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/ee_prom.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtmp_mcu.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../common/rtusb_dev_id.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_usb.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/rt_usb_util.o CC [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/../../os/linux/usb_main_dev.o LD [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/rt2870sta.o Building modules, stage 2. MODPOST 1 modules CC /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/rt2870sta.mod.o LD [M] /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/rt2870sta.ko make[1]: Leaving directory /usr/src/linux-headers-2.6.38-8-generic’[/spoiler]

Here’s what happened when I ‘make install’ -ed it:

[spoiler]root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1# make install
make -C /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux -f Makefile.6 install
mkdir: cannot create directory /etc/Wireless': File exists make[1]: Entering directory /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux’
rm -rf /etc/Wireless/RT2870STA
mkdir /etc/Wireless/RT2870STA
cp /home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/RT2870STA.dat /etc/Wireless/RT2870STA/.
install -d /lib/modules/2.6.38-8-generic/kernel/drivers/net/wireless/
install -m 644 -c rt2870sta.ko /lib/modules/2.6.38-8-generic/kernel/drivers/net/wireless/
/sbin/depmod -a 2.6.38-8-generic
make[1]: Leaving directory `/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux’
root@logan-Studio-XPS-8000:/home/logan/2010_0709_RT2870_Linux_STA_v2.4.0.1#
[/spoiler]