全志A20 wifi驱动移植

最近调试了rt5572模块的wifi驱动,sta功能是好的,ap和wifi direct功能没有调试出来,调试流程和教训总结如下:

1、这两款都是usb接口的,首先确保电源是好的,android系统启动后,busybox lsusb罗列一下pid和vid。

2、加载编译好的驱动insmod *.ko,busybox ifconfig -a查看相关设备有没转出来wlan0 p2p0,busybox ifconfig wlan0 up

3、使用 ./iwmulticall iwlist wlan0 scaniwconfig wlan0 essid “MyHome” 可以连接没有加密的wifi热点,使用dhcpcd动态获取ip地址,验证ok

4、把对应的wpa_supplicant.conf和hostapd.conf 放到/data/misc/wifi目录下

/system/bin/wpa_supplicant -d  -Dnl80211 -iwlan0  -c/data/misc/wifi/wpa_supplicant.conf -B

wpa_cli -iwlan0 -p/data/misc/wifi/sockets

使用方法如下:

>scan                                                        (让driver做扫描动作)
>scan_results                                         (让driver反馈扫描结果给supplicant)
>add_network                                         (添加一个网络,这里面会给一个号码,一般开机的第一次添加就是0)
>set_network 0 ssid "cheny"                (选择一个名叫cheny的路由器,这个是前面scan_result反馈回来的名字)
>set_network 0 psk "12345678"          (输入名叫cheny的路由器的密码12345678,加密方式是wpa-psk)
>enable_network 0                                 (使能cheny路由器,也就是建立连接)
>save                                                          (保存)
>status                                                        (查看supplicant的当前状态,一般结果是compeleted)
>quit                                                            (退出wpa_cli命令行)
#dhcpcd -iwlan0                                       (给wlan0这个interface分配ip)
#ifconfig wlan0                                          (查看wlan0的信息,一般会有ip,mac,gateway,netmask,dns等等信息)

hostapd /data/misc/wifi/hostapd.conf 这样就可以转出对应的ap热点,busybox ifconfig wlan0 192.168.30.23 ip并且在手机端搜索到该热点并设置成静态ip地址方式,就可以实现ap的连接了。
5、对应的上层适配就是一些逻辑判断了。

驱动调试前在驱动源码中把相关日志打开很关键,有了详细的日志只要耐心跟踪就能顺藤摸瓜找到适配的关键所在;
usb设备需要注意PID,VID;
open file fail这种情况,不管三七二十一先把相关文件赋一下权限;
实在不行就需要跟进android源码wpa_supplicant_8相关部分和内核中80211相关部分。

你可能感兴趣的:(全志A20 wifi驱动移植)