AP6210 WIFI 不能打开问题,困扰了几个月,今天终于弄好,感觉心情都好了很多
。
说明:
由于描述涉及到ubuntu的目录和开发板A20的目录,如没有特别说明,U目录表示:虚拟机ubuntu里面的目录,A20目录:表示开板的目录
一、关于wpa_supplicant.conf
首先 wpa_supplicant是通过wpa_supplicant.conf中的ctrl_interface=来指定控制socket的。
在U目录:
android4.2/device/softwinner/wing-common/wpa_supplicant.conf文件中,可以指定。
wpa_supplicant.conf文件的内容那如下
ctrl_interface=wlan0 //指定为wlan0
ap_scan=1
update_config=1
编镜像,烧到A20开发,在A20目录:
/system/etc/wifi/wpa_supplicant.conf也有此文件
同时在,
/data/misc/wifi/wpa_supplicant.conf也会复制有一份
二、第一次烧启动后可以打开WIFI,而第二次打不开的原因分析
1、关键点:如果系统的/system目录为只读,那应该使用路径/data/misc/wifi/wpa_supplicant.conf。
2、现在我们就解释,当我们第一次烧录系统启动后,/system
目录的权限较低,所以这时候wpa_supplicant可以访问
读取/system/etc/wifi/wpa_supplicant.conf文件,所以wiif可以开始成功;
而第二次启动的时候,/system目录为只读了,所以只能去寻找/data/misc/wifi/wpa_supplicant.conf,
而我们却没有配置好/data/misc/wifi/wpa_supplicant.conf文件及其访问权限。
三、那么怎样配置/data/misc/wifi/wpa_supplicant.conf呢?
在U目录:android4.2/device/softwinner/wing-common下有
init.rc文件,在里面添加如下内容即可
mkdir /system/etc/wifi 0770 wifi wifi
chmod 0770 /system/etc/wifi
chmod 0660 /system/etc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
#wpa_supplicant control socket for android wifi.c (android private socket)
mkdir /data/misc/wifi 0770 wifi wifi
mkdir /data/misc/wifi/sockets 0770 wifi wifi
chmod 0770 /data/misc/wifi
chmod 0660 /data/misc/wifi/wpa_supplicant.conf
chown wifi wifi /data/misc/wifi
chown wifi wifi /data/misc/wifi/wpa_supplicant.conf
四、总结和思考
其实这个问题不应该折腾这么久的,关键是自己没有懂得好好利用adb的调试信息
点击开启WIFI按钮后,如果是由于上述问题所致,adb会出现一下错误信息
E/WifiHW ( ): Unable to open connection to supplicant on "/data/system/wpa_supplicant/wlan0": No such file or directory will appear。 所以就很容易定位到错误点了,在百度一下即可。
另外就是,老怀疑是厂家驱动的问题,找错了方向,不过厂家也很不给力。
无论怎样,有问题,积极面就会有解决的方法!!!
另外可以参考一下博文:
1、http://blog.csdn.net/xiangrufeifei3/article/details/6988223
2、http://www.cnblogs.com/simonshi/archive/2011/02/28/1967385.html
五、WIFI的启动流程(待续)
阅读(2941) | 评论(0) | 转发(0) |