android上一次wifi模块调试经过

在android设备的开发过程中,经常会碰到更换模块的情况,比如说经常被更换的wifi模块,这里有可能是硬件部门觉得某个别的模块比现有的模块做得更好所以希望尝试一下,做做对比实验;也有可能是公司找到了更便宜的供应商,想做cost down,貌似是后者占的概率更高......

把wifi模块更换之后,一般情况下就需要进行驱动上的匹配和调试,以及编译生成固件了。当然,不排除更换wifi模块之后原有固件还能直接兼容的,不过这种好事貌似一般享受不到呢....下面记录一次比较完整的比较走运的调试经过.

首先使用最小文件系统(rootfs)作为boot镜像,以单步烧录的方式写入到板子上.最小文件系统的制作可以问谷歌,搜出来的第一页就足够用了.之所以要用rootfs进行调试,是因为完整的android系统需要底层、hal层和上层都配合好才能正常运行,并不利于模块调试.使用最小文件系统就是为了避开这种情况,把模块的调试层次化,先从底层调起,确认模块能正常工作是第一步;

最小文件系统烧录进去之后,板子上电开机,等待一会,应该就可以使用adb进行连接了,如果最小文件系统没有adb,回到第一步添加进去.确认adb正常连接,准备好需要调试的wifi模块的驱动,现在的芯片厂商一般都会针对各个平台释放相应的wifi驱动(已经编译好的ko文件)及文档,照顾得都比较周到.直接使用adb push需要的驱动到板子上,可以把驱动放在某个新建的目录下,如/tmp,准备安装;

adb连接进板子上操作,su获取最高权限之后使用insmod加载wifi驱动程序,留意返回信息,加载没有报错的话,就lsmod确认一下;

假设wifi驱动已经加载上,则使用busybox ifconfig -a,看看端口是否已经起来,通常情况下是wlan0;

假设wlan0已经起来,则加载环境变量,source /etc/profile,加入需要的工具,wpa _ supplicant和wpa _ cli.使用命令开启wifi服务,典型用法是:

$wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wifi/wpa_supplicant.conf
更具体可以查看man page或者直接谷歌.其中用到了一个配置文件wpa _ supplicant.conf,这个配置文件的格式如下:

update_config=1
ctrl_interface=wlan0
eapol_version=1
ap_scan=1
fast_reauth=1




network={
ssid="your access point"
proto=WPA
key_mgmt=WPA_PSK
psk="pass words"
}

如果上述命令连接还稳定,那么就用-B参数再跑一次,让它在后台运行,然后继续使用wpa _ cli工具查看实际的连接状态,命令:$wpa _ cli status 不成功的话就使用wpa _ cli terminate关闭服务,回头开始找问题调试.如果返回的信息是成功的,那就证明连接是稳定的,这时候就可以使用udhcpc -i wlan0来尝试获取ip地址了,看返回值;

如果不能通过dhcp服务自动获取ip,手动设置也是很有必要尝试的,设置方法 ifconfig wlan0 192.xxx.xxx.xxx

ip获取或者设置完毕之后,尝试ping路由器,看是否可以ping通,ping 192.168.1.1

如果路由也能ping通,那离成功就很近了,下面使用route add default gw 192.168.1.1增加一条默认路由,然后使用route -n查看路由表,看是否成功添加上去,如果成功了,那应该就能ping同局域网内的其他ip了

然后继续ping谷歌的域名服务 ping 8.8.8.8,测试路由能否跳转到外网

如果也可以ping通,那就可以尝试ping域名了,如ping www.baidu.com

最后几步通常是比较顺畅的几步,如果以上都成功了,那wifi的底层调试已经基本完成了,接下来就可以换回正常的android系统,在图形界面中进行测试尝试了.

当然,这里的每一步可能都会有坑,而且,一般都会有......
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值