高通wifi android 層移植(bcm4329)

高通wifi android 層移植(bcm4329

定義好內核模塊的位置(包括內核模塊、固件、NVRAM、以及其它的內核模塊,比如說SDIO的驅動或是USB驅動(如果是USB網卡的話))

hardware/libhardware_legacy/wifi/wifi.c要用到。

Wifi.c裏面的一些宏可以在BoardConfig.mk裏面去配置。

BOARD_WPA_SUPPLICANT_DRIVER := WEXT

WIFI_DRIVER_MODULE_PATH := /system/etc/dhd.ko

WIFI_DRIVER_MODULE_NAME := dhd

WPA_SUPPLICANT_VERSION := VER_0_6_X

進入到:system/core/rootdir/etc/init.qcom.rc

主要是加入如下二個服務:

service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant

-Dwext

-iwlan0

-c/data/misc/wifi/wpa_supplicant.conf

-dd

user wifi system

group system

# socket wpa_wlan0 dgram 660 wifi wifi

disabled

oneshot

-i<ifname> : 網絡接口名稱
-c<conf>:
配置文件名稱
-C<ctrl_intf>:
控制接口名稱
-D<driver>:
驅動類型
-p<driver_param>:
驅動參數
-b<br_ifname>:
橋接口名稱

http://blog.csdn.net/wyl123/article/details/4692617

上面網站有介紹

具體介紹wpa_supplicant wpa_cli的用法:

http://blog.163.com/wxiongn@126/blog/static/11788203820102262748358/

add_network

1

> set_network 2 ssid "gionee(znsj)"

FAIL

> set_network 1

<2>CTRL-EVENT-SCAN-RESULTS

ssid "gionee(znsj)"

OK

> et_network 1 psk "1234567890"

Unknown command 'et_network'

> set_network 1 psk "1234567890

<2>CTRL-EVENT-SCAN-RESULTS

"

OK

> enable_network 1

OK

service dhcpcd_wlan0 /system/bin/dhcpcd -BKL -d wlan0 -o domain_name_servers

disabled

oneshot

system/core/rootdir/裏面的Android.mk有複製的功能可以:

# files that live under /system/etc/...

copy_from := \

etc/dbus.conf \

etc/hosts \

etc/init.qcom.post_boot.sh \

etc/init.qcom.bt.sh \

etc/init.qcom.coex.sh \

etc/init.qcom.fm.sh \

etc/init.qcom.sdio.sh \

etc/dhd.ko \

etc/fw_bcm4329.bin \

etc/nvram.txt \

etc/init.qcom.wifi.sh

意思是把system/core/rootdir/etc/裏的文件copySYSTEM文件系統的/system/etc/目錄下去。

進入:frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java目錄裏:

mInterfaceName = SystemProperties.get("wifi.interface", "wlan0");

sDnsPropNames = new String[] {

"dhcp." + mInterfaceName + ".dns1",

"dhcp." + mInterfaceName + ".dns2"

};

執行過程:

wpa_supplicant起來以後:

守護進程會產生一個/data/misc/wifi/wpa_supplicant/wlan0接口

根據wpa_cupplicant.conf得來:

ctrl_interface=DIR=/data/misc/wifi/wpa_supplicant GROUP=wifi

同時在/data/misc/wifi/下創建一個socketies目錄,下面會有二個sockets

一個是控制接口,一個是監控接口(這個接口用於監測從wpa_supplicant發出的event事件。)

Wifi.c會通過這二個接口和守護進程通信。

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