RT2870 WLAN Stick (D-Link DWA 140) not working. firmware does not support detected chipset

Bug #762987 reported by FERNmann
62
This bug affects 11 people
Affects Status Importance Assigned to Milestone
linux-backports-modules-2.6.24 (Ubuntu)
Invalid
Undecided
Unassigned
Hardy
Invalid
Undecided
Seth Forshee
Lucid
Invalid
Undecided
Unassigned
Maverick
Invalid
Undecided
Unassigned
Natty
Invalid
Undecided
Unassigned
linux-firmware (Ubuntu)
Fix Released
Undecided
Unassigned
Hardy
Invalid
Undecided
Unassigned
Lucid
Won't Fix
Medium
Unassigned
Maverick
Won't Fix
Medium
Unassigned
Natty
Fix Released
Medium
Unassigned

Bug Description

I'm using a D-Link DWA 140 USB WLAN stick which worked fine under Maverick. On Natty the NetworkManager displays "firmware missing", connecting to an access point is not possible. This is not only occuring under Natty, it also doesn't work with Maverick if you install the 2.6.38 mainline kernel.

There is a workaround for this problem. A quick "lsmod | grep rt" shows the following:

parport_pc 36959 0
parport 46458 3 parport_pc,ppdev,lp
rt2870sta 450556 0
rt2800usb 18235 0
rt2800lib 45181 1 rt2800usb
crc_ccitt 12667 2 rt2870sta,rt2800lib
rt2x00usb 20330 1 rt2800usb
rt2x00lib 49235 3 rt2800usb,rt2800lib,rt2x00usb
mac80211 294370 3 rt2800lib,rt2x00usb,rt2x00lib
cfg80211 178528 2 rt2x00lib,mac80211

rt2870sta is the right module which is also loaded in Maverick/2.6.35 and which is needed for the stick to work. rt2800usb, rt2800lib, rt2x00usb and rt2x00lib are wrong modules which are causing the problem. So we have to unload all the ralink-related modules:

sudo modprobe -rf rt2870sta rt2800usb rt2800lib rt2x00usb rt2x00lib

Then we can load the right module:

sudo modprobe rt2870sta

Now it should be possible to connect to an access point with the NetworkManager. To make this change permanent, we have to blacklist all the wrong modules in the /etc/modprobe.d/blacklist.conf file.

It would be awesome if the developers fix this until natty release so it'll be working out-of-the-box. :-)

tags: added: workaround
description: updated
description: updated
affects: ubuntu → linux (Ubuntu)
Revision history for this message
Gustav (globus4) wrote :

I think there is a conflict between:

/lib/modules/2.6.38-8-generic/kernel/drivers/net/wireless/rt2x00

and

/lib/modules/2.6.38-8-generic/kernel/drivers/staging/rt2870

My usb wlan stick works, when removing staging/rt2870 and then reboot.

(although it had been working with the rt2870 driver as well in the past,
but now rt2x00 seems superior (?))

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

It is a misconception that rt2800usb is the wrong module. It is the right module. It is just not the only module on your system that says that it can drive hardware with this ID (which consists of vendor plus device id).

From http://wiki.ubuntuusers.de/WLAN/Karten/D-Link I see that there are two likely device IDs for this device. One is based on RT2870 and one on RT3070 according to that list. lsusb will give the vendor and device ID for this stick. Please post this ID. From the staging driver loaded I assume it will be 07d1: 3c09 (RT2870 based).

Historically, the staging driver might have been necessary for this device, but I think it should now work with the preferred (in-kernel, non-staging) rt2800usb.
from the source[1]:
 126 config RT2800USB
 127 tristate "Ralink rt27xx/rt28xx/rt30xx (USB) support"
 [..]
 135 ---help---
 136 This adds support for rt27xx/rt28xx/rt30xx wireless chipset family.
 137 Supported chips: RT2770, RT2870 & RT3070, RT3071 & RT3072
 138
 139 When compiled as a module, this driver will be called "rt2800usb.ko".

As Gustav wrote there might be a conflict between the two available drivers. Could you please blacklist (or even rename the module to something like rt2870sta.ko.disable) rt2870sta and then shut down and boot (not just restart) and try again with the rt2800usb? If it doesn't work we should try and get to the root cause of this so that it will work for everyone out of the box in oneiric.

[1]http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.38.y.git;a=blob;f=drivers/net/wireless/rt2x00/Kconfig;h=6f383cd684b009a1cee9663768759c32772a7cf1;hb=HEAD

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

OK, I've blacklisted rt2870sta und unblacklisted the other ones but that doesn't work, NetworkManager shows "firmware missing" like described above.

With lsusb, I found out something interesting. lsusb says:

Bus 001 Device 003: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT2870]

