目标:保存配置记录,能自动适配建立连接
开发板系统ubuntu, pstree查看已启动wpa_supplicant, 但是运行wpa_cli保存的时候一直保存不上。
查看进程启动,原因在于没有用配置文件启动,于是就把service文件启动改成-c 的参数
root@root:~# ps -aux | grep wpa
root 904 6.6 0.1 7492 2656 ? Ss 16:28 0:02 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
systemd:
[Unit]
Description=WPA supplicant
Before=network.target
[Service]
Type=dbus
BusName=fi.epitest.hostap.WPASupplicant
#ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlan1
[Install]
WantedBy=multi-user.target
Alias=dbus-fi.epitest.hostap.WPASupplicant.service
再用wpa_cli执行,就能正常保存参数到此文件。
$ wpa_cli -i wlan1 scan // 搜索附近wifi网络
$ wpa_cli -i wlan1 scan_result // 打印搜索wifi网络结果
$ wpa_cli -i wlan1 add_network // 添加一个网络连接
连接加密方式是[WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS]
。
$ wpa_cli -i wlan1 set_network 0 ssid '"name"'
$ wpa_cli -i wlan1 set_network 0 psk '"password"'
$ wpa_cli -i wlan1 enable_network 0
连接加密方式是[WEP][ESS]
(wep
加密)。
$ wpa_cli -i wlan1 set_network 0 ssid '"name"'
$ wpa_cli -i wlan1 set_network 0 key_mgmt NONE
$ wpa_cli -i wlan1 set_network 0 wep_key0 '"password"'
$ wpa_cli -i wlan1 enable_network 0
连接加密方式是[ESS]
(无加密)。
$ wpa_cli -i wlan1 set_network 0 ssid '"name"'
$ wpa_cli -i wlan1 set_network 0 key_mgmt NONE
$ wpa_cli -i wlan1 enable_network 0
分配ip:
root@root:~# dhclient wlan1
保存连接,就可以看到config文件新增了配置数据
$ wpa_cli -i wlan1 save_config
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
update_config=1
country=NL
bss_expiration_age=250
network={
ssid="xxxxxxxxxxx"
psk="xxxxxxxxxxx"
priority=4
disabled=1
}
ifconfig查看ip已经生成,能成功联网
wlan1 Link encap:Ethernet HWaddr 02:0c:43:33:f5:1d
inet addr:192.168.1.120 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:447 errors:0 dropped:0 overruns:0 frame:0
TX packets:257 errors:0 dropped:1 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:112662 (112.6 KB) TX bytes:31272 (31.2 KB)
// to do
1. 保存两个wifi ap 不能自动切换,只能手动切换
设置的时候不需要disable,都是enable状态;并配置priority的优先级,wpa_supplicant启动时会根据
优先级进行连接。启动时source network,可自动获取ip 地址。
root@root:/etc/network/interfaces.d# cat wlan1
# interfaces(5) file used by ifup(8) and ifdown(8)
auto wlan1
iface wlan1 inet dhcp
2. 生成ip后,发现不在同一wifi ap下,pc也能ping通开发板......
root@root:~# wpa_cli -i wlan1 list_network
network id / ssid / bssid / flags
0 TP-LINK_1 any [DISABLED]
1 TP-LINK_2 any
附 命令参数: