首先应该确定与CPU的USBHost接口驱动通信应该正常。
然后按以下顺序进行配置。
一、在linux内核配置,加入以下wireless配置,然后编译烧录内核:
Drivers->Networking->Wireless->
CONFIG_IEEE80211
-*- Improved wireless configurationAPI
[*] nl80211 new netlink interfacesupport
-*- Wireless extensions
<*> Generic IEEE 802.11Networking Stack (mac80211)
Rate control algorithm selection --->
[ ] Enable LED triggers
Export mac80211 internals in DebugFS
[ ] Enable packet alignmentdebugging
[ ] Enable debugging output
{*} Generic IEEE 802.11 NetworkingStack (DEPRECATED)
[*] Enable full debugging output
-*- IEEE 802.11 WEP encryption(802.1x)
<*> IEEE 802.11i CCMPsupport
<*> IEEE 802.11i TKIPencryption
<*> Software MAC add-on tothe IEEE 802.11 networking stack
[*] Enable full debugging output
二、准备如下文件及工具,其源码可以上网搜索:
iwpriv,iwlist, iwconfig, wget, wpa_supplicant, rt3070sta.ko, RT2870STA.DAT;
然后按以下顺序进行wifi调试环境配置:
1.建立文件/system/etc/wifi/wpa_supplicant.conf,内容如下,以下主要配置ssid用,可根据当前环境调试用AP(无线路由器)热点的配置进行设置,这个是用来调试用的,在android环境,有其它配置方法:
ctrl_interface=DIR=/data/misc/wifiGROUP=system
update_config=1
ap_scan=1
network={
ssid="example_essid"
psk="password"
}
2.建目录dhcp,及其空文件dhcpcd-tiwlan0.pid:
#mkdir/data/misc/dhcp
#cd/data/misc/dhcp
#vidhcpcd-tiwlan0.pid
3. 设置网络接口:
#setpropwifi.interface "tiwlan0"
#setpropwlan.interface "tiwlan0"
4.安装wifi驱动,RT2870STA.DAT拷贝至/etc/Wireless/RT2870
#insmod/sdcard/ rt3070sta.ko
6.拷贝无线工具iwpriv,iwlist, iwconfig, wpa_supplicant至/system/bin目录
Iwpriv:可查看网络节点,输入以下命令,如rt3070sta.ko安装成功,会显示我们想要的网络节点:
#iwpriv
7.ifconfig打开网络节点tiwlan0:
#ifconfigtiwlan0 up
8.iwlist tiwlan0 scanning 搜索显示ssid:
#iwlisttiwlan0 scanning
9.设置wifiessid,并动态分配IP, dhcpcd是android一个dhcp库,注意要加&,后台运行,否则后面的命令就输不了了:
#/system/bin/wpa_supplicant -dd -Dwext -itiwlan0 -c/system/etc/wifi/wpa_supplicant.conf &
#/system/bin/dhcpcdtiwlan0 &
10.ping , 检查连接情况,如果出现连接响应,那就恭喜了:
#ping192.168.1.1 &
11.下面就可以通过网络测试你的网络速度如何了,wget命令就可以简单搞定了,如下所示,如果是USB1.1host,就不要期待有多高的速度了,2-3Mbps就不错了,我这边用OTG(USB2.0),连接54Mbps无线路由器,100MB的文件,50秒左右搞定了,平均16Mbps,看起来还不错。将RT3070模块直接连接PC,下载速度基本在16Mbps左右,最高20Mbps左右。
#/bin/busyboxwget ftp://192.168.1.1/file -O filepath
12.推荐读取资料:rt3070驱动中Readme,iwpriv使用文档,iwpriv可以读取RT3070芯片寄存器的值,进行调试。
三、androidwifi优化调试
1.(休眠/唤醒)调试,USB支持远程(休眠/唤醒),这个对于手持设备功耗至关重要。
2.init.rc需增加以下几行,及其它必要的配置:
servicewpa_supplicant /system/bin/wpa_supplicant -dd -Dwext -itiwlan0 -c/system/etc/wifi/wpa_supplicant.conf
groupsystem wifi inet
disabled
oneshot
servicedhcpcd /system/bin/dhcpcd tiwlan0
groupsystem dhcp
disabled
oneshot
3.可在Androidsetting应用程序里配置你的ssid了。
androidftp工具,测试网络速度;
4.可以安装一个FTP工具测试一下你的网速,推荐AndFTP.apk.