Hm, on the one hand, it seems to be a RT2870 based one like it's written in the output, but one the other hand its ID is 07d1:3c0a which indicates that it's RT3070 based. lsusb also says it's "rev.B2" (the RT3070-based version of the DWA 140). I've checked out the original box from D-Link. Here it says "H/W Ver.: B2".

I guess my stick has a RT3070 chipset which also explains why the rt2800usb driver does not work. The root of the problem is that the stick isn't correctly identifying so the wrong driver is loaded or there is a bug in one of the subsystems (libusb, udev etc.)

The ubuntuusers-wiki says that rt2870sta *could* work with RT3070 although it hadn't been written for that. The right driver for my device is rt3070 but I am not sure of it will work because my device insists to be a RT2870. I'll have to test it out, but acutally I have no reason to complain because I was using rt2870sta with that device since Lucid and it worked properly.

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Hi FERNmann,

On Wed, Jun 1, 2011 at 3:11 PM, FERNmann <email address hidden> wrote:
> OK, I've blacklisted rt2870sta und unblacklisted the other ones but that
> doesn't work, NetworkManager shows "firmware missing" like described
> above.
What do the logs say about that?
dmesg | grep rt2
grep rt2 /var/log/syslog
grep -i firmware /var/log/syslog

> With lsusb, I found out something interesting. lsusb says:
>
> Bus 001 Device 003: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N
> Adapter(rev.B2) [Ralink RT2870]
>
> Hm, on the one hand, it seems to be a RT2870 based one like it's written
> in the output, but one the other hand its ID is 07d1:3c0a which
> indicates that it's RT3070 based. lsusb also says it's "rev.B2" (the
> RT3070-based version of the DWA 140). I've checked out the original box
> from D-Link. Here it says "H/W Ver.: B2".

I think the simplest explanation is that the info on
http://wiki.ubuntuusers.de/WLAN/Karten/D-Link is wrong.
http://wiki.debian.org/rt2870sta has this to say about DWA-140:
USB: 07D1:3C09 D-Link System DWA-140 RangeBooster N Adapter(rev.B1)
[Ralink RT2870]
USB: 07D1:3C0A D-Link System DWA-140 RangeBooster N Adapter(rev.B2)
[Ralink RT2870]
which is in sync with what lsusb and the box say.

> I guess my stick has a RT3070 chipset which also explains why the
> rt2800usb driver does not work. The root of the problem is that the
> stick isn't correctly identifying so the wrong driver is loaded or there
> is a bug in one of the subsystems (libusb, udev etc.)

