SDIO WIFI模块安卓系统RAK310_AND模块用户手册
深圳英赛尔电子有限公司产品用户手册
RAK310 用户手册
类别内容
关键词RAK310开发板
摘要本文主要介绍RAK310开发板套件,针对wifi无线学习和开发使用,详细介绍了该套件的使用方法和软件支持
版本V0.0.1创建日期2012-7-12
修订历史
版本日期原因
V0.0.1 2012-7-12 创建文档
销售与服务网络
北京总公司
FAE邮箱:allan.jin@https://www.360docs.net/doc/1f1910798.html, 金彦哲
销售电话:010-********/7289/7279/7269/7261
010-********/7276/7288/7909/8791/7293
传真:010-********/8368
地址:北京市海淀区苏州街18号长远天地A1座1703室
网址:https://www.360docs.net/doc/1f1910798.html,/
上海分公司
FAE邮箱:lee.zhang@https://www.360docs.net/doc/1f1910798.html, 张义宾
销售电话:021-********/3086/3633/3396/3586/3323
传真:021-********
地址:上海市闵行区万源路2158号泓毅大厦412室
深圳分公司
FAE邮箱:peter.peng@https://www.360docs.net/doc/1f1910798.html, 彭飞
销售电话:0755-8376 4792/3219/7518/8954/4775/9209 0755-********
传真:0755-********/83290087
地址:深圳市龙岗区布吉镇坂田吉华路393号英达丰科技园3楼
目录
1. 功能简介 (5)
2. 硬件描述 (5)
2.1 开发板外观 (6)
2.2 接口配置 (6)
2.3 尺寸规格 (6)
3. RAK310无线网卡驱动移植 (7)
3.1 移植环境 (7)
3.2 RAK310驱动编译 (7)
3.2.1 解压RAK310驱动源码 (7)
3.2.2 修改配置Android.mk (7)
3.2.3 配置内核支持wifi网络 (7)
4. 配置Android (8)
4.1修改android支持wifi功能 (8)
4.2修改控制wifi管理函数功能 (8)
4.3修改wpa_supplicant.conf (9)
4.4修改dhcp配置 (9)
4.5配置路径和权限 (10)
4.6配置运行wpa_supplicant (10)
4.7编译android (10)
5. 测试RAK310 (11)
5.1测试连接无线AP (11)
5.2 连接无线AP (12)
5.3测试传输速率 (14)
5.3.1 运行iperf (15)
5.3.2 测试结果 (15)
1.功能简介
RAK310是一款小巧功能齐全针对WIFI无线通信学习及开发应用的学习套件。
图1.1 RAK310开发板
该开发套件,有以下特点:
●符合标准的802.11n/g/
●作为普通的STA模式(普通的wifi终端,可以接入指定的AP)
●AP模式(路由模式,支持无线路由功能,可以当无线路由器使用)
●ADHOC点对点传输或桥接模式
●支持两种网络类型Infra/adhoc
●支持多种安全认证机制:WEP64/WEP128/ TKIP/CCMP(AES)/ WEP/WPA-PSK/WPA2-PSK
●支持多种网络协议:TCP/UDP/ICMP/DHCP/DNS/HTTP
●支持内置/外置天线
●支持标准接口SDIO2.0 (4-bit和1-bit)
●支持OS系统ANDROID2.3/4.0
2.硬件描述
2.1开发板外观
图2.1 RAK310和SD卡套2.2接口配置
图2.2接口定义
2.3尺寸规格
图2.3尺寸定义
3.RAK310无线网卡驱动移植
3.1移植环境:
主机操作系统:Ubuntu 11.04
目标系统:ANDROID2.3
目标平台:S5VP210-ARM Cortex-A8
交叉编译器:arm-linux-gcc-4.5.1-v6
3.2 RAK310驱动编译
3.2.1、解压RAK310驱动源码
在开发平台下首先新建一个工作目录work,将附带光盘中atheros_AND.gz源码拷贝到work目录下并进行解压:
cp /mnt/sd/atheros_AND.tar.gz /work
tar zxvf atheros_AND.tar.gz
解压后生成atheros和external目录。
然后将解压的两个目录放置到android系统目录下
cp atheros -rf ../
cp external/ath_supplicant-0.8.x -rf ../
cp external/hostapd-0.8.x -rf../
cp external/iperf-2.0.4 -rf ../
3.2.2、修改配置Android.mk
首先进入../
cd system/wlan/atheros/AR6kSDK.build_3.1_RC.779/host
vim Android.mk
修改内核源码路径并指定交叉编译工具:
退出保存。
3.2.3配置内核支持wifi网络
否则会出现错误
进入到内核所在根目录进行配置make menuconfig
指定内核路径指定交叉编译
配置完毕后,需要编译下内核,目的是使配置在include/linux/autoconfig.h中生效
退出保存
make zImage
4.配置android
4.1、修改android支持wifi功能
进入/device/
cd ../
vi BoardConfig.mk
# ADD Wi-Fi
BOARD_WPA_SUPPLICANT_DRIVER := AR6000
WPA_BUILD_SUPPLICANT := true
WPA_SUPPLICANT_VERSION := VER_0_8_ATHEROS //指定wpa_supplicant版本
BOARD_WLAN_ATHEROS_SDK := system/wlan/atheros/AR6kSDK.build_3.1_RC.779 //驱动位置
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
HOSTAPD_VERSION := VER_0_8_ATHEROS
#select wake on wireless mode for ar6k
BOARD_WLAN_PM_SUSPEND :=2
CONFIG_CTRL_IFACE := y
4.2、修改控制wifi管理函数库
Android中通过wpa_supplicant控制wifi。wpa_supplicant通过socket与hardware/libhardware_legacy/wifi/wifi.c通信,当在UI开启wifi的时候首先要加载wifi模块驱动,然后开启wpa_supplicant配置文件,因此在wifi.c中修改驱动和配置文件的对应位置。
cd ../
vi wifi.c
将以下代码
#ifndef WIFI_DRIVER_MODULE_PATH
#define WIFI_DRIVER_MODULE_PATH "/system/lib/modules/wlan.ko"
#endif
#ifndef WIFI_DRIVER_MODULE_NAME
#define WIFI_DRIVER_MODULE_NAME "wlan"
#endif
#ifndef WIFI_DRIVER_MODULE_ARG
#define WIFI_DRIVER_MODULE_ARG ""
#endif
#ifndef WIFI_FIRMWARE_LOADER
#define WIFI_FIRMWARE_LOADER ""
#endif
#define WIFI_TEST_INTERFACE "sta"
修改为
#ifndef WIFI_DRIVER_MODULE_PATH
#define WIFI_DRIVER_MODULE_PATH "/system/wifi/ar6000.ko"
#endif
#ifndef WIFI_DRIVER_MODULE_NAME
#define WIFI_DRIVER_MODULE_NAME "ar6000"
#endif
#ifndef WIFI_DRIVER_MODULE_ARG
#define WIFI_DRIVER_MODULE_ARG ""
#endif
#ifndef WIFI_FIRMWARE_LOADER
#define WIFI_FIRMWARE_LOADER ""
#endif
#define WIFI_TEST_INTERFACE "wlan0"
4.3、修改wpa_supplicant.conf
把external/ath_supplicant-0.8.x/wpa_supplicant/wpa_supplicant.conf拷贝到
out/target/product/smdkv210/system/etc/wifi/目录下,
并把相关配置的修改为:
ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifi //wlan0在这个目录下eapol_version=1
ap_scan=0 //
fast_reauth=1
4.4、修改dhcp配置
在/system/etc/dhcpcd/dhcpcd.conf中修改
interface wlan0
option subnet_mask, routers, domain_name_server
4.5、配置路径和权限
wpa_supplicant运行在wifi用户和组下的。代码可见wpa_supplicant/os_unix.c 中的os_program_init()函数。
如果配置不对,会出现下面错误:
E/WifiHW ( ): Unable to open connection to supplicant on"/data/system/wpa_supplicant/wlan0": No such file or directory will appear。
如果系统的/system目录为只读,那应该使用路径/data/misc/wifi/wpa_supplicant.conf.
确认init.rc中有如下配置:
cd ../
vi init.rc
# give system access to wpa_supplicant.conf for backup and restore
mkdir /data/misc/wifi 0770 wifi wifi
chmod 0770 /data/misc/wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
chmod 0660 /data/misc/wifi/hostapd.conf
mkdir /data/misc/wifi/sockets 0770 wifi wifi
chmod 0770 /data/misc/wifi/sockets
mkdir /data/misc/dhcp 0770 dhcp dhcp
chmod 0770 /data/misc/dhcp
chmod 0775 /system/etc/dhcp/dhcp-run-hooks
setprop wifi.interface wlan0
4.6、配置运行wpa_supplicnat、dhcp和hostapd
在init.rc中添加如下语句:
service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant -dd -Dwext -iwlan0 -c /data/misc/wifi/wpa_supplicant.conf
user root
group wifi inet
socket wpa_wlan0 dgram 660 wifi wifi
oneshot
service dhcpcd /system/bin/logwrapper /system/bin/dhcpcd -d -B wlan0
disabled
oneshot
service hostapd /system/bin/hostapd /system/etc/wifi/hostapd.conf
group wifi inet
oneshot
disabled
4.7、编译android
在android根目录下执行
make –j4
制作镜像文件烧写目标板中,启动目标板。
5.测试RAK310
启动目标板后可以在UI界面启动wifi
点击setting—>wireless&networks-->Wi-Fi开启wifi
然后点击Wi-Fi setting查看是否正常
通过查看wifi已经正常开启并且搜索出附件可用的节点
5.1测试连接无线AP
下面连接一个事先配置好的AP ssid:Android-test
配置无线AP (型号TL-WR700N)
准备一个无线路由器登入路由配置界面,在pc浏览器中输入路由ip地址(图5.1)
图5.1
进入路由界面后将路由配置成AP模式(图5.2)
图5.2
对AP模式进行基本参数设置(图5.3)
图5.3
对AP进行无线安全设置,在此我们设置为无线WPA加密模式(图5.4),当然也可以设置成wep等加密模式
图5.4
配置完成后保存,重启AP
5.2连接无线AP
然后通过界面搜索到我们所设置的ap,如图所示UI显示Android-test为wpa加密模式
然后点击Android-test进行连接,如图所示输入设置密码:
然后点击connect进行连接。如图显示连接状态。
图显示连接后自动获取ip地址
通过前面UI显示已经正确连接上ap,下面可以通过网页进行验证,如图显示:
测试成功。
5.3、测试传输速率
在测试速率采用的是iperf测试工具,Iperf 是一个网络性能测试工具。使用iPerf之前,必须安装两个组件:iPerf 服务器(用于监听到达的测试请求)和iPerf客户端(用于发起测试会话)。iPerf 可通过开放源代码或可执行二进制方式获取,它支持许多操作系统平台,包括Win32、Linux、FreeBSD、MacOS X、OpenBSD和Solaris。你可以在NLANR上下载iPerf的Win32安装程序,而Java GUI版本(JPerf)则可以从SourceForge下载。
在套件光盘中已经提供了iperf安装组件,在光盘中平台工具文件夹里提供了一个运行于windows 下的测试软件iperf.exe,将它拷贝到任何一个盘符中(如D:\)
5.3.1、运行iperf
我们将运行在pc机上的iperf作为server,目标板上的iperf作为client;
首先在命令提示符中打开服务端:
1、点击“开始”—>“运行”—>在弹出的运行对话框中输入cmd-->点击确定弹出一个dos命令提示符
2、在命令提示符中输入d:点击回车进入D盘
3、在命令提示符中输入iperf -s –i 1 –w 1M
然后在目标板中开启iperf客户端:
进入目标板根目录运行iperf
/ #cd /
/ #./iperf -c 192.168.9.19 –i 5 –w 1M –t 20s
5.3.2、iperf测试结果
Iperf测试参数说明:
-s 以server模式启动。#iperf -s
-c host以client模式启动。host是server端地址。#iperf -c serverip
-i sec 以秒为单位显示报告间隔,#iperf -c 192.168.1.102 -i 5
-w 指定TCP窗口大小,默认是8KB ,#iperf –s –w 1M
-t 测试时间,默认20秒,#iperf –c 192.168.1.102 -t 60s
-f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,#iperf -c 192.168.1.102 -f K
-p 指定服务器端使用的端口或客户端所连接的端口#iperf -s -p 9999;or iperf -c 192.168.1.102 -p
9999
-u 使用udp协议,不指定默认为tcp
-C 兼容旧版本(当server端和client端版本不一样时使用)-F 指定需要传输的文件