WIFI AP 和STA同时开启
1. 概述¶
sta模式:wifi作为client,去连接AP/router的工作模式。
ap模式:wifi作为热点,供其他设备连接。
2. 代码修改和配置¶
-
配置,然后编译。
-
默认配置中已经开启wifi。
-
开启zk_full的模式:vim project/release/customer_tailor/nvr_i2m_display_glibc_tailor.mk verify_zk_full:=enable
-
避免UI调用wifi冲突,将sdk\verify\application\zk_full\demo.sh 最后一行代码拿掉。
........ cd /customer chmod 777 zkgui #./zkgui &
-
编译,升级。重启。
-
3. 修改板端行为¶
3.1. 开启sta模式¶
-
添加AP热点信息
/ # vi appconfigs/wpa_supplicant.conf ctrl_interface=/tmp/wifi/run/wpa_supplicant update_config=1 network={ ssid="aryl iPhone" psk="123456789a" }
-
wifi 模块初始化
cd /config/wifi export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:`pwd`
执行初始化脚本:
ssd20x的平台上执行
ssw01bInit.sh
ssd21x的平台上执行
sigma_wifi_init.sh
-
测试wifi 连接
./wpa_supplicant -Dnl80211 -i wlan0 -c /appconfigs/wpa_supplicant.conf -d & sleep 2 udhcpc -i wlan0 -s /etc/init.d/udhcpc.script &
查询连接状态:
./wpa_cli -i wlan0 -p /tmp/wifi/run/wpa_supplicant status
-
ping 是否连接到网络中。
ping -I wlan0 14.215.177.39
-
DNS支持
在
/etc/resolv.conf
添加nameserver 8.8.8.8
;如果测试的时候,
/etc/resolv.conf
文件缺失或不可写入,可以在ssd21x上rootfs_dispcam.mk
中默认添加dns server。ssd20x系列修改
rootfs.mk
:touch $(OUTPUTDIR)/rootfs/etc/resolv.conf echo "nameserver 202.96.128.86" >> $(OUTPUTDIR)/rootfs/etc/resolv.conf echo "nameserver 8.8.8.8" >> $(OUTPUTDIR)/rootfs/etc/resolv.conf;
再导入dns支持库路径,取决于libdns的路径。
export LD_LIBRARY_PATH=$LD_LIBRARY_ifPATH:/customer/libdns
默认在
customer/libdns
路径下有对应的lib。如果文件夹缺失,请在相应的编译器下,将" libnss_dns* "," libnss_files* "," libresolv* " 文件拷贝过来使用。
ping -I wlan0 www.baidu.com /config/wifi # ping -I wlan0 www.baidu.com PING www.baidu.com (163.177.151.109): 56 data bytes 64 bytes from 163.177.151.109: seq=0 ttl=55 time=8.638 ms 64 bytes from 163.177.151.109: seq=1 ttl=55 time=11.019 ms 64 bytes from 163.177.151.109: seq=2 ttl=55 time=8.133 ms 64 bytes from 163.177.151.109: seq=3 ttl=55 time=8.579 ms
如果以上步骤测试均正常,sta模式验证完毕。
3.2. 开启AP模式¶
ifconfig p2p0 up ifconfig p2p0 192.168.1.100 netmask 255.255.255.0 ./hostapd -B /config/wifi/hostapd.conf ./dnsmasq -i p2p0 --no-daemon -C /config/wifi/dnsmasq.conf &
查看连接设备信息:
./hostapd_cli -i p2p0 -p /var/run/hostapd all_sta &
通过pc 搜索ssid:ssw101bap passwd:12345678
(可以修改hostapd.conf 的ssid和password)
如果以上步骤测试均正常,ap模式验证完毕。