Again, from the source (see my previous comment):
for module rt2800usb:
Supported chips: RT2770, RT2870 & RT3070, RT3071 & RT3072
So no matter whether it is 2870 based or 3070 based (I do believe
lsusb when it says it is RT2870) it still is supposed to work with
rt2800usb and that is the module that needs debugging if it does not
work. Everything else (drivers from the staging directory or from
Ralink's website) is a workaround.

Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote : Re: RT2870 WLAN Stick (D-Link DWA 140) not working, wrong modules loaded

>> Supported chips: RT2770, RT2870 & RT3070, RT3071 & RT3072

Oh, sorry for that. I thought because it is called rt2800usb it only works with RT28XX chipsets. Fine, it's irrelevant what chipset I have, whether it's rt2870 or rt3070.

So we have the three drivers rt2800usb, rt2870sta and rt3070. rt3070 doesn't compile on my machine and rt2870sta ist outdated and may be dropped, right?

Let's move on with rt2800usb. I've attached the logs you requested. What makes me confused is that it says in syslog_rt2.log:

> rt2870sta: module is from the staging directory, the quality is unknown, you have been warned.

I've blacklisted rt2870sta before reboot (shutdown + boot as you said) and lsmod shows that it isn't loaded.

Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

> What makes me confused is that it says in syslog_rt2.log

Forget it, old entries, of course :D

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Ok, it seems clear where we must look:
phy0 -> rt2x00lib_request_firmware: Error - Current firmware does not
support detected chipset.
NetworkManager[1038]: <warn> (wlan0): firmware may be missing.

Let's look at what you have:
md5sum /lib/firmware/rt2870.bin

Bug 782752 seems to be about the same problem and has identified a
working firmware. But while it would be nice if that worked for you it
might be better to look whether the newest firmware already in ubuntu
works. We want to fix this for everyone out of the box after all.
https://launchpad.net/ubuntu/+source/linux-firmware/+publishinghistory
currently newest:
https://launchpad.net/ubuntu/oneiric/+source/linux-firmware/1.53
the changelog says this is up to date till commit:
http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=commit;h=ae524638c277301a83daf126aaaf880738e2474b
This means it includes the shiny new firmware posted to the rt2x00 mailing list:
http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2011-March/003382.html
which subsequently was commited here:
http://git.kernel.org/?p=linux/kernel/git/dwmw2/linux-firmware.git;a=commit;h=5c10f3d6a5c76dca943ae68926b602bd0a1eae3

Maybe you could just try by extracting rt2870.bin from here:
https://launchpad.net/ubuntu/oneiric/+source/linux-firmware/1.53/+files/linux-firmware_1.53.tar.gz
and copy it in /lib/firmware (rename the old one to e.g. rt2870.bin.disable)

About why there are so many drivers:
Basically there are two sets of drivers, the "legacy" drivers
developed and open sourced by Ralink and those (mainly - for new
devices rt2800usb and rt2800pci) developed by the rt2x00 project
(looking a lot at the legacy sources to make up for missing specs and
getting answers from Ralink engineers and also increasingly getting
patches sent by Ralink engineers). The Ralink drivers are monoliths
(look at the size) and do not fit the linux wireless infrastructure
(mac80211 stack). For that reason they will never make it into the
kernel proper. They will stay in staging until they are deleted. There
aren't any big differences between what is in staging and what is
available directly from the Ralink website, architecturally speaking.

Resources that may or may not be interesting:
http://www.spinics.net/lists/linux-wireless/msg67515.html

affects: linux (Ubuntu) → linux-firmware (Ubuntu)
summary: - RT2870 WLAN Stick (D-Link DWA 140) not working, wrong modules loaded
+ RT2870 WLAN Stick (D-Link DWA 140) not working. firmware does not
+ support detected chipset
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

We've made progress.

I've tested the rt2870.bin file from linux-firmware 1.53 which works :-). You still have to blacklist rt2870sta because otherwise nothing ralink-related is loaded. Syslog:

Jun 2 09:41:26 sixpack NetworkManager[1024]: <info> (wlan0): new 802.11 WiFi device (driver: 'rt2800usb' ifindex: 3)
Jun 2 09:45:45 sixpack kernel: [ 70.043618] usbcore: registered new interface driver rt2800usb
Jun 2 09:47:12 sixpack kernel: [ 14.136337] Registered led device: rt2800usb-phy0::radio
Jun 2 09:47:12 sixpack kernel: [ 14.136360] Registered led device: rt2800usb-phy0::assoc
Jun 2 09:47:12 sixpack kernel: [ 14.136371] Registered led device: rt2800usb-phy0::quality
Jun 2 09:47:12 sixpack kernel: [ 14.137068] usbcore: registered new interface driver rt2800usb

lsmod:

rt2800usb 18235 0
rt2800lib 45181 1 rt2800usb
crc_ccitt 12667 1 rt2800lib
rt2x00usb 20330 1 rt2800usb
rt2x00lib 49235 3 rt2800usb,rt2800lib,rt2x00usb
mac80211 294370 3 rt2800lib,rt2x00usb,rt2x00lib
cfg80211 178528 2 rt2x00lib,mac80211

Additionally, I tested the rt2870-firmware from the ralink website as described in Bug 782752. This also works, but not as good as the one from linux-firmware. NetworkManager is reacting slow on connecting/disconnecting and the syslog shows the following:

Jun 2 09:33:13 sixpack kernel: [ 288.072780] phy0 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x1328 with error -71.

But the one from linux-firmware is working great, I will test it for some days to check its stability, speed etc.
Thank you for your help + your explanations, I learned a bit more about linux' wifi architecture. :thumdsup

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote : Re: [Bug 762987] Re: RT2870 WLAN Stick (D-Link DWA 140) not working. firmware does not support detected chipset

Great. So this bug is already fixed in oneiric. With the possible
exception of the interference issue at the moment - you say you have
to blacklist the rt2870sta. I looked up the staging directory in the
new kernel 3.0 (what would have been 2.6.40 if Linus hadn't gone and
renamed it :-) ). What I found was that there are no more Ralink
staging drivers in 3.0 since this commit:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fefecc6989b4b24276797270c0e229c07be02ad3
>staging: rt2860sta and rt2870sta: Remove drivers replaced in net/wireless
>
>The staging driver rt2860sta is replaced by mainline driver rt2800pci, and
>rt2870sta is replaced by rt2800usb. As a result, the staging drivers are
>deleted.

This will automatically take care of any interference issue in oneiric
once it switches to 3.0.

What remains to be considered is how to fix this for everyone in natty
(and possibly users of linux-backports-modules-compat-wireless in
maverick and lucid). From what I see a SRU (stable release update)
should be considered for linux-firmware, replacing the rt2870bin (md5:
e4b60f5bb4980a26cbac32be690451d6) with the /lib/firmware/rt2870.bin
(md5: 36c944c3138125605d28c0a3a1338be9) from linux-firmware 1.53 which
is already in oneiric.

Changed in linux-firmware (Ubuntu):
status: Incomplete → Fix Released
Changed in linux-firmware (Ubuntu):
assignee: nobody → Wolfgang Kufner (wolfgangkufner)
Changed in linux-firmware (Ubuntu):
assignee: Wolfgang Kufner (wolfgangkufner) → nobody
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

