選好了 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 '\n' 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