我有一个运行linux内核2.6.32的机顶盒(无法升级,请不要提示)。我正在使用配置为使用WEXT驱动程序的Realtek 8192CU驱动程序。什么会导致iwlist扫描不断返回缓存结果?当STB启动并进行第一次扫描时,它会获得准确的列表并连接到接入点就好了。但是,后续扫描会返回完全相同的信息(即使信号强度和质量相同)。
很少,扫描会返回新的结果,但在成功扫描(有时是几小时)之间的一段时间内我找不到任何模式。
当新的结果集可用时,dmesg中会出现“调查完成事件(xx)”消息。
使用wpa_cli,我运行以下命令并获得响应。
>scan ra0
OK
<3>CTRL-EVENT-SCAN-RESULTS
但是,'wpa_cli scan_results'返回与iwlist完全相同的缓存信息,并且在dmesg中没有'调查完成事件(xx)'消息。
任何人都可以了解这里可能发生的事情吗?我想弄清楚如何可靠地触发新AP的扫描。
提前感谢您的帮助!
答案 0 :(得分:4)
遇到同样的问题。发现如果以root用户身份运行该命令,则每次都会重置缓存。
答案 1 :(得分:3)
希望有人觉得这很有用。
经过大量挖掘8192cu驱动程序后,如果它认为自己“忙于”流量,它似乎不会启动扫描。它只会返回缓存的扫描结果。在我安装硬件的环境中,有很多组播流量导致它几乎一直“忙”。
要解决此问题,我必须在core / rtw_cmd.c中编辑一行。这是差异。
1826c1826,1829
< if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 100 ||
---
> // in large networks with lots of multicast traffic,
> // I needed to increase the Rx threshold for bBusyTraffic
> // so that AP scanning would work
> if( pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 500 || // 100 ||
1831c1834
< if(pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 100)
---
> if(pmlmepriv->LinkDetectInfo.NumRxOkInPeriod > 500) // 100)