Well, I've spoken about testing the driver in my last post and I noticed that rt2800usb is making some trouble when using together with 2.6.38. The shutdown/reboot takes about a minute (with rt2870sta: only a few seconds on my machine) and sometimes you have to unplug+replug the stick to get it work. Also the NetworkManager isn't always responding on my commands, if I disable the network, the network gets disabled but the icon in the panel still says that I am connected.

I upgraded to kernel 2.6.39 via the Kernel Mainline PPA and the problems are not occuring there. Maybe the new firmware isn't compatible with the module in 2.6.38. I also wanted to test 3.0-rc1 but the system crashes after login, I read some programs doing version checks have to be modified to work with the 3.x kernel, so we have to wait a bit.

> What remains to be considered is how to fix this for everyone in natty
> (and possibly users of linux-backports-modules-compat-wireless in
> maverick and lucid). From what I see a SRU (stable release update)
> should be considered for linux-firmware, replacing the rt2870bin (md5:
> e4b60f5bb4980a26cbac32be690451d6) with the /lib/firmware/rt2870.bin
> (md5: 36c944c3138125605d28c0a3a1338be9) from linux-firmware 1.53 which
> is already in oneiric.

That would be great, but it has to be made sure that the new firmware is working with kernel 2.6.38, as described above.

In look back, Linux has made a good progress in hardware support. Some years ago I tried to use Linux with wifi and nothing worked (or just unencrypted connections were supported), today it's much more stress-free.

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Are the problems with the natty release kernel 2.6.38-8.42? Try with the 2.6.38-9.43 from proposed. It carries fixes for some Ralink problems. If that one does still have issues then try the latest mainline stable 2.6.38 (right now 2.6.38.7) from http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38.7-natty/ .

The stable kernels automatically go into natty with some lag. So if an issue is fixed there nothing more needs to be done about that.

It might even be worth checking whether the proposed or stable kernel also really do need the updated firmware from 1.53 (md5: 36c944c3138125605d28c0a3a1338be9).

3.0-rc1 is already running on my system :-) . I have also gone and installed the whole linux-firmware 1.53 package to see if there are any regressions. Looking good so far.

Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

> Are the problems with the natty release kernel 2.6.38-8.42? Try with the 2.6.38-9.43 from proposed.

Yes, the problems occur with the 2.6.38-8.42 kernel that ships with natty. 2.6.38-9.43 fixes those, no trouble with that version :-)

> It might even be worth checking whether the proposed or stable kernel also really do need the updated firmware from
>1.53 (md5: 36c944c3138125605d28c0a3a1338be9)

Both 2.6.38-9.43 from proposed and 2.6.39.1 from mainline still need the updated firmware, otherwise you get that "firmware missing" message again.

So all what has to be done is to include the new rt2870.bin in the linux-firmware package in natty. 2.6.38-9.43 will land in natty in some days anyway.

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :
Download full text (4.4 KiB)

Agreed.

Btw, I have found some output from such a DWA-140 with compat-wireless
with debugging enabled. This prints a much better chip info:

http://rt2x00.serialmonkey.com/phpBB/viewtopic.php?f=5&t=6061
> Bus 003 Device 007: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N USB Adapter(rev.B2)
..
> phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 3071, rf: 0008, rev: 0213.

So it looks like it is a 3071 chipset. And from the code snippet below
it can be seen that for that chipset the rt2800usb wants to load the
second image in a firmware of size 8KiB.

http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.38.y.git;a=blob;f=drivers/net/wireless/rt2x00/rt2800usb.c;h=197a36c05fdaf18a294000b9eae8b5dad2073eea;hb=HEAD
116 /*
117 * Check which section of the firmware we need.
118 */
119 if (rt2x00_rt(rt2x00dev, RT2860) ||
120 rt2x00_rt(rt2x00dev, RT2872) ||
121 rt2x00_rt(rt2x00dev, RT3070)) {
122 offset = 0;
123 length = 4096;
124 } else {
125 offset = 4096;
126 length = 4096;
127 }

For these chips the rt2800usb needs to load the concatenated second
firmware image from an 8KiB firmware, but natty still comes with the
4KiB rt2870.bin. In 1.53 2870.bin doubles in size to exactly 8KiB. Two
4KiB drivers are concatenated.

In preparation for a SRU we should look if anything formerly working
potentially breaks with the new firmware. Ralink says it is backward
compatible, so older drivers that load the new firmware should be
fine:

http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2011-March/003380.html
Ralink's Shiang Tu says:
We always suggest to use latest firmware, because it's backward
compatible and also has some enhancement, bug fix, or support of new
chip
For rt5390 or newer chips, it shall upgrade the firmware to this
version, or it may malfunction.

