andriod 2.3.3 跟新后wifi移植修改文件备忘 2011-08-04:
硬件:marvell 8787
-Dwext -imlan0 -c/data/misc/wifi/wpa_supplicant.conf
user root
group wifi inet
socket wpa_mlan0 dgram 660 wifi wifi
disabled
oneshot
# socket wpa_mlan0 dgram 660 root wifi
# disabled
# oneshot
# oneshot
#WPA_SUPPLICANT_VERSION := VER_0_6_ATHEROS
BOARD_WLAN_ATHEROS_SDK := system/wlan/atheros/AR6kSDK
#WPA_SUPPLICANT_VERSION := VER_0_6_ATHEROS
WPA_SUPPLICANT_VERSION := VER_0_6_X //会编译 external\wpa_supplicant_6\wpa_supplicant
#BOARD_WPA_SUPPLICANT_DRIVER := AR6000
BOARD_WLAN_CHIP_AR6102 := true
BOARD_WLAN_CHIP_AR6003 := true
BOARD_WPA_SUPPLICANT_DRIVER := WEXT
# Select Wake on wireless mode for AR6003 suspend/resume policy
BOARD_WLAN_PM_SUSPEND := 2
ap_scan=1
5、 确定.config 中,是否存在以下3个选项支持wifi驱动的选项
CONFIG_WIRELESS_EXTENSION=y
CONFIG_CTRL_IFACE=y
CONFIG_DRIVER_WEXT=y
6、修改 frameworks/base/wifi/java/android/net/wifi/ WifiStateTrackey.java
public WifiStateTracker(Context context, Handler target) {
// mInterfaceName = SystemProperties.get("wifi.interface", "tiwlan0");
mInterfaceName = SystemProperties.get("wifi.interface", "mlan0");
7、 修改/hardware/libhardware_legacy/wifi/wifi.c
把驱动名称,路径啊什么的,换成你自己驱动(也就是ko文件)的名字和存放的路径。
8、在system/etc 下创建文件夹firmware/mrvl ,这个是用来存放 sd8787_uapsta_bin 的。
然后将你的 *.ko 放到 system/lib/modules 下面 ,7 中的路径就是这个了。
9、最后致意看下在system/etc/wifi/ 下的wpa_supplicant.conf文件中确认:
update_config=1
ctrl_interface=mlan0
ap_scan=1
10、注意上面8、9两条里面指的路径是指SD卡上的,或是你系统起来的路径
※ 注意: 在此版本中编译external\wpa_supplicant_6 ,在wifiservice.java中
Slog.e(TAG, "ath: load Wi-Fi driver for AP mode.");
if (!mWifiStateTracker.loadDriver()) {
// if (!mWifiStateTracker.loadApDriver()) {
系统默认会启动 loadApDriver(),这个是实现wifi共享的,把它改回 loadDriver() 就好,不然在wifi.c中不会去装载wifi驱动。