D-Link DWA-140 rev. B3 weirdness

Live forum: http://rt2x00.serialmonkey.com/viewtopic.php?t=6202

pseudoruprecht

21-01-2012 14:25:31

Recently, I bought a D-Link DWA-140 after digging online that it works under Linux (if only by using the drivers of the chipset maker at times). Big surprise when I plugged it in it doesn't work. Now it does, but [b369t3x4j]only[/b369t3x4j] with the drivers from Ralink. But the path was a weird journey.

All of this is on Ubuntu 12.04

[code369t3x4j]
$ uname -a
Linux marnie 3.2.0-10-generic #17-Ubuntu SMP Thu Jan 19 18:50:46 UTC 2012 i686 i686 i386 GNU/Linux
[/code369t3x4j]

1) The device is not in usb.ids. Well, it is, but with another vendor id. Official usb.ids has this

[code369t3x4j]
07d1 D-Link System
[...]
3c15 DWA-140 RangeBooster N Adapter(rev.B3) [Ralink RT2870]
[/code369t3x4j]

But lsusb gives me

[code369t3x4j]
$ lsusb | grep "D-Link"
Bus 001 Device 004: ID 2001:3c15 D-Link Corp.
[/code369t3x4j]

Right device id, wrong vendor id. After I figured out that this might be why rt2800usb doesn't attach to the device, I tried to fix it. First, edit usb.ids

[code369t3x4j]
2001 D-Link System
[...]
3c15 DWA-140 RangeBooster N Adapter(rev.B3) [Ralink RT2870] # <-- I pasted this!
[/code369t3x4j]

2) Now I do

[code369t3x4j]
# modprobe rt2800usb
# echo "2001 3c15" > /sys/bus/usb/drivers/rt2800usb/new_id
[/code369t3x4j]

But this doesn't work. I get

[code369t3x4j]
$ dmesg | grep rt2
[12347.900961] usbcore: registered new interface driver rt2800usb
[12348.244119] phy0 -> rt2800_init_eeprom: Error - Invalid RT chipset detected.
[12348.244134] phy0 -> rt2x00lib_probe_dev: Error - Failed to allocate device.
[/code369t3x4j]

3) Next, I tried the driver from Ralink (2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO). With that, the device is recognized and usable. I get

[code369t3x4j]
$ iwconfig
ra0 Ralink STA ESSID:"11n-AP" Nickname:"RT2870STA"
Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated
Bit Rate:1 Mb/s
RTS thr:off Fragment thr:off
Link Quality=10/100 Signal level:0 dBm Noise level:0 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
[/code369t3x4j]

I suppose that this means that the device actually uses the rt2870 chip (Is there a way to make sure?)

Now the question is there a chance to get this beast to work with rt2800usb? What do you need to debug what's going wrong here? Logs? etc.

Thanks in advance!


pseudoruprecht

Real Deal

31-01-2012 00:35:54

Hi,

I see u are running 3.2.0 kernel and ralink wifi.
Check out similar problem at redhat bugzilla
https//bugzilla.redhat.com/show_bug.cg ... &id=785533

Looks like not only rt61pci is affected on 3.2.x kernels, but some other ralinks.
Try compiling open source driver with DEBUG enabled.

Hope this helps

Cheers

Deal

pseudoruprecht

09-02-2012 11:35:54

Aha! Although enabling those DEBUG variables didn't help, at least I now know what chipset that "thing" uses

[code2srwimv5][ 9668.744618] phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 5392, rf: 000f, rev: 0222.[/code2srwimv5]

5392. Never trust any label or device IDs. I certainly hate when they do this.

And so [b2srwimv5]I still hate WLAN sticks[/b2srwimv5]!