Android wifi調試過程

wifi porting文件和目錄

porting wifi主要分爲兩個部分,源碼的修改和配置文件的修改,其中配置文件的修改包括源碼未編譯時配置文件的修改和源碼編譯後的配置文件修改,下面就這兩部分分析:

A:android未編譯時的配置文件修改和源碼修改

1:/android-cupcake/build/target/board/generic/ BoardConfig.mk
確定是否存在HAVE_CUSTOM_WIFI_DRIVER_2 := true,如果沒有則添加該選項

/android-eclair/external/wpa_supplicant/.config.h

確定.config.h中,是否存在以下3個選項
CONFIG_WIRELESS_EXTENSION=y

CONFIG_CTRL_IFACE=y

CONFIG_DRIVER_WEXT=y

以上是支持wifi驅動的選項!

2:修改的源碼文件

2.1/android-cupcake/system/wlan/ti/sta_dk_4_0_4_32/CUDK/tiwlan_loader/tiwlan_loader.c

這個文件修改的tiwlan_loader服務,這個服務在android1.5中需要返回成功,表示加載wifi的固件到eeprom中成功,而實際內核在加載wifi驅動的時候,同時加載了固件(即提供的bin文件)。但是在android2.0中,這個服務不是必須的!在編譯tiwlan_loader.c時需要/android-cupcake/system/wlan/ti/sta_dk_4_0_4_32/CUDK/UtilityAdapter編譯出來的庫。

2.2/android-cupcake/hardware/libhardware_legacy/wifi/wifi.c

這個是porting wifi驅動的最重要的文件,其中包括驅動加載,連接wpa_supplicant服務都是在wifi.c中完成。所以要修改驅動加載的網絡接口名和相關的宏。

2.3/android-cupcake/frameworks/base/wifi/java/android/net/wifi
這個目錄下是wifi中相關的java代碼,其中修改的WifiStateTracker.java,這個主要修改dhcp時,獲取動態ip地址的網絡接口名。
2.4 external/wpa_supplicant/wpa_ctrl.c
這個主要修改wpa_supplicatn連接時的權限,wpa_supplicant服務啓動的時候客戶端和服務端通過unix socket通信,JAVA UI 界面是通過此socket文件與驅動聯繫,此服務生成的socket在/data/system/wpa_supplicant/目錄下,如果涉及到權限問題,則需要修改 external/wpa_supplicant/wpa_ctrl.c中相關的目錄的權限

2.5 frameworks/base/services/java/com/android/server/WifiService.java
這個在android1.5中,上傳到BSSID,ISSID,java代碼無法識別。在android2.0中無需修改。

B:android編譯後的相關配置文件的修改

3.1/system/etc/wifi/wpa_supplicant.conf

看目錄下是否存在該文件,如果不存在,則添加;並且添加wpa_supplicant服務socket的服務接口,如下所示:

ctrl_interface=/data/system/wpa_supplicant//默認的mlan0無線網絡接口的目錄
update_config=1 //這個可能是更新的配置,但不確認
3.2/system/etc/dhcpcd/dhcpcd.conf

看是否存在改文件,不存在則添加,並且修改無線網絡接口的網絡名字,如android默認的是tiwlan0 ,而我的無線網絡接口是mlan0,則把interface 後面的接口改成mlan0
3.3 init.rc

 service  wpa_supplicant   /system/bin/wpa_supplicant   -imlan0 -c/system/etc/wifi/wpa_supplicant.conf
     disable
    oneshot
  service dhcpcd /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf mlan0
  disable
  oneshot

以上是添加在wifi的服務。
 mkdir /data/misc/wifi  0777 wifi wifi
 mkdir /data/misc/wifi/sockets 0777 wifi wifi
 mkdir /data/system/wpa_supplicant 0777 wifi wifi
 mkdir /data/misc/dhcp 0777 dhcp dhcp
 chown dhcp dhcp /data/misc/dhcp

新建以上的目錄。

如果你不的平臺不出稀奇古怪的問題的話,現在你已經可以ping通你想用的ip地址咯!


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章