Search Linux Wireless

Re: RTL8192CU continually reconnecting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/09/2013 06:45 PM, Mark Cave-Ayland wrote:
dmesg output:
http://www.ilande.co.uk/tmp/rtl8192cu_patch-3-dmesg.txt

wpa_supplicant output:
http://www.ilande.co.uk/tmp/rtl8192cu_patch-3-wpa_supplicant.txt

Now the interesting part was as you can see from the logs, I managed to get a
reasonably long association to the AP towards the end so I tried running
dhclient against the wlan1 interface - this was slow, taking about 60s to
complete, but it did eventually return with an IP address. With that in place, I
tried pinging 8.8.8.8 and ended up with a very poor connection, with the ping
exit banner reporting 87% packet loss :(

We now know that the beacons are being lost. The last one was at 90600.642566 as shown below:

Sep 10 00:29:48 kentang kernel: [90599.513526] rtlwifi: mode 2, state 2, is_beacon 1, is_probe_resp 0, length 153 Sep 10 00:29:50 kentang kernel: [90600.642566] rtlwifi: mode 2, state 2, is_beacon 1, is_probe_resp 0, length 153 Sep 10 00:29:57 kentang kernel: [90607.829051] rtlwifi:rtl_watchdog_wq_callback():<0-0> AP off, try to reconnect now Sep 10 00:29:57 kentang kernel: [90607.829058] wlan1: Connection to AP 00:1f:9f:d5:a8:3b lost Sep 10 00:29:57 kentang kernel: [90607.830086] cfg80211: Calling CRDA to update world regulatory domain

We have to conclude that your interface has been shut down as we have gotten no beacons or RX data packets received. Unfortunately, my restricting the output to only your AP does not let me know if any data are being received. I hate to do this, but the attached patch will dump all packets again with no limit. Once you get a disconnect, then you can stop the run before the log gets too full.

Larry


Index: wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/usb.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/usb.c
@@ -484,6 +484,8 @@ static void _rtl_usb_rx_process_agg(stru
 			if (unicast)
 				rtlpriv->link_info.num_rx_inperiod++;
 		}
+		/* static bcn for roaming */
+		rtl_beacon_statistic(hw, skb);
 	}
 }
 
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/core.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/core.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/core.c
@@ -184,6 +184,7 @@ static int rtl_op_add_interface(struct i
 					rtlpriv->cfg->maps
 					[RTL_IBSS_INT_MASKS]);
 		}
+		mac->link_state = MAC80211_LINKED;
 		break;
 	case NL80211_IFTYPE_ADHOC:
 		RT_TRACE(rtlpriv, COMP_MAC80211, DBG_LOUD,
Index: wireless-testing-save/drivers/net/wireless/rtlwifi/base.c
===================================================================
--- wireless-testing-save.orig/drivers/net/wireless/rtlwifi/base.c
+++ wireless-testing-save/drivers/net/wireless/rtlwifi/base.c
@@ -1288,6 +1288,10 @@ void rtl_beacon_statistic(struct ieee802
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
 
+	pr_info("mode %d, state %d, is_beacon %d, is_probe_resp %d, length %d\n",
+		rtlpriv->mac80211.opmode, rtlpriv->mac80211.link_state, ieee80211_is_beacon(hdr->frame_control),
+		ieee80211_is_probe_resp(hdr->frame_control), skb->len);
+
 	if (rtlpriv->mac80211.opmode != NL80211_IFTYPE_STATION)
 		return;
 

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux