ANdroid Wi-Fi 移植

已经移植了好几个平台的Wi-Fi驱动,一直以来都没有遇到什么问题,这次有个同事在移植驱动时,不能搜到AP,找我帮忙分析时,我看了一下他的配置文件和wifi.c文件,还是有几个地方需要注意的,对于第一次移植Wi-Fi来说,当遇到问题时,还是不知道怎么解决的。我这里给总结一下,让大家以后少走一点弯路。

1. 模块驱动

    这块比较简单,基本上是由WiFi模块的厂商提供源码,编译生成ko文件,但需要内核中提供上下电接口。这里就不说。

2. 配置文件

    这里还是要注意的,一般的配置文件需要注意init.rc和wap_supplicant.conf这两个文件。

   网上有很多这样的配置文件的例子。我这记录一下需要主要的地方。就是wpa_supplicant.conf文件中有下面这样一行:

   ctrl_interface=DIR=/data/system/wpa_supplicant

 

这个ctrl_interface可以配置成两种方式,一种是android private模式,一种是unix标准模式:

即可以配置如下两种方式:

(1)ctrl_interface= wlan0  

(2)ctrl_interface=/data/system/wpa_supplicant

 

但是要注意的是配置成第一种方式,就不能在init.rc文件中创建 /data/system/wpa_supplicant这个文件目录,要是创建了,就会出现如下log:

""Unable to open connection to supplicant on...."

要是配置为第二种方式,就需要创建 /data/system/wpa_supplicant这个文件目录,并且在wifi.c文件中添加:

static const char IFACE_DIR[]           = "/data/system/wpa_supplicant"; 

3. wifi.c

    这个根据自己的模块修改相应的初始化,我这里提一个注意的地方:

int wifi_connect_to_supplicant()  

{

  .......

   ......

 

 property_get("wifi.interface", iface, WIFI_TEST_INTERFACE);   //这里一定要加上这句话

  .........

 

 

 

}

 

4. init.rc配置文件:

当移植wifi时,需要添加相应的配置,这里给我移植的一款详细的配置在这做个参考:

 

   mkdir /data/misc/wifi 0771 wifi wifi
    chown wifi wifi /data/misc/wifi
    chmod 0771 /data/misc/wifi
    mkdir /data/misc/wifi/sockets 0771 wifi wifi
    chown wifi wifi /data/misc/wifi/sockets
    chmod 0771 /data/misc/wifi/sockets
    mkdir /data/misc/dhcp 0770 dhcp dhcp
    chown dhcp dhcp /data/misc/dhcp
    chmod 0770 /data/misc/dhcp


   setprop wifi.interfac wlan0

service wpa_supplicant /system/bin/wpa_supplicant -Dwext -iwlan0 -c/data/misc/wifi/wpa_supplicant.conf
    socket wpa_wlan0 dgram 660 wifi wifi
    disabled
    oneshot

service dhcpcd /system/bin/dhcpcd -BKL wlan0
    disabled
    oneshot

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值