一、wifi基本架構
1、開源代碼移植部分(external目錄下) wireless_tools、wpa_supplicant、wpa_supplicant_6(後兩項已經移植過) 生成庫libwpaclient.so和守護進程wpa_supplicant及iwconfig、iwlist等相關的測試程序 2、hardware/libhardware_legary/wifi/wifi.c是wifi管理庫 生成libnetutils.so 同時會和wpa_supplicant守護進程通信 3、JNI部分ifeq($(PLATFORM),BCM7431)
LINUX_SRC= ${ANDROID_PATH}/kernel #修改path為你的android目錄
endif
驅動編譯後會生成兩個文件:RT5370STA.ko 和RT2870STA.dat,後面
會看到需要拷貝這兩個文件到系統中。
ioctl 驅動代碼接口在os/linux/sta_ioctl.c 及 sta/sta_cfg.c中,如果遇到一些錯誤,一般在這裡都能查找到.
2)把rt5370sta.ko拷貝到.../lib/modules目錄中
include$(CLEAR_VARS)
LOCAL_MODULE := rt5370sta.ko
LOCAL_MODULE_TAGS:= user
LOCAL_MODULE_CLASS:= SHARED_LIBRARIES
LOCAL_MODULE_PATH:= $(TARGET_OUT_SHARED_LIBRARIES)/modules
LOCAL_SRC_FILES:= ${RT5370_PATH}/rt5370sta.ko #PATH
include$(BUILD_PREBUILT)
3) 查看wifi.c文件ko路徑及名字是否正確,若不正確需要修改正確
4) 修改init.rc文件
chmod 0771 /system/etc/wifi wifi wifi
chmod 0660 /system/etc/wifi/wpa_supplicant.conf
chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
mkdir /data/misc/wifi 0771 wifi wifi
mkdir /data/misc/wifi/sockets 0771 wifi wifi
#wpa_supplicant socket
mkdir /data/system/ 0771 system system
mkdir /data/system/wpa_supplicant 0771 wifi wifi
mkdir /data/misc/dhcp 0771 system system
chmod 0777 /system/etc/dhcpcd/dhcpcd-run-hooks
chmod 0777 /data/misc/dhcp/
mountyaffs2 mtd@system /system ro remount
setprop wifi.interface wlan0
service wpa_supplicant /system/bin/wpa_supplicant -dd -Dwext -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf
#group system wifi inet
disabled
oneshot
service dhcpcd_wlan0 /system/bin/dhcpcd wlan0 // 這裡的service需要修改為dhcpcd_wlan0(android2.2 和2.3有差異,我這裡是2.3),而不是dhcpcd!
group system dhcp
disabled
oneshot