1. wifi 模式
目前我们使用到的WIFI模组,具备两种模式:
- AP模式: 即当前板卡散发热点,充当路由器
- STA模式: 充当客户端,去连接路由器
1.1 查看当前所处的模式
指令: iwconfig wlan0
Mode | 意义 | 备注 |
---|---|---|
Master | AP模式 | 成为无线接入点提供无线接入服务 |
Magaged | STA模式 | 作为客户端连接其他无线接入点 |
Monitor | 监听附近所有无线流量 | 目前不支持 |
Ad-hoc | 多台计算机直接相连 | 目前不支持 |
1)AP模式下
root@TinaLinux:/usr# iwconfig wlan0
wlan0 IEEE 802.11bgn Mode:Master Frequency:2.437 GHz Tx-Power=31 dBm
RTS thr:off Fragment thr:off
Power Management:on
2)STA模式下
root@TinaLinux:/usr# iwconfig wlan0
wlan0 IEEE 802.11bgn ESSID:"ZZ"
Mode:Managed Frequency:2.412 GHz Access Point: 8C:A6:DF:3A:0D:CA
Bit Rate=65 Mb/s Tx-Power=31 dBm
RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Link Quality=69/70 Signal level=-41 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:1 Invalid misc:0 Missed beacon:0
2. AP模式
参见如下网址:
3. STA模式
参见如下网址:
4. wifi操作脚本
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
#Autor: Jimmy
#Date: 2020-11-06
#Version: v1.0
start_sta() {
ifconfig wlan0 up
if [[ -e "/var/run/wpa_supplicant/wlan0" ]]; then
rm "/var/run/wpa_supplicant/wlan0"
fi
wpa_supplicant -i wlan0 -c /etc/wifi/wpa_supplicant.conf &
udhcpc -i wlan0 -B
}
stop_sta() {
killall wpa_supplicant
killall hostapd
killall udhcpc
killall dnsmasq
ifconfig wlan0 down
}
restart_sta() {
stop_sta
sleep 1s
start_sta
}
start_ap() {
if [[ -z "$1" ]]; then
mac_addr=$(ifconfig wlan0|awk '{print $5}'|cut -c 13-|tr -d ' :\n')
ap_name="SmartLife-$mac_addr"
softap_up $ap_name
else
softap_up $1
fi
}
stop_ap() {
softap_down
}
restart_ap() {
stop_ap
sleep 1s
start_ap $1
}
case $1 in
start_sta)
start_sta
;;
stop_sta)
stop_sta
;;
restart_sta)
restart_sta
;;
start_ap)
start_ap $2
;;
stop_ap)
stop_ap
;;
restart_ap)
restart_ap $2
;;
*)
echo "Input option: $1 was error"
;;
esac