首页 > 技术知识 > 正文

1. 前言

承接上篇 https://www.ebaina.com/articles/140000012396 这里主要记录WiFi无法连接AP问题,分析以及解决办法

2.问题记录 2.1 问题起源及描述

问题起源:工厂产线试产测试发现在不焊接天线的情况下,AP信号较强但无法连接上。

平台信息:A10s android4.0.4

使用的wifi模组:rtl8189etv,软件版本 v4.1.5_7309.20130425

工厂测试反馈的现象描述:

不焊接天线,整机测试,wifi信号很强但是很难连接上AP,连接时间超过1分钟; 焊接上天线,测试路由离样机约10米,信号强度几乎满格,很难连接上wifi,相同环境下A20方案样机没焊接天线能快速连接上wifi; 设置中连接wifi,表现为不断重复提示”正在认证”和”正在获取ip”,需要过很久才能连接上; 2.2. 问题分析

该部分主要是从软件角度分析无法连接,逐步分析下来, 可以确定是硬件问题,思路如下。

(1)问题复测。 一开始拿到的是带天线的PCBA板,在办公室环境做连接AP测试,没能复测出信号好但无法连接AP问题,能较快连接上AP。

–>> 简单测试没复现问题,是否软件上存在bug,怀疑点转向测试工具和wifi驱动。

(2)wifi驱动确认 由驱动打印和拿到的SDK代码,rtl8189etv所使用的驱动版本是v4.1.5,v4.1.5版本驱动在A10s上是经过量产验证,核对代码发现连接某些AP获取IP速率慢的补丁没打上。

–>> 打上补丁后,工厂测试反馈无法连接AP问题仍存在。

(3)模拟工厂测试环境再复测。 拿到没焊接天线的PCBA 板子,办公室坐位环境,路由器与样机相隔1米,wifi信号较强,可以复测出无法连接AP问题。

–>> 可以复现工厂反馈的无法连接问题,开始从打印信息着手分析。

(4)驱动打印信息分析。 工厂抓取的内核打印与近距不焊天线没法连接上AP时的内核打印一致,发起连接请求就出现请求timeout,将log提供给realtek同步分析。

–>> realtek得知还是使用v4.1.5版本驱动时,提出更换当前最新的v4.3.0.2版本驱动验证问题是否仍存在,做完v4.3.0.2驱动的porting后,无法连接AP问题仍存在,log信息看到也是timeout。

–>> realtek对log做深入分析,得出的结论是TX/RX不好,导致发送和接收数据有问题,要先做PSD和RF相关硬件测试。

无法连接AP的log信息:

[ 1327.966991] RTL871X: set ssid [NULL-TEST] fw_state=0x00000008 [ 1327.966997] RTL871X: Set SSID under fw_state=0x00000008 [ 1327.967014] RTL871X: [by_bssid:0][assoc_ssid:NULL-TEST][to_roaming:0] new candidate: NULL-TEST (90:94:e4:35:9f:e4) rssi:-62 // 路由信号强度 [ 1327.967031] RTL871X: rtw_select_and_join_from_scanned_queue: candidate: NULL-TEST(90:94:e4:35:9f:e4, ch:1) [ 1327.967063] RTL871X: Capture EPIGRAM_OUI [ 1327.967068] RTL871X: Capture EPIGRAM_OUI [ 1327.967074] RTL871X: link to Realtek 96B [ 1327.967081] RTL871X: rtw_joinbss_cmd: smart_ps=2 [ 1327.967092] RTL871X: set ssid:dot11AuthAlgrthm=2, dot11PrivacyAlgrthm=4, dot118021XGrpPrivacy=2 [ 1327.967101] RTL871X: <=cfg80211_rtw_connect, ret 0 [ 1327.969097] RTL871X: cfg80211_rtw_change_station(wlan0) [ 1327.969229] RTL871X: cfg80211_rtw_change_station(wlan0) [ 1327.969309] RTL871X: cfg80211_rtw_change_station(wlan0) [ 1327.979666] RTL871X: set ch/bw before connected [ 1327.979697] hw_var_set_bssid reg=618 [ 1328.156419] RTL871X: update_mgnt_tx_rate(): rate = 2 [ 1328.209765] RTL871X: Capture EPIGRAM_OUI [ 1328.213831] RTL871X: Capture EPIGRAM_OUI [ 1328.217760] RTL871X: link to Realtek 96B [ 1328.221704] RTL871X: issue_deauth to 90:94:e4:35:9f:e4 [ 1328.226860] RTL871X: start auth [ 1328.230023] RTL871X: issue_auth [ 1328.530036] RTL871X: link_timer_hdl: auth timeout and try again [ 1328.536006] RTL871X: issue_auth [ 1328.830030] RTL871X: link_timer_hdl: auth timeout and try again [ 1328.835979] RTL871X: issue_auth [ 1329.130027] RTL871X: link_timer_hdl: auth timeout and try again [ 1329.135972] RTL871X: issue_auth [ 1329.430038] RTL871X: link_timer_hdl: auth timeout and try again [ 1329.435977] RTL871X: issue_auth [ 1329.730036] RTL871X: report_join_res(-1) [ 1329.734110] hw_var_set_bssid reg=618 [ 1329.738047] RTL871X: update_mgnt_tx_rate(): rate = 2 [ 1329.743041] RTL871X: _rtw_join_timeout_handler, fw_state=8 [ 1329.748527] RTL871X: rtw_cfg80211_indicate_disconnect(padapter=e0962000) [ 1329.755246] RTL871X: pwdev->sme_state(b)=1
<

(5)抓取空中数据做分析 为进一步核实是TX/RX不好导致,抓取连接过程的空中包,分析连接AP失败的原因。

–>> 抓包看到是样机发起连接请存在问题,路由器回复是及时,但样机迟迟不作回应,可核实TX/RX是存在问题,RX不好会导致无法正常接收路由器的回复,TX不好会导致发送的数据信息不正常导致无法解析。 WiFi无法连接AP问题调试(1)问题分析

没能快速把问题做软件还硬件问题跟对A10s平台不了解,rtl8189etv在A10s上是否已顺利量产、是否存在过类似的问题、软件调试测试结果如何等情况都是不了解,问题分析就是把这些点弄清楚。

猜你喜欢