这天先做了很多杂事,把固件路径规划一下,这个还是和驱动编译有关,改了重新编译驱动就可以了。重点是手动启动wpa_supplicant。wpa_supplicant具体错误是: Supplicant not running, cannot connect. 1.手动启动wpa_supplicant 当驱动模块没有问题的时候,我就强行上它上路了,但是从Settings中打开的时候,模块抛入成功-》wpa_supplicant启动失败,所以要找找启动不起来的原因了。 遇到了两个疑惑,看到的例子是使用的wext协议启动的,而目前Android BSP上带的几个都是用nl80211启动的。通过尝试RT3070适合的是wext协议。wpa_supplicant正常启动后,启动端会有响应,可以从/proc/kmsg中看出。最终定下来的启动参数为:service rt_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf #-Dnl80211 -iwlan0 -puse_p2p_group_interface=1 -e/data/misc/wifi/entropy.bin # we will start as root and wpa_supplicant will switch to user wifi # after setting up the capabilities required for WEXT # user wifi # group wifi inet keystore class main socket wpa_wlan0 dgram 660 wifi wifi disabled Oneshot 添加到init.rk30board.rc中,然后以在hardware/libhardware_legacy/wifi/wifi.c中判断如果是RT3070就启动rt_supplicant。以区别用其它协议启动的wpa_supplicant。 意外上路 这次再次将wifi模块上路,从Settings中直接打开看流程,很意外,上路正常,顺利搜索到AP上。连接网络测试,一切OK。