IDO-EVB6Y09系统支持RTL8723BU和ATBM6032I模块的驱动程序,RTL8723BU和ATBM6032I的测试方法相同。本文以ATBM6032I为例说明WiFi的测试方法,测试模块之前,请确认开发板上已焊接ATBM6032I模块并且连接了WiFi天线。ATBM6032I模块连接天线的方法如下图所示:
1、WiFi模块的开关操作
- 使用
ifconfig
查看WiFi网卡信息
命令输出内容:# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr DC:29:19:3B:DC:10 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
- WiFi开启和关闭
# ifconfig wlan0 up # ifconfig wlan0 down
- 使用WiFi模块扫描无线网络设备
扫描结果如下:# iwlist wlan0 scan
wlan0 Scan completed : Cell 01 - Address: 3C:46:D8:9E:A5:1C Channel:1 Frequency:2.412 GHz (Channel 1) Quality=60/70 Signal level=-50 dBm Encryption key:on ESSID:"Luman_AP" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=7fffffffffffffff Extra: Last beacon: 1100ms ago IE: Unknown: 00084C756D616E5F4150 IE: Unknown: 010882848B960C121824 IE: Unknown: 030101 IE: Unknown: 2A0102 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : TKIP Pairwise Ciphers (2) : CCMP TKIP Authentication Suites (1) : PSK ···
2、设置WiFi模块为STA模式,连接路由器
根据路由器使用的加密方式差异(“WPA-PSK”和“WEP/WPA”),设置WiFi模块为STA模式连接路由器的方法有两种。
路由器使用“WPA-PSK”方式加密的连接方法
在开发板文件系统的“/etc/wifi/”目录下,已经添加WiFi相关的配置文件和操作脚本,其中“wpa.conf”配置文件用于保存要连接的路由器参数,“wifi_sta_start”脚本用于连接路由器,“wifi_sta_stop”脚本用于终止连接路由器。步骤1:修改“/etc/wifi/wpa.conf”文件
默认“wpa.conf”文件的内容如下,需要将“ssid”和“psk”参数修改为要连接的路由器信息。# cat /etc/wifi/wpa.conf ctrl_interface=/var/run/wpa_supplicant network={ ssid="HiWiFi_190B6A" psk="12345678" key_mgmt=WPA-PSK priority=2 }
步骤2:执行“wifi_sta_start”脚本连接路由器
# ./wifi_sta_start
终端输出信息:
[ 393.800521] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready # Successfully initialized wpa_supplicant wlan0: CTRL-EVENT-REGDOM-CHANGE init=BEACON_HINT type=UNKNOWN wlan0: SME: Trying to authenticate with d4:ee:07:19:0b:6a (SSID='HiWiFi_190B6A' freq=2412 MHz) [ 398.267433] [atbm_log]:ieee80211_mgd_auth:(d4:ee:07:19:0b:6a),ssid(HiWiFi_190B6A) [ 398.293259] [atbm_log]:atbm_set_priv_queue_cap:[0],queue_cap[224] [ 398.322307] [atbm_log]:wlan0: authenticated wlan0: Trying to associate with d[ 398.329630] [atbm_log]:ieee80211_start_connecting_work:bssid(d4:ee:07:19:0b:6a) 4:ee:07:19:0b:6a (SSID='HiWiFi_190B6A' freq=2412 MHz) [ 398.367400] [atbm_log]:wlan0: associated [ 398.391338] [atbm_log]:[d4:ee:07:19:0b:6a]:40M channel [ 398.400887] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready wlan0: Associated with d4:ee:07:19:0b:6a wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 wlan0: WPA: Key negotiation completed with d4:ee:07:19:0b:6a [PTK=CCMP GTK=CCMP] wlan0: CTRL-EVENT-CONNECTED - Connection to d4:ee:07:19:0b:6a completed [id=0 id_str=] [ 404.020980] [atbm_log]:ieee80211_ifa_changed(wlan0):IPv4 enable,end_time(104010)
步骤3:查看wlan0模块连接后获取的IP地址
执行完步骤2后,如果路由器支持给连的WiFi模块动态分配IP地址,则使用ifconfig
即可查看到wlan0获取到的IP地址。# ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr DC:29:19:3B:DC:10 inet addr:192.168.1.28 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::859e:917b:94c0:98b9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:86 errors:0 dropped:0 overruns:0 frame:0 TX packets:154 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20327 (19.8 KiB) TX bytes:19628 (19.1 KiB)
如果没有获取到IP地址则需要手动的给wlan0配置IP地址和添加路由,操作方法见步骤4~7,操作之前需要先确认所连接的路由器网段和网关地址。
步骤4:设置WiFi IP地址# ifconfig wlan0 192.168.1.131
步骤5:将路由器的网关加入到开发板的路由表中
# route add default gw 192.168.1.1 dev wlan0
步骤6:测试WiFi是否连接成功
# ping 192.168.1.1
步骤7:执行“wifi_sta_stop”脚本结束连接路由器
# ./wifi_sta_stop
路由器使用“WPA/WEP”方式加密的连接方法
步骤1:开启wlan0# ifconfig wlan0 up
步骤2:设置路由器的”essid”
# iwconfig wlan0 essid “industio”
步骤3:配置路由器的访问密码
# iwconfig wlan0 key “12345678”
步骤4:将路由器的网关加入到开发板的路由表中
# route add default gw 192.168.1.1 dev wlan0
2、设置WiFi模块开启AP模式
设置WiFi模块开启AP模式的脚本和配置文件位于“/etc/wifi/”目录,文件及功能说明如下表所示:
序号 | 文件名 | 说明 |
---|---|---|
1 | hostapd.conf | hostapd配置文件,配置热点名称、密码和加密方式等参数 |
2 | udhcpd.conf | udhcpd配置文件,配置分配的IP范围、router和dns等参数 |
3 | nat_start | 配置WiFi模块支持IP包转发功能,实现WiFi模块上网 |
4 | wifi_ap_start | 开启WiFi AP模式 |
5 | wifi_ap_stop | 停止WiFi AP |
设置WiFi模块开启AP模式的步骤如下所示:
步骤1:修改“/etc/wifi/hostapd.conf”配置文件,设置模块热点名称和密码等信息:
步骤2:修改“/etc/wifi/udhcpd.conf”,配置分配的IP范围、router和dns等参数:
此处WiFi模块使用的网段为“192.168.2.x”,IP地址分配范围为“192.168.2.20 ~ 192.168.2.254”,设置dhs为“8.8.8.8”和“192.168.2.2”,设置router为“192.168.2.2”。
步骤3:设置WiFi数据包转发功能
脚本中配置wifi数据包转发到eth0,可以按照实际情况修改为eth1或4G模块的PPP0。
文件内容如下:
/bin/sh
#设置linux系统允许ip包转发
echo "1" > /proc/sys/net/ipv4/ip_forward
#清除原设置
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
#设置filter table默认原则
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#启用NAT功能
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
步骤3:执行“wifi_ap_start”脚本设置开启AP模式
文件内容如下:
#!/bin/sh
#设置wlan0 ip地址为192.168.2.2
ifconfig wlan0 192.168.2.2 up
sleep 3
# 开启hostapd服务
hostapd -d /etc/wifi/hostapd.conf &
sleep 10
# 开启udhcpd服务
udhcpd -S /etc/wifi/udhcpd.conf
sleep 5
# 开启数据包转发功能
/etc/wifi/nat_start
3、速率测试
上传速率
iperf3 -c 192.168.0.188 -i 1 -t 10
下载速率
iperf3 -s