2013-07-04 05:35:13

by Ilia Mirkin

[permalink] [raw]
Subject: Constant network assoc/disassoc loop with rtl8192cu usb adapter

Hello,

I recently got a RTL8188CUS usb adapter (which uses the rtl8192cu
driver). I'm having trouble getting it to stay associated:

[601369.845916] wlan0: associated
[601377.106440] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
to reconnect now
[601383.867706] wlan0: associated
[601391.120270] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
to reconnect now
[601397.910678] wlan0: associated
[601405.141764] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
to reconnect now

and so on. A different usb adapter (Ralink RT2573) has no trouble
associating to that AP (but it keeps hanging and the kernel isn't
always able to reset it properly). The network in question is using
WPA2-PSK.

Is there some setting I could adjust so that it would wait longer
before deciding that the AP is off? Or something else I can do?

This is on a 3.10-rc6 kernel + the __queue_work warning fix patch at
https://git.kernel.org/cgit/linux/kernel/git/linville/wireless-testing.git/patch/?id=1621c9466099faf21ad19738d54a7d1845a29b32.

Thanks,

-ilia


2013-07-07 02:41:35

by Ilia Mirkin

[permalink] [raw]
Subject: Re: Constant network assoc/disassoc loop with rtl8192cu usb adapter

On Thu, Jul 4, 2013 at 1:35 AM, Ilia Mirkin <[email protected]> wrote:
> Hello,
>
> I recently got a RTL8188CUS usb adapter (which uses the rtl8192cu
> driver). I'm having trouble getting it to stay associated:
>
> [601369.845916] wlan0: associated
> [601377.106440] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
> to reconnect now
> [601383.867706] wlan0: associated
> [601391.120270] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
> to reconnect now
> [601397.910678] wlan0: associated
> [601405.141764] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try
> to reconnect now
>
> and so on. A different usb adapter (Ralink RT2573) has no trouble
> associating to that AP (but it keeps hanging and the kernel isn't
> always able to reset it properly). The network in question is using
> WPA2-PSK.
>
> Is there some setting I could adjust so that it would wait longer
> before deciding that the AP is off? Or something else I can do?
>
> This is on a 3.10-rc6 kernel + the __queue_work warning fix patch at
> https://git.kernel.org/cgit/linux/kernel/git/linville/wireless-testing.git/patch/?id=1621c9466099faf21ad19738d54a7d1845a29b32.

In addition to the messages above, I also occasionally saw sequences of 3-6

rtlwifi:addbareq_rx():<100-1> sta is NULL

messages after an association timeout.

Here are a few things I tried:

(a) increasing the timeout to 20 seconds, from 6. Didn't help.
(b) printing each beacon frame (in rtl_beacon_statistic). This showed
some potentially interesting results... right after association, I see
beacons from various APs (including the right one). But after about 1
second, all the other APs die out, and I only see beacons from 2
related APs (foo and foo-guest, with nearly identical bssid's),
neither of which is the one I want. I think that they're stronger than
the AP I'm trying to connect to. Sometimes the "right" AP's beacons
come back, sometimes not.
(c) Realtek's driver (rtl8188C_8192C_usb_linux_v3.4.4_4749.20121105).
Eventually I got it to compile. It links just fine to the AP, no
wifi-related problems. (The driver hung the system on usb removal, but
that seems more related to poor coding.) So the AP isn't too far away,
and it's not a situation where there's too much noise for the hardware
to handle. Running a ping shows that there aren't any significant
connection drops.

Let me know if there are other things you think I should try. Happy to
test any patches/provide info.

-ilia