Weird error with my DWL-G122 dongle

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

Zuliani

13-01-2008 18:06:59

Hi everyone, I'm using Archlinux on my laptop, and installed the rt2x00-cvs and rt2x00-rt71w-fw packages. After plugging in the USB stick, dmesg shows pretty normal output, loads the driver and firmware, so everything seems OK. I'm able to authenticate to my access-point with WEP-encryption, I can get an IP with dhclient. The problem is, that after a very short period of time (+- 10 seconds) or packets (Usually about 16 ping's), it stops working, without any details in dmesg, it just seems to lock up.

Full name of the stick DWL-G122 H/W Ver. C1 F/W Ver3.0.
I'm not sure if this is relevant, but dmesg says something about firmware v1.7, not 3.0

What can cause this? Feel free to ask more details if that would seem neccesary

[edit]
Exactly the same thing happens on my Desktop, also runing archlinux with kernel 2.6.23. And I'm not sure if this is helpfull, but the 'Act' led blinks when I try to ping, I just don't get any response. The 'link' led is permanently on.

AdamBaker

13-01-2008 21:03:19

That USB stick apparently uses the rt2570 chipset (and hence the rt2500usb module) which other users are reporting similar issues with. The RT2570 has onboard firmware, the 1.7 firmware you have loaded is for the RT2571 / RT73 and hence should be ignored (unless this is another USB stick where the model number didn't change when switching to the new chipset).

It would be useful to check (with modinfo rt2500usb) what version of the driver ArchLinux uses.

Problems with connecting and then failing to transmit data are often caused by bugs in the antenna setup code but this code is difficult to test as there are many combinations of possible antenna configurations.

Zuliani

14-01-2008 06:44:03

Output of "modinfo rt2500usb"

[code1n6uizn3]
filename: /lib/modules/2.6.23-ARCH/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
license: GPL
description: Ralink RT2500 USB Wireless LAN driver.
version: 2.0.7
author: http://rt2x00.serialmonkey.com
srcversion: 05F5DAFDCCB9E43276A66E5
alias: usb:v5A57p0260d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0EB0p9020d*dc*dsc*dp*ic*isc*ip*
alias: usb:v114Bp0110d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0707pEE13d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0681p3C06d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp9020d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp2573d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp2570d*dc*dsc*dp*ic*isc*ip*
alias: usb:v148Fp1706d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0DB0p6869d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0DB0p6865d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0DB0p6861d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0411p0097d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0411p008Bd*dc*dsc*dp*ic*isc*ip*
alias: usb:v0411p0067d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0411p0066d*dc*dsc*dp*ic*isc*ip*
alias: usb:v06F8pE000d*dc*dsc*dp*ic*isc*ip*
alias: usb:v1044p8007d*dc*dsc*dp*ic*isc*ip*
alias: usb:v1044p8001d*dc*dsc*dp*ic*isc*ip*
alias: usb:v2001p3C00d*dc*dsc*dp*ic*isc*ip*
alias: usb:v14B2p3C02d*dc*dsc*dp*ic*isc*ip*
alias: usb:v13B1p001Ad*dc*dsc*dp*ic*isc*ip*
alias: usb:v13B1p0011d*dc*dsc*dp*ic*isc*ip*
alias: usb:v13B1p000Dd*dc*dsc*dp*ic*isc*ip*
alias: usb:v050Dp705Ad*dc*dsc*dp*ic*isc*ip*
alias: usb:v050Dp7051d*dc*dsc*dp*ic*isc*ip*
alias: usb:v050Dp7050d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0B05p1707d*dc*dsc*dp*ic*isc*ip*
alias: usb:v0B05p1706d*dc*dsc*dp*ic*isc*ip*
depends: rt2x00lib,rt2x00usb,usbcore
vermagic: 2.6.23-ARCH SMP preempt mod_unload 686
[/code1n6uizn3]

But is that usefull? I don't see dmesg load this module, only rt2x00usb, rt2x00lib and rt73usb. Or is that the problem?

Starcrasher

14-01-2008 12:16:58

If your dongle has a rt2570 chip, it should not use rt73usb but rt2500usb instead.
Maybe you could try to blacklist rt73usb module to see if rt2500usb is then load. And if it works correctly in this case.

IvD

14-01-2008 18:44:50

Not sure why everybody claims to be a rt2500usb device, apparently rt73usb can activate the device and managed to send frames over the link. That would not be possible when the wrong driver was used...

Could you enable debug output in rt2x00 and provde the debug messages rt2x00 printed?

Zuliani

14-01-2008 19:42:43

Not sure if this is with debug enabled, but it looks pretty verbose

[code2hxm38or]
[zuliani@argh ~]$ dmesg | grep rt2x00
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0002, rev: 0002573a.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 4, CWmax: 10, Aifs: 2.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 4, CWmax: 10, Aifs: 2.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 2 - CWmin: 4, CWmax: 10, Aifs: 2.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 3 - CWmin: 4, CWmax: 10, Aifs: 2.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 4 - CWmin: 4, CWmax: 10, Aifs: 2.
phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt73.bin'.
phy0 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 1.7.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 2 - CWmin: 4, CWmax: 10, Aifs: 3.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 3 - CWmin: 4, CWmax: 10, Aifs: 7.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 3, CWmax: 4, Aifs: 2.
phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 2, CWmax: 3, Aifs: 2.
phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 1201, rf: 0005, rev: 00000003.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 7 - CWmin: 5, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 3, CWmax: 4, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 2, CWmax: 3, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 7 - CWmin: 5, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 4, CWmax: 10, Aifs: 2.
phy1 -> rt2x00mac_conf_tx: Info - Configured TX ring 7 - CWmin: 5, CWmax: 10, Aifs: 2.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x0444 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x0444 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x07 failed for offset 0x0428 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x0428 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x041a with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x041c with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x0466 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x0c failed for offset 0x0000 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x0404 with error -19.
phy1 -> rt2x00usb_vendor_request: Error - Vendor Request 0x06 failed for offset 0x040a with error -19.
[/code2hxm38or]

The error's are after unplugging the device.

IvD

14-01-2008 21:42:26

You have 2 wireless adapters installed, one rt73usb and one rt2500usb.
Is rt73usb loaded for both?

AdamBaker

14-01-2008 21:57:29

If I'd paid more attention to my Google search I might have spotted that it is necessary to check the hardware version number to determine the chipset in this stick and the poster's C1 variant is RT73.

That being the case the most likely option is that the version of rt2x00 shipped with ArchLinux is buggy and you need to upgrade, either by using the rt2x00.git kernel or using the compat-wireless project (see http//linuxwireless.org/en/users/Downl ... bilitywork)

Ivo I see a similar behaviour with two reported phy's for my RT73 stick which shares a USB ID with an RT2500, if the dmesg output had been grepped for " rt" instead of rt2x00 that might have been more obvious

IvD

14-01-2008 22:15:20

yes, the vendor request errors are indeed a known sign of using the wrong driver. But I had missed the part where he was using 2 devices at the same time. )

AdamBaker

14-01-2008 23:35:32

The situation I get which I had presumed was what this poster is seeing was where you have one USB stick but it assigns 2 phy numbers, one while it tries the (wrong) rt2500usb driver and one for rt73usb. When that happens to me though it sets the rf and rev fields to 0 rather than the sensible looking values this poster gets. We are only seeing dmesg output from rt2x00 lib, not from rt2500 or rt73 in his log so it is hard to be sure.

The example below doesn't start at phy0 as I had to unplug a couple of times to get the module load order that shows the problem.

[code1bw53ngm]
[17217.354212] usb 5-4: new high speed USB device using ehci_hcd and address 7
[17217.627295] usb 5-4: configuration #1 chosen from 1 choice
[17217.742075] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - Antenna: 0x0002
[17217.742084] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - NIC: 0xfff0
[17217.742088] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - BBPtune: 0xff2d
[17217.751724] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - BBPtune vgc: 0xfa40
[17217.751734] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - BBPtune r24: 0x8040
[17217.751738] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - BBPtune r25: 0x5040
[17217.751741] phy2 -> rt2500usb_validate_eeprom: EEPROM recovery - BBPtune r61: 0x6d60
[17217.752139] phy2 -> rt2x00_set_chip: Info - Chipset detected - rt: 1201, rf: 0000, rev: 00000000.
[17217.752144] phy2 -> rt2500usb_init_eeprom: Error - Invalid RT chipset detected.
[17217.752149] phy2 -> rt2x00lib_probe_dev: Error - Failed to allocate device.
[17218.020039] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - NIC: 0xffef
[17218.020048] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - Led: 0xe000
[17218.020052] phy3 -> rt73usb_validate_eeprom: EEPROM recovery - RSSI OFFSET BG: 0x0000
[17218.021631] phy3 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0002, rev: 0002573a.
[/code1bw53ngm]

Zuliani

16-01-2008 16:36:37

I'm sorry for all the confusion, but I had blacklisted rt2x00 once to see what'd happen. Here's what really happens

[code3tbxal1e]
[root@flaptop ~]# diff dmesg.old dmesg.new
341a342,413
> usb 4-2: new high speed USB device using ehci_hcd and address 3
> usb 4-2: configuration #1 chosen from 1 choice
> phy0 -> rt73usb_validate_eeprom: EEPROM recovery - NIC: 0xffef
> phy0 -> rt73usb_validate_eeprom: EEPROM recovery - Led: 0xe000
> phy0 -> rt73usb_validate_eeprom: EEPROM recovery - RSSI OFFSET BG: 0x0000
> phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 1300, rf: 0002, rev: 0002573a.
> wmaster0: Selected rate control algorithm 'simple'
> usbcore: registered new interface driver rt73usb
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 4, CWmax: 10, Aifs: 2.
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 4, CWmax: 10, Aifs: 2.
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 2 - CWmin: 4, CWmax: 10, Aifs: 2.
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 3 - CWmin: 4, CWmax: 10, Aifs: 2.
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 4 - CWmin: 4, CWmax: 10, Aifs: 2.
> phy0 -> rt2x00lib_request_firmware: Info - Loading firmware file 'rt73.bin'.
> phy0 -> rt2x00lib_request_firmware: Info - Firmware detected - version: 1.7.
> phy0 -> rt73usb_init_bbp: Debug - Start initialization from EEPROM...
> phy0 -> rt73usb_init_bbp: Debug - ...End initialization from EEPROM.
> wlan0: Initial auth_alg=0
> wlan0: authenticate with AP 00:18:39:90:4f:52
> wlan0: RX authentication from 00:18:39:90:4f:52 (alg=0 transaction=2 status=0)
> wlan0: authenticated
> wlan0: associate with AP 00:18:39:90:4f:52
> wlan0: RX AssocResp from 00:18:39:90:4f:52 (capab=0x431 status=0 aid=4)
> wlan0: associated
> wlan0: WMM queue=2 aci=0 acm=0 aifs=3 cWmin=15 cWmax=1023 burst=0
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 2 - CWmin: 4, CWmax: 10, Aifs: 3.
> wlan0: WMM queue=3 aci=1 acm=0 aifs=7 cWmin=15 cWmax=1023 burst=0
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 3 - CWmin: 4, CWmax: 10, Aifs: 7.
> wlan0: WMM queue=1 aci=2 acm=0 aifs=2 cWmin=7 cWmax=15 burst=30
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 1 - CWmin: 3, CWmax: 4, Aifs: 2.
> wlan0: WMM queue=0 aci=3 acm=0 aifs=2 cWmin=3 cWmax=7 burst=15
> phy0 -> rt2x00mac_conf_tx: Info - Configured TX ring 0 - CWmin: 2, CWmax: 3, Aifs: 2.
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
> wlan0: received unknown management frame - stype=13
[/code3tbxal1e]

Ping failed after 39 pings sent and received.

the commands I gave, respectively

[code3tbxal1e]
iwconfig wlan0 essid linksys key <My key here>
ifconfig wlan0 up
dhclient wlan0
ping -I wlan0 192.168.1.1
[/code3tbxal1e]

[edit]
Okay, this is getting weirder, after doing nothing with the stick for about 3 minutes, I had my connection back s. It can't really have to do with signal strength, I'm testing from about 2 metres away from my router.

[edit2]
NVM that last, I forgot -I wlan0 the second time s