选好了 wifi ssid,填了密码,生成新配置文件,重启了wpa_supplicant,怎么知道输入的密码对不对,如果不对有什么体现?
wpa_supplicant 前台运行时,打印信息中会有:
WPA: 4-Way Handshake failed - pre-shared key may be incorrect
因此启动 wpa_supplicant 时加上 -f 参数将打印输出为 log 文件,再从 log 文件中轮询 grep 字符串 4-Way Handshake failed。
wpa_supplicant 默认编译不支持 -f 参数,需要修改源代码目录下 .config 文件,把下面这一行放开注释:
CONFIG_DEBUG_FILE=y
StackExchange - SuperUser 有一个类似的方案:
https://superuser.com/questions/903464/wpa-supplicant-detecting-that-my-password-is-incorrect/903893
#!/bin/bash function poke { while true do printf ' ' sleep 1 done } function watch { (poke) | wpa_cli | while read line do case "$line" in *'4-Way Handshake failed'*) echo "incorrect key" return ;; *'CTRL-EVENT-CONNECTED'*) echo "connected" return ;; esac done } wpa_cli disable_network 0 > /dev/null wpa_cli enable_network 0 > /dev/null watch