4

我有一个运行 linux 内核 2.6.32 的机顶盒(无法升级,请不要建议)。我正在使用配置为使用 WEXT 驱动程序的 Realtek 8192CU 驱动程序。什么会导致 iwlist scan 不断返回缓存结果?似乎当 STB 启动并进行第一次扫描时,它会获得准确的列表并很好地连接到接入点。然而,随后的扫描返回完全相同的信息(即使信号强度和质量相同)。

很少,扫描会返回新结果,但我找不到成功扫描之间的时间段(有时是几个小时)的任何模式。

当新的结果集可用时,dmesg 中会显示“调查完成事件 (xx)”消息。

使用 wpa_cli,我运行以下命令并获得响应。

>scan ra0
OK
<3>CTRL-EVENT-SCAN-RESULTS

但是,“wpa_cli scan_results”返回与 iwlist 完全相同的缓存信息,并且 dmesg 中没有“调查完成事件(xx)”消息。

任何人都可以阐明这里可能发生的事情吗?我想弄清楚如何可靠地触发对新 AP 的扫描。

提前感谢您的帮助!

4

2 回答 2

5

遇到同样的问题。发现如果您以 root 身份运行该命令,它似乎每次都会重置缓存。

于 2015-02-08T22:31:29.173 回答
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)
于 2013-09-03T20:39:13.163 回答