调试流程小结:
1,加载驱动
第一步先 insmod cfg80211.ko
第二步 insmod 8723du.ko ifname=wlan0 if2name=p2p0
加载后就 ifconfig -a会发现 wlan0 p2p0 ,此时 打开设备ifconfig wlan0 up /ifconfig p2p0 up
2,分为2大方面
一:是android本身的: 因为增加8723du模块需要修改文件如下:
所用到的文件
android下:
hardware/legecy/wifi.c & Android.mk
device/softallwinner/Boardconfig.mk &aystar.mk & init_sun8.rc
这些添加都有关联 可查目录
二,不用android的调试用:
1, 配置好wpa_suppliant.conf文件 加载wpa_suppliant程序
( PS: 加载wpa_suppliant程序的目的是为了能够使wpa作为frameware和driver的中转,去进行wifi功能的配置及使用
即去调用wpa_cli ,因此先启wpa_suppliant)
启动wpa_suppliant程序执行命令:
#wpa_supplicant -Dnl80211 -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf -N -Dnl80211 -ip2p0 -c/data/misc/wifi/p2p_supplicant.conf &
解释一下:
(1)wpa_supplicant:这个是android里面supplicant bin档的官方命名,这个可以自己去修改,路径在平台的/system/bin/下,属于环境变量,所以在启动的时候不用带上绝对路径。
(2)-Dnl80211:这个说明supplicant与driver的通讯方式采用的是nl80211,这个根据厂家提供的driver来具体设定,也可以是wext方式,以driver为准。
(3)-iwlan0和-ip2p0:说明会带起两个interface来作supplicant与driver之间的通讯interface,这个可以用netcfg看到这两个interface的状态是UP状态的,也可以用ifconfig来看到新增加的两个使能interface wlan0和p2p0
(4)-c/data/misc/wifi/wpa_supplicant.conf和-c/data/misc/wifi/p2p_supplicant.conf:这两个是android标准的supplicant配置文件,路径如上所述,如果p2p_supplicant.conf不存在的话,可以把wpa_supplicant.conf copy一份出来用作p2p_supplicant.conf,android的原生flow就是这么做的。
(5)-N:说明是在wlan0的基础上再加上一个interface,也就是new的意思 ,以前android4.0的时候只能起一个interface,所以也就没有这个参数了。
(6)&:后台运行符(linux基础,你懂的)
如果一切ok,就可以用ps命令在后台看到wpa_supplicant在后台跑了,这个时候需要验证一下supplicant是否运行正常,主要方法是看/data/misc/wifi/sockets/wlan0路径下是否有wlan0和p2p0两个socket,这个是wifi framework和supplicant之间的通讯socket
2,启动wpa_cli配置wifi
1:sta连线(sta)
#wpa_cli -iwlan0 (使用wpa_cli给supplicant下命令,这个是supplicant的client端)
>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等等信息)
如果一切ok,而且cheny这个路由器能够联通外网,那么此时你就可以ping通外网,平台与路由器之间的连线就建立起来了。
PS:
这里要说的是sta连线就是我们平时连接路由器的功能,p2p连线就是wifi direct功能,下面分别简单实现sta和p2p连线
这里参考文章:原文链接:https://blog.csdn.net/lele_cheny/article/details/16354479