为什么iwlist scan几乎每次都会返回缓存的结果? [英] Why does iwlist scan return cached results almost every time?

查看:627
本文介绍了为什么iwlist scan几乎每次都会返回缓存的结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个运行Linux内核2.6.32的机顶盒(无法升级,请不要建议这样做).我正在使用配置为使用WEXT驱动程序的Realtek 8192CU驱动程序.是什么会导致iwlist扫描不断返回缓存的结果?看起来,当STB启动并进行首次扫描时,它会获得准确的列表并连接到接入点就可以了.但是,随后的扫描将返回完全相同的信息(甚至信号强度和质量都相同).

I've got a set top box running linux kernel 2.6.32 (cannot upgrade, please don't suggest that). I'm using the Realtek 8192CU driver configured to use the WEXT driver. What would cause iwlist scan to constantly return cached results? It seems when the STB boots and does its first scan, it gets an accurate list and connects to an access point just fine. However, subsequent scans return the exact same info (even signal strengths and qualities are identical).

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

Rarely, a scan will return new results, but I can't find any pattern to the period of time between successful scans (sometimes hours).

当有新结果集可用时,dmesg中会显示调查完成事件(xx)"消息.

When a new result set is available there is a 'survey done event(xx)' message in dmesg.

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

Using wpa_cli, I run the following command and get a response.

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

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

However, 'wpa_cli scan_results' returns the exact same cached information as iwlist and there is NO 'survey done event(xx)' message in dmesg.

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

Can anyone shed any light on what might be going on here? I would like to figure out how to reliably trigger a scan for new APs.

感谢您的任何帮助!

推荐答案

希望有人发现它有用.

在对8192cu驱动程序进行大量挖掘之后,如果它认为自己对流量很忙",它似乎将不会启动扫描.它将仅返回缓存的扫描结果.在我安装了硬件的环境中,大量的多播流量导致几乎所有时间都处于繁忙"状态.

After tons of digging through the 8192cu driver, it seems that it will not initiate a scan if it deems itself to be "busy" with traffic. It will just return cached scan results. In the environment I had the hardware installed, there was a lot of multicast traffic causing it to be "busy" almost all the time.

要解决此问题,我必须在core/rtw_cmd.c中编辑一行.这是差异.

To fix this, I had to edit one line in core/rtw_cmd.c. Here's the diff.

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)

这篇关于为什么iwlist scan几乎每次都会返回缓存的结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