最近移植wifi到Eclair,Froyo平臺。由於沒有記錄下移植步驟和心得,以至於每次都浪費了大量的精力。在此記錄下移植步驟和心得,並和大家分享,如果有錯誤歡迎指正。

1、在你的BoardConfig.mk檔中增加一行(根據你的無線網卡類型來設置):

 

1: BOARD_WPA_SUPPLICANT_DRIVER := WEXT
2、在你的board配置目錄下創建一個wpa_supplicant.conf檔,輸入如下內容:

 

1: ctrl_interface=DIR=/data/system/wpa_supplicant
2: update_config=1
3、copy網路驅動模組ko檔到你的board配置目錄下,下文假設網卡驅動模組為LK_DRV_USB_RTL8192.ko。

 

4、修改board配置目錄下的AndroidBoard.mk,增加如下代碼:

 

1: file := $(TARGET_OUT)/lib/modules/LK_DRV_USB_RTL8192.ko
2: ALL_PREBUILT += $(file)
3: $(file) : $(LOCAL_PATH)/LK_DRV_USB_RTL8192.ko | $(ACP)
4: $(transform-prebuilt-to-target)
5:
6: file := $(TARGET_OUT_ETC)/wifi/wpa_supplicant.conf
7: ALL_PREBUILT += $(file)
8: $(file) : $(LOCAL_PATH)/wpa_supplicant.conf | $(ACP)
9: $(transform-prebuilt-to-target)
5、修改hardware/libhardware_legacy/wifi/wifi.c檔。

 

重新定義WIFI_DRIVER_MODULE_PATH和WIFI_DRIVER_MODULE_NAME宏,定義如下:

 

1: #ifndef WIFI_DRIVER_MODULE_PATH
2: #define WIFI_DRIVER_MODULE_PATH "/system/lib/modules/LK_DRV_USB_RTL8192.ko"
3: #endif
4: #ifndef WIFI_DRIVER_MODULE_NAME
5: #define WIFI_DRIVER_MODULE_NAME "LK_DRV_USB_RTL8192"
6: #endif
6、修改init.rc檔,修改如下:

 

1: chmod 0771 /system/etc/wifi wifi wifi
2: chmod 0660 /system/etc/wifi/wpa_supplicant.conf
3: chown wifi wifi /system/etc/wifi/wpa_supplicant.conf
4: mkdir /data/misc/wifi 0771 wifi wifi
5:
6: mkdir /data/misc/wifi/sockets 0771 wifi wifi
7: # wpa_supplicant socket
8: mkdir /data/system/ 0771 system system
9: mkdir /data/system/wpa_supplicant 0771 wifi wifi
10:
11: mkdir /data/misc/dhcp 0771 system system
12:
13: setprop wifi.interface wlan0
14:
15: ice wpa_supplicant /system/bin/wpa_supplicant -dd -Dwext -iwlan0 -c /system/etc/wifi/wpa_supplicant.conf
16: group system wifi inet
17: disabled
18: oneshot
19:
20: ice dhcpcd /system/bin/dhcpcd wlan0
21: group system dhcp
22: disabled
23: oneshot
注意如果有問題,請給各個目錄設置為777屬性,把檔設置為666的檔案屬性試試。

 

7、最好是clean掉,全部重新編譯。享受終於可以享受wifi了!
arrow
arrow
    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()