The USB drivers in staging have been modified (vs. the drivers from
the Ralink website) to load 4KiB firmware. From looking at the code
they should just take the first half of an 8KiB firmware and ignore
the rest. Nevertheless I would prefer to have a regression test with
RT2860, RT2872 or RT3070 based hardware with a USB driver from staging
and the oneiric 8KiB rt2870.bin. Maybe we can find someone who can do
this. If testing that it might be good to move the other Ralink
firmware files out of /lib/firmware temporarily (or disable them by
renaming) to prove that it loads the 8KiB rt2870.bin (md5:
36c944c3138125605d28c0a3a1338be9) from linux-firmware 1.53.

What follows is just a bunch of stuff I have looked up that might come
in handy for reference:

older kernels have more staging drivers:
lucid: 2.6.32
rt2860sta
rt2870sta <-- usb
rt3070sta <-- usb
rt3090sta

maverick: 2.6.35
rt2860sta
rt2870sta <-- usb
rt3070sta <-- usb

natty: 2.6.38
rt2860sta
rt2870sta <-- usb

Changelog
linux-firmware (1.53) oneiric
has 3 patches about rt2* :
rt2870sta: Use latest firmware for RT3070 and RT3071
rt2860sta: Use latest firmware for RT3090
linux-firmware: rt2800pci: rt2800usb: Firmware update <--

The file we want to replace is the same from ...

Read more...

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Actually, with linux-firmware 1.53 the rt3070.bin is now a symlink to
the 8KiB rt2870.bin (because of patch rt2870sta: Use latest firmware
for RT3070 and RT3071), so in oneiric currently a staging driver will
have to read the first part of an 8KiB firmware now.

Revision history for this message
Seth Forshee (sforshee) wrote :

I cherry picked the rt2800 firmware updates into linux-firmware 1.52 and posted a package.

http://people.canonical.com/~sforshee/lp762987/linux-firmware_1.52~lp762987v201106061858_all.deb

Please test and post back here whether or not this fixes the issues so we can get this fixed in the natty version of linux-firmware. Regression testing against any other chipsets supported by this firmware is also greatly appreciated. Thanks!

Changed in linux-firmware (Ubuntu Natty):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Seth Forshee (sforshee)
status: In Progress → Incomplete
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

The above .deb-Package works, MD5 Hash of rt2870.bin is

36c944c3138125605d28c0a3a1338be9

which is identical to the rt2870.bin in linux-firmware 1.53. Thanks!

Seth Forshee (sforshee)
Changed in linux-firmware (Ubuntu Natty):
status: Incomplete → In Progress
Revision history for this message
Seth Forshee (sforshee) wrote :

Natty SRU Justification:

Impact: The rt2800 drivers expect firmware for RT307x chipsets to be found in rt2870.bin. This is not the case in natty's linux-firmware package, and thus the driver fails to load firmware for RT307x chipsets.

Fix: Update rt2800 firmware. This is a clean upstream cherry pick.

Testcase: Tested on LP #762987 and #770232.

Tim Gardner (timg-tpi)
Changed in linux-firmware (Ubuntu Natty):
status: In Progress → Fix Committed
Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Hi Seth,

nice seeing you here :-)

Since the pci firmware is also updated in your test package I did a
couple of tests with my RT2860 pci card on live systems. No
regressions were spotted. The rt2800pci driver has measurably
progressed since earlier releases:

I wanted to do some testing on older releases because I think a SRU at
least for lucid should be considered. It is still supported for the
next 22 month and "we regularly want to enable new hardware" on LTS
releases. The compat-wireless packages for lucid will suffer from the
exact same bug here.

However, on natty and lucid rt2860sta did not work out of the box, so
no easy regression-testing with live systems. It also shows the value
of having the new drivers available through compat-wireless packages.

Test results:

Natty:

no problems found in short testing with browsing and iperf -c (>70 Mbit/s) with:
DISTRIB_CODENAME=natty (live)
2.6.38-8-generic x86_64
03:00.0 Network controller [0280]: Ralink corp. RT2860 [1814:0781]
75a1da3caa0b1c95e81dfba207f834c6 /lib/firmware/rt2860.bin
36c944c3138125605d28c0a3a1338be9 /lib/firmware/rt2870.bin
filename:
/lib/modules/2.6.38-8-generic/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko
firmware: rt2860.bin
srcversion: 9EAFA237203AC68B2B4EC40

Maverick:

stock live CD: iperf -c 9Mbit/s
DISTRIB_CODENAME=maverick
2.6.35-22-generic i686
03:00.0 Network controller [0280]: RaLink RT2860 [1814:0781]
 Kernel driver in use: rt2800pci
7f55011396eff4983f26bb7dd7339fb3 /lib/firmware/rt2860.bin
e4b60f5bb4980a26cbac32be690451d6 /lib/firmware/rt2870.bin
filename:
/lib/modules/2.6.35-22-generic/kernel/drivers/net/wireless/rt2x00/rt2800pci.ko
firmware: rt2860.bin
srcversion: 2F80455F839A36244226CB5

