Wpa Cli With Wpa Supplicant
Wpa Cli With Wpa Supplicant
WiFi connection by using the wpa_cli. The wpa_supplicant had supported all
kinds of security connections and WPS defined in the 802.11 specification. So,
we suggest use the wpa_supplicant to do the WiFi connection rather than the
iwconfig wireless tool.
For libnl-3.x:
LIBNL=<path to install the libnl>
CFLAGS += -I$(LIBNL)/include/libnl3
LIBS += -L$(LIBNL)/lib
CONFIG_LIBNL20=y
CONFIG_LIBNL32=y
p.s. Version 3.x need add both flag (CONFIG_LIBNL20=y and CONFIG_LIBNL32=y)
For WPA3-SAE:
File: .config
CONFIG_TLS=openssl
CONFIG_IEEE80211W=y
CONFIG_SAE=y
Re-compile wpa_supplicant
# make
3. Start wpa_supplicant
i. Run wpa_supplicant in background:
If cfg80211:
# wpa_supplicant –Dnl80211 -iwlan0 -c ../../wpa_0_8.conf –B
Or wireless extensions:
# wpa_supplicant -Dwext -iwlan0 -c ../../wpa_0_8.conf -B
ii. Run wpa_supplicant in backqround with debug message (This may affect the
performance, only used in debug purpose.)
If cfg80211:
# wpa_supplicant -Dnl80211 -iwlan0 -c ../../wpa_0_8.conf -dd &
Or wireless extension:
# wpa_supplicant -Dwext -iwlan0 -c ../../wpa_0_8.conf -dd &
iii. If rtk driver ver >= v5.9, please add below parameter to wpa_supplicant.conf
p2p_no_group_iface=1
2. Connect to AP
a. OPEN
# wpa_cli -p/var/run/wpa_supplicant remove_network 0
# wpa_cli -p/var/run/wpa_supplicant ap_scan 1
# wpa_cli -p/var/run/wpa_supplicant add_network
# wpa_cli -p/var/run/wpa_supplicant set_network 0 ssid '"dlink"'
# wpa_cli -p/var/run/wpa_supplicant set_network 0 key_mgmt NONE
# wpa_cli -p/var/run/wpa_supplicant select_network 0
(2) WEP key index is X from 0 to 3, change X for other key index and select it.
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_keyX
12345678901234567890123456
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_tx_keyidx X
3. Ad-hoc mode
a. OPEN
# wpa_cli -p/var/run/wpa_supplicant scan
# wpa_cli -p/var/run/wpa_supplicant scan_results
# wpa_cli -p/var/run/wpa_supplicant remove_network 0
# wpa_cli -p/var/run/wpa_supplicant ap_scan 2
# wpa_cli -p/var/run/wpa_supplicant add_network
# wpa_cli -p/var/run/wpa_supplicant set_network 0 ssid '"Adhoc_test"'
# wpa_cli -p/var/run/wpa_supplicant set_network 0 mode 1
# wpa_cli -p/var/run/wpa_supplicant set_network 0 key_mgmt NONE
# wpa_cli -p/var/run/wpa_supplicant set_network 0 frequency 2412
# wpa_cli -p/var/run/wpa_supplicant select_network 0
b. WEP40
# wpa_cli -p/var/run/wpa_supplicant scan
# wpa_cli -p/var/run/wpa_supplicant scan_results
# wpa_cli -p/var/run/wpa_supplicant remove_network 0
# wpa_cli -p/var/run/wpa_supplicant ap_scan 2
# wpa_cli -p/var/run/wpa_supplicant add_network
# wpa_cli -p/var/run/wpa_supplicant set_network 0 ssid '"Adhoc_test"'
# wpa_cli -p/var/run/wpa_supplicant set_network 0 mode 1
# wpa_cli -p/var/run/wpa_supplicant set_network 0 key_mgmt NONE
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_key0 1234567890
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_tx_keyidx 0
# wpa_cli -p/var/run/wpa_supplicant set_network 0 frequency 2412
# wpa_cli -p/var/run/wpa_supplicant select_network 0
c. WEP104
# wpa_cli -p/var/run/wpa_supplicant scan
# wpa_cli -p/var/run/wpa_supplicant scan_results
# wpa_cli -p/var/run/wpa_supplicant remove_network 0
# wpa_cli -p/var/run/wpa_supplicant ap_scan 2
# wpa_cli -p/var/run/wpa_supplicant add_network
# wpa_cli -p/var/run/wpa_supplicant set_network 0 ssid '"Adhoc_test"'
# wpa_cli -p/var/run/wpa_supplicant set_network 0 mode 1
# wpa_cli -p/var/run/wpa_supplicant set_network 0 key_mgmt NONE
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_key0
12345678901234567890123456
# wpa_cli -p/var/run/wpa_supplicant set_network 0 wep_tx_keyidx 0
# wpa_cli -p/var/run/wpa_supplicant set_network 0 frequency 2412
# wpa_cli -p/var/run/wpa_supplicant select_network 0
5. WPS Connection
(1) Push Button:
# wpa_cli -p/var/run/wpa_supplicant remove_network 0
# wpa_cli -p/var/run/wpa_supplicant wps_pbc any
Or
# wpa_cli
2. Commands:
PING
This command can be used to test whether wpa_supplicant is replying to the control interface
commands.
The expected reply is PONG if the connection is open and wpa_supplicant is processing
commands.
STATUS
Request current status information. The output is a text block with each line in
variable=value format. For example:
bssid=02:00:01:02:03:04
ssid=test network
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA-PSK
wpa_state=COMPLETED
LIST_NETWORKS
List configured networks.
network id / ssid / bssid / flags
0 example network any [CURRENT]
(note: fields are separated with tabs)
SCAN
Request a new BSS scan.
SCAN_RESULTS
Get the latest scan results.
bssid / frequency / signal level / flags / ssid
00:09:5b:95:e0:4e 2412 208 [WPA-PSK-CCMP] jkm private
02:55:24:33:77:a3 2462 187 [WPA-PSK-TKIP] testing
00:09:5b:95:e0:4f 2412 209 jkm guest
(note: fields are separated with tabs)
ADD_NETWORK
Add a new network. This command creates a new network with empty configuration. The new
network is
disabled and once it has been configured it can be enabled with ENABLE_NETWORK command.
ADD_-
NETWORK returns the network id of the new network or FAIL on failure
SAVE_CONFIG
Save the current configuration.