1. 问题描述
使用的操作系统是CentOS
7.7,kernel
版本是3.10.x,wpa_supplicant
的版本是2.6。
本人在Linux上使用wpa_supplicant
控制WiFi,在扫描可用网络时碰到了一些问题。
1.1 执行过程
可以使用如下三种方法执行扫描:
- 进入
wpa_cli
交互环境,输入scan
命令; - 在命令行中,使用root权限执行
wpa_cli scan
命令,不过这样在本命令行中看不到执行后返回的结果。 - 使用wpa_supplicant提供的API接口,输入SCAN命令。
上面的三种操作是同等作用的,为了方便查看执行后的输出,可以再打开一个wpa_cli
交互环境,可以看到实时的wpa_supplicant返回的执行结果。
1.2 期望的执行结果
在输入扫描命令后,可以看到如下的输出(第一行的注释是在wpa_ctrl.h
文件中的注释,不是输出的结果,下同):
/** New scan started */
CTRL-EVENT-SCAN-STARTED
在有扫描结果的情况下返回如下的输出:
/** New scan results available */
CTRL-EVENT-SCAN-RESULTS
在我的执行过程中,是看到过这样的结果的。
之后我通过scan_results
取出扫描的结果。
1.3 不期望的结果
但是我在使用的过程中,有时候并不能获取到期望的结果,目前观察到如下两种可能。
1.3.1 搜索结果显示找不到网络,但可以获取到
在控制台输入如下的结果:
/** No suitable network was found */
CTRL-EVENT-NETWORK-NOT-FOUND
之后我通过scan_results
取出扫描的结果。
1.3.2 可用网络扫描没有任何返回
在扫描的网络执行后,没有任何的返回。
当时的情况下,当时一直在自动扫描,没有通过scan_results
获取结果,并不确定是否真的有扫描到的网络;只看到一行行的CTRL-EVENT-SCAN-STARTED
。
2. 解决问题记录
上面是我对于使用过程中问题的记录,如果谁有什么好的观察或者见解,可以在本blog下进行留言,或者发给我发邮件china-newer@outlook.com.
如果未来解决了这个问题,将会在此更新结论。