changing to staging driver rt2860sta: iperf -c 19Mbit/s
DISTRIB_CODENAME=maverick
2.6.35-22-generic i686
03:00.0 Network controller [0280]: RaLink RT2860 [1814:0781]
 Kernel driver in use: rt2860
7f55011396eff4983f26bb7dd7339fb3 /lib/firmware/rt2860.bin
e4b60f5bb4980a26cbac32be690451d6 /lib/firmware/rt2870.bin
filename:
/lib/modules/2.6.35-22-generic/kernel/drivers/staging/rt2860/rt2860sta.ko
firmware: rt3090.bin
firmware: rt2860.bin
srcversion: 1CC5B0F527E33CC4AF73D2B

changing to testing firmware and reloading driver: iperf -c 24Mbit/s
DISTRIB_CODENAME=maverick
2.6.35-22-generic i686
03:00.0 Network controller [0280]: RaLink RT2860 [1814:0781]
 Kernel driver in use: rt2860
75a1da3caa0b1c95e81dfba207f834c6 /lib/firmware/rt2860.bin
36c944c3138125605d28c0a3a1338be9 /lib/firmware/rt2870.bin

changing to rt2800pci: iperf -c 23Mbit/s
DISTRIB_CODENAME=maverick
2.6.35-22-generic i686
03:00.0 Network controller [0280]: RaLink RT2860 [1814:0781]
 Kernel driver in use: rt2800pci
75a1da3caa0b1c95e81dfba207f834c6 /lib/firmware/rt2860.bin
36c944c3138125605d28c0a3a1338be9 /lib/firmware/rt2870.bin

Revision history for this message
Seth Forshee (sforshee) wrote :

Hi Wolfgang! Thanks for helping identify the solution for these issues. You made my job easy!

Good point about compat-wireless. I'll work on getting SRUs for maverick, lucid, and hardy.

Tim Gardner (timg-tpi)
Changed in linux-backports-modules-2.6.24 (Ubuntu Hardy):
assignee: nobody → Seth Forshee (sforshee)
status: New → In Progress
Changed in linux-backports-modules-2.6.24 (Ubuntu Lucid):
status: New → Invalid
Changed in linux-backports-modules-2.6.24 (Ubuntu Maverick):
status: New → Invalid
Changed in linux-backports-modules-2.6.24 (Ubuntu Natty):
status: New → Invalid
Changed in linux-firmware (Ubuntu Hardy):
status: New → Invalid
Revision history for this message
Seth Forshee (sforshee) wrote :

I built a package for hardy (amd64 only at the moment) with the new firmware. If you are able please test against hardy with compat-wireless and report the results back here. Thanks!

Revision history for this message
Seth Forshee (sforshee) wrote :
Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Didn't think about hardy :-)

Surprisingly backports-modules for hardy is missing rt2800usb and
rt2800pci modules (so the new firmware really has got nothing to do
there yet). I tried installing compat-wireless-2.6.39-1 from source.
This go me as far as:
phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
 After mv /lib/udev/rules.d/50-compat_firmware.rules
/etc/udev/rules.d/ I got the (new) firmware to load. Hardy does not
look in /lib/udev/rules.d/.
My RT2860 based card then worked very well on hardy with download
speeds over 56Mbit/s.

Revision history for this message
Seth Forshee (sforshee) wrote :

Wolfgang, thanks for testing. I'll look at hardy a little more closely when I get a chance. If you want to try and fix it for your test, I _think_ older udevs look for rules in /etc/udev/rules.d.

Changed in linux-firmware (Ubuntu Lucid):
status: New → In Progress
Changed in linux-firmware (Ubuntu Maverick):
status: New → In Progress
Revision history for this message
Seth Forshee (sforshee) wrote :

Wolfgang, guess I didn't read your comment in full the first time :) Looks like you got the firmware to load, so I'll see if there's a reason why rt2800{usb,pci} aren't built for hardy.

Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Accepted linux-firmware into natty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

Tested the new linux-firmware package from natty-proposed, works pretty. :-)

MD5 hash of rt2870.bin:
36c944c3138125605d28c0a3a1338be9

Martin Pitt (pitti)
tags: added: verification-done
Revision history for this message
Seth Forshee (sforshee) wrote :

Turns out hardy doesn't currently have a backport for the rt2800 drivers and won't be receiving one in the future. Thus there's no point in adding the new firmware, so marking this task invalid.

Changed in linux-backports-modules-2.6.24 (Ubuntu Hardy):
status: In Progress → Invalid
Changed in linux-backports-modules-2.6.24 (Ubuntu):
status: New → Invalid
Revision history for this message
Seth Forshee (sforshee) wrote :

Lucid/Maverick SRU Justification:

