高通
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
-D
wext
-i
wlan0
-c
/data/
misc
/
wifi
/wpa_supplicant.conf
-d
d
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/
里的文件
copy
到
SYSTEM
文件系统的
/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
会通过这二个接口和守护进程通信。
转载于:https://my.oschina.net/u/174445/blog/30073