wpa_cli & wpa_supplicant[]
在 Ubuntu 11.04 須做 這個網頁上寫的修改,才能使 wpa_cli 可以和 wpa_supplicant 通訊。
修改完後,要 reboot Ubuntu OS,然後就可以用這個網頁講的wpa_cli command line了:
sudo wpa_cli -p /var/run/wpa_supplicant -i wlan0 <command ...>
以下是我用 VIA Epia 連接公司光世代 VDSL modem (SSID="hi") 的命令:
sudo wpa_cli -p /var/run/wpa_supplicant -i wlan6 list_networks sudo wpa_cli add_network sudo wpa_cli set_network 0 ssid '"hi"' sudo wpa_cli set_network 0 scan_ssid 1 sudo wpa_cli set_network 0 key_mgmt WPA-PSK sudo wpa_cli set_network 0 psk '"537xyz63"' sudo wpa_cli enable_network 0 sudo dhclient3 wlan6 ### double-check wlan settings ### sudo wpa_cli -p /var/run/wpa_supplicant -i wlan6 list_networks iwconfig wlan6 ifconfig wlan6
Note 1: 雖然在 Windows 7 上查看,VDSL modem 的 WiFi 加密是採用 WPA2-Personal w/ AES encryption,但wpa_cli command line 的 key_mgmt 參數仍是下 WPA-PSK:
wpa_cli set_network 0 key_mgmt WPA-PSK
Note 2: 如果把上面的 command lines 寫成 bash script, 並用 command line arguments $1 與 $3 傳 SSID 和 PSK key 的話,在 script 裡面,相對應的 command lines 要寫成:
sudo wpa_cli set_network 0 ssid '"'$1'"' sudo wpa_cli set_network 0 psk '"'$3'"'
要注意的是:位置變數 $1 和 $3 的周圍,要用單引號包住。