Impact: The rt2800 drivers expect firmware for RT307x chipsets to be found in rt2870.bin, which is not currently the case.

Fix: Update rt2800 firmware to include support for RT307x.

Testcase: Tested on LP #762987, including regression testing with RT2860 on maverick.

Revision history for this message
Simon (spydesk) wrote :

The linux-firmware package from natty-proposed seems to work for me so far.

Thank you!

Tim Gardner (timg-tpi)
Changed in linux-firmware (Ubuntu Maverick):
assignee: nobody → Seth Forshee (sforshee)
status: In Progress → Fix Committed
Seth Forshee (sforshee)
Changed in linux-firmware (Ubuntu Maverick):
importance: Undecided → Medium
Revision history for this message
Seth Forshee (sforshee) wrote :

The firmware update was reported to introduce regressions on bug #770232, so it won't be going out at this time.

tags: added: verification-failed
removed: verification-done
Seth Forshee (sforshee)
Changed in linux-firmware (Ubuntu Natty):
status: Fix Committed → In Progress
Changed in linux-firmware (Ubuntu Maverick):
status: Fix Committed → In Progress
Changed in linux-firmware (Ubuntu Lucid):
assignee: nobody → Seth Forshee (sforshee)
importance: Undecided → Medium
Revision history for this message
mrahk (mrahk) wrote :

The last few days I've followed the proceedings in this thread.
I experiences the same problems and I feel urged to participate in solving this matter, so may I join this discussion?

I have aRT2870 based WLAN stick too. It identifies itself as: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter. This adapter stopped working after kernel 2.6.21-32 and the mean time I've tried to get it to do its job with almost all kernels released but to no avail. The most recent one I've tried is 2.6.38-02063808 and that's a failure too for now. Of course I use my Ubuntu Server all the time so it's still on kernel 2.6.21-32.

I tried all solutions suggested here, but so far none of them makes any difference. That's why I want to help here and I'm willing to test things if I'm requested too. I'm not quite sure where to start so first I'll state the results of lsmod | grep rt:

xt_multiport 2876 2
parport_pc 32228 0
x_tables 16544 8 xt_multiport,xt_limit,ipt_LOG,xt_recent,xt_state,xt_tcpudp,iptable_nat,ip_tables
rt2800usb 37372 0
rt2x00usb 11548 1 rt2800usb
rt2x00lib 29788 2 rt2800usb,rt2x00usb
led_class 4096 1 rt2x00lib
input_polldev 3716 1 rt2x00lib
mac80211 181140 2 rt2x00usb,rt2x00lib
rt2870sta 488948 1
cfg80211 93052 2 rt2x00lib,mac80211
crc_ccitt 1852 1 rt2800usb
agpgart 35020 1 sis_agp
parport 35340 3 parport_pc,ppdev,lp

Just for testing I've blocked rt2870sta in /etc/modprobe.d/blacklist.conf but somehow it does load that driver according to the output above.

I'll await your response for what to do next.

Thanks for making the effort to solve the problems with these types of WLAN USB sticks.

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

2.6.21? Anyway, please make a separate bug report with ubuntu-bug linux, subscribe me and make a comment that you have done so (so that I get a mail).

Thanks

Revision history for this message
mrahk (mrahk) wrote :

Don't be surprised please ;-)

That should be 2.6.31.
I didn't notice the typo before. My apologies.
So in Karmic everything was fine but it stopped working in Lucid.

I don't know exactly what you mean by "make a separate bug report with ubuntu-bug linux".
Can you put it there, please or could you tell me where or what ubuntu-bug linux is?

Besides if I search the internet I can find numerous complaints about "RT-something" based WLAN sticks not working since Karmic. So far I can't find a viable solution in any of them and moreover very few reports have drawn the attention of developers so what is the point of filing another new report?
I think my problem is somehow related to the original problem in this thread.

But it would be great if you could put it in the right place or if you could tell me where that is.

Revision history for this message
Wolfgang Kufner (wolfgangkufner) wrote :

Try to connect with your buggy wlan so that information about this attempt is logged.
Then connect to the internet with whatever works for you (e.g. ethernet), open a terminal window and type:
ubuntu-bug linux

Revision history for this message
mrahk (mrahk) wrote :

That's not working. It says:

*** Problem in linux-image-2.6.31-22-generic-pae

The problem cannot be reported:

This is not a genuine Ubuntu package

Well, I know for sure it is a genuine package.

Revision history for this message
Seth Forshee (sforshee) wrote :

@mrahk: It may be failing because karmic is no longer supported. Please run it from a supported version of ubuntu for which your device does not work. You should always file bugs using the version that's failing as this attaches information relevant to the failure to the bug report. Thanks!

Revision history for this message
mrahk (mrahk) wrote :

Well, in that case it's not going to work, right?

I told you earlier that all those so called supported versions above 2.6.31 do not work with my WLAN USB stick.
I have a wireless network I don't have a ethernet cable that's long enough to connect the server to the modem and I'm not going to buy one.

Besides Launchpad states one should not report an alleged bug that has been reported before.
I've searched Launchpad and there are about 15 bugs concerning RT2870 reported of which the major part apparently have not been looked in to by the developers yet. Most of them contain observations I more or less recognize. I'm not so sure my issue is a brand new one.

Anyway, I think that ubuntu-bug stuff is not going to work. Do we have some manual options to obtain the interesting information?

Revision history for this message
Seth Forshee (sforshee) wrote :

@mrahk: If you identify a bug that is the same as yours then you should not report a new bug, but not all bugs that affect a given wireless chipset (or in this case a family of wireless chipsets) are the same. However, after reviewing the comments again I think it's possible that Wolfgang asked you to report a new bug based on the (incorrect) kernel version you had stated. If your wireless fails to work with a "firmware does not support detected chipset" message in dmesg and blacklisting rt2800usb and rt2800pci (not rt2870sta as you noted in your comment) fixes the problem, your issue may is the same as this one.

If your problem is different, you can use the following steps to report the bug. Save the bug data to a file by running 'ubuntu-bug --save /tmp/bug-data.apport linux', then reboot into the kernel with working wireless and run 'ubuntu-bug /tmp/bug-data.apport'. The problem with running ubuntu-bug with a kernel that's working is that the information it collects is largely irrelevant to the bug and can lead to confusion.

Revision history for this message
Clint Byrum (clint-fewbar) wrote :

Alright, so we're *almost* there. Because 1.52.2 never made it in to natty-proposed/updates, the .changes file from the upload of 1.52.3 to natty-proposed doesn't list bug #804671, but does effectively include its fix. This is pretty important for displaying updates and the way things move through our system, so the source package needs to be re-generated with the additional argument of -v1.52.1, otherwise the bugs won't show up properly. Rejecting now, please re-generate the changes file and upload with that. (Reposting to all bugs in the upload).

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Uploaded linux-firmware_1.52.4

Seth Forshee (sforshee)
Changed in linux-firmware (Ubuntu Lucid):
assignee: Seth Forshee (sforshee) → nobody
status: In Progress → Confirmed
Changed in linux-firmware (Ubuntu Maverick):
assignee: Seth Forshee (sforshee) → nobody
status: In Progress → Confirmed
Changed in linux-firmware (Ubuntu Natty):
assignee: Seth Forshee (sforshee) → nobody
status: In Progress → Confirmed
Revision history for this message
Martin Pitt (pitti) wrote :

Hello FERNmann, or anyone else affected,

Accepted linux-firmware into natty-proposed, the package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in linux-firmware (Ubuntu Natty):
status: Confirmed → Fix Committed
Revision history for this message
FERNmann (fernmann-deactivatedaccount) wrote :

Well, the linux-firmware from natty-proposed works, but the address resolving is slow with the new router I bought. If I connect to another router or if I use the rt2800usb driver with Oneiric (or rt2870sta with Natty) it works perfectly. Only Natty + rt2800usb + new router does not work, I don't know why, but I don't think it's Linux' fault because the bug is known by the manufacturer and will be hopefully fixed by a firmware update soon.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package linux-firmware - 1.52.4

---------------
linux-firmware (1.52.4) natty-proposed; urgency=low

  * no change upload with version difference.

linux-firmware (1.52.3) natty-proposed; urgency=low

  * Revert: linux-firmware: rt2800pci: rt2800usb: Firmware update
    Causes a shutdown regression.
    -LP: #762987
    -LP: #770232

linux-firmware (1.52.2) natty-proposed; urgency=low

  * Add firmware to support compat-wireless backports
    linux-firmware: add new firmware for RTL8168E-VL
    linux-firmware: update firmware for RTL8111E
    linux-firmware: Add firmware for RTL8168/8111E
    linux-firmware: Add firmware for RTL8105E
    -LP: #804671

linux-firmware (1.52.1) natty-proposed; urgency=low

  * Update rt2800 firmware
    -LP: #762987
    -LP: #770232
 -- Tim Gardner <email address hidden> Mon, 12 Sep 2011 19:28:14 -0600

Changed in linux-firmware (Ubuntu Natty):
status: Fix Committed → Fix Released
Revision history for this message
Rolf Leggewie (r0lf) wrote :

maverick has seen the end of its life and is no longer receiving any updates. Marking the maverick task for this ticket as "Won't Fix".

Changed in linux-firmware (Ubuntu Maverick):
status: Confirmed → Won't Fix
Revision history for this message
Rolf Leggewie (r0lf) wrote :

lucid has seen the end of its life and is no longer receiving any updates. Marking the lucid task for this ticket as "Won't Fix".

Changed in linux-firmware (Ubuntu Lucid):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.