标签:
部分主要是您要清楚WiFi作为什么功能,即WiFi是仅仅作为station功能,还是要开启p2p功能,当WiFi作为station功能时候开启的是wpa_supplicant服务,当WiFi作为p2p功能开启的是p2p_supplicantf服务。
当WiFi作为station功能时开启的是wpa_supplicant,这时候一般不会出现接口错误,因为这时候wpa_supplicant服务中只用到wlan0接口,即使上层不定义wlan0底层驱动也会默认产生wlan0接口
当WiFi作为p2p功能时开启的是p2p_supplicant,这时候可能会出现接口错误,因为p2p_supplicant服务会用到p2p0接口,所以您需要提前定义好p2p0。
如果你没有定义p2p0接口,但加载时候有时候会首先启动p2p_supplicant服务,由于p2p_supplicant服务会用到p2p0这个接口,所以出现加载失败。那么怎样才能使系统不首先启动p2p_supplicant服务,而是首先启动wpa_supplicant服务?这是因为您平台/etc/permisssions/目录下有android.hardware.wifi.direct.xml这个文件,只要将这文件删掉或者重命名下,修改后记得要reboot下才能生效,操作说明如下:
130|root@android:/etc/permissions# ls -l
-rw-r--r-- root root 158 2008-08-01 12:00 amlogic.libplayer.xml
-rw-r--r--root root 150 2008-08-01 12:00amlogic.pppoe.xml
-rw-r--r--root root 168 2008-08-01 12:00amlogic.subtitle.xml
-rw-r--r-- root root 975 2008-08-01 12:00 android.hardware.usb.accessory.xml
-rw-r--r-- root root 868 2008-08-01 12:00 android.hardware.usb.host.xml
-rw-r--r-- root root 843 2008-08-01 12:00 android.hardware.wifi.direct.xml
-rw-r--r--root root 829 2008-08-01 12:00 android.hardware.wifi.xml
-rw-r--r--root root 1050 2008-08-01 12:00 android.software.live_wallpAPer.xml
-rw-r--r--root root 880 2008-08-01 12:00android.software.sip.voip.xml
-rw-r--r--root root 828 2008-08-01 12:00com.android.location.provider.xml
-rw-r--r-- root root 828 2008-08-01 12:00com.google.widevine.software.drm.xml
-rw-r--r--root root 10536 2008-08-01 12:00 platform.xml
-rw-r--r--root root 2614 2008-08-01 12:00tablet_core_hardware.xml
怎么判断启动的是 p2p_supplicant 还是 wpa_supplicant ?因为您在没有定义 p2p0时启动 p2p_supplicant 服务,从 log 里面可以很明显看到如下 log :
wpa_supplicant( 4316):p2p0: Failed to initialize driver interface
但是为什么会出现这个问题呢? 直接删了那个文件也不行,那个文件是p2p的文件,删了就没有direct功能了。
后来对比一下发现。有些目录缺少了。
文件地址 device/ti/beaglebonebalck/BoardConfig.mk
USES_TI_MAC80211 := true WIFI_FIRMWARE_LOADER := "" COMMON_GLOBAL_CFLAGS += -DUSES_TI_MAC80211
于是添加之后就可以了。
标签:
原文地址:http://www.cnblogs.com/ioio/p/4600562.html