【问题标题】:Why does iwlist scan return cached results almost every time?为什么 iwlist 扫描几乎每次都返回缓存结果?
【发布时间】:2013-08-19 02:31:19
【问题描述】:

我有一个运行 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 的扫描。

提前感谢您的帮助!

【问题讨论】:

  • 已经有一段时间了,但我认为 wpa_supplicant 有可用的配置设置,可以更主动地发现新的接入点。当然,大多数行为导致它如何调用驱动程序的 WEXT 扩展。
  • 这不仅仅是没有发现新的接入点。事件当前 AP 的强度未更新。看起来好像从未完成扫描。

标签: linux-kernel driver wireless


【解决方案1】:

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

【讨论】:

  • 感谢您的提示!这应该是公认的答案。
【解决方案2】:

希望有人觉得这很有用。

在对 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)

【讨论】:

    猜你喜欢
    • 2022-09-27
    • 2020-07-01
    • 2020-10-17
    • 2021-01-25
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2021-03-11
    相关资源
    最近更新 更多