一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去.

wifi驱动的移植, 以realtek的8188etv为例
到官网下载相应的驱动, 解压后可以看到其中有很多的文档, 应用工具和不同android版本的驱动源代码.

根据自己的android版本选择对应的驱动, 我的是4.0的用的是android_reference_codes_ICS_nl80211目录下的驱动
这个目录下还有一个文档, 跟移植相关的, 一定要好好看啦, 很重要的
进入驱动源代码的根目录, 打开Makefile文件, 修改并添加一下代码

  1. CONFIG_PLATFORM_I386_PC = n #修改的
  2. CONFIG_PLATFORM_ARM_S5PV210 = y #添加的

复制代码

  1. ifeq ($(CONFIG_PLATFORM_ARM_S5PV210), y)
  2. EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
  3. EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 #这个很重要的, 不添加的话android下的wpa_supplicant_8不能与驱动正常沟通啦, 也可以在autoconf_rtl8188e_usb_linux.h中修改, 我的是usb接口的wifi模块, sdio接口的是autoconf_rtl8189e_sdio_linux.h
  4. ARCH ?= arm
  5. CROSS_COMPILE ?= /opt/s210x/arm-2009q3/bin/arm-none-linux-gnueabi- #交叉编译工具
  6. KVER:= 3.0.8 #内核版本
  7. KSRC ?= /opt/x210_ics_rtm_v12/kernel/ #内核根目录
  8. MODULE_NAME := wlan #模块名
  9. endif

复制代码

现在就可以make啦

wifi应用层的移植, xxx为你的硬件平台

将make得到的wlan.ko靠到android源代码根目录下的vendor/xxx/lib/modules 目录下.

看看android源代码根目录下的device/samsung/xxx目录和其子目录下有没有wlan.ko, 有的话就删除它, 并在相应的device.mk文件中删除相应的语句. (其实把移植的wlan.ko放在这里也行的啦)

下面的移植只关心c/c++代码和配置文件部分, 和java相关的不改

external目录下的wpa_supplicant_8是与驱动沟通的工具, android就是通过它来与wifi通信的, 我们只移植与wifi驱动包中不同的文件到这个目录下,

可以使用Meld(linux下的gui化文件比较工具)比较两个目录. hardware 和 system目录的移植方法也一样.

device/samsung/xxx目录是平台相关的目录, 这里主要修改BoardConfig.mk device.mk 和 init.xxx.rc(根据device中的PRODUCT_COPY_FILES 确定) 三个配置文件

在device.mk中的PRODUCT_COPY_FILES条目中添加一下代码

frameworks/base/data/etc/android.hardware.wifi.xml:system/etc/permissions/android.hardware.wifi.xml \

frameworks/base/data/etc/android.hardware.wifi.direct.xml:system/etc/permissions/android.hardware.wifi.direct.xml

PRODUCT_PROPERTY_OVERRIDES := \
wifi.interface=wlan0

在BoardConfig.mk中添加一下代码

  1. #Add for wifi
  2. BOARD_WIFI_VENDOR := realtek
  3. ifeq ($(BOARD_WIFI_VENDOR), ti)
  4. WPA_SUPPLICANT_VERSION := VER_0_8_X
  5. #BOARD_WPA_SUPPLICANT_DRIVER := WEXT #
  6. BOARD_WPA_SUPPLICANT_DRIVER := NL80211 #wifi驱动使用的是NL80211, 这里当然就是NL80211而不是WEXT
  7. BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
  8. BOARD_HOSTAPD_DRIVER        := NL80211 <span style="font-family: Arial, Helvetica, sans-serif;">#wifi驱动使用的是NL80211, 这里当然就是NL80211而不是WEXT</span>
  9. BOARD_HOSTAPD_PRIVATE_LIB   := lib_driver_cmd_rtl
  10. BOARD_WLAN_DEVICE := rtl8192cu
  11. #BOARD_WLAN_DEVICE := rtl8192du
  12. #BOARD_WLAN_DEVICE := rtl8192ce
  13. #BOARD_WLAN_DEVICE := rtl8192de
  14. #BOARD_WLAN_DEVICE := rtl8723as
  15. #BOARD_WLAN_DEVICE := rtl8723au
  16. #BOARD_WLAN_DEVICE := rtl8188es
  17. WIFI_DRIVER_MODULE_NAME   := wlan
  18. WIFI_DRIVER_MODULE_PATH   := "/system/lib/modules/wlan.ko"
  19. WIFI_DRIVER_MODULE_ARG    := ""
  20. WIFI_FIRMWARE_LOADER      := ""
  21. WIFI_DRIVER_FW_PATH_STA   := ""
  22. WIFI_DRIVER_FW_PATH_AP    := ""
  23. WIFI_DRIVER_FW_PATH_P2P   := ""
  24. WIFI_DRIVER_FW_PATH_PARAM := ""
  25. endif

复制代码

在init.xxx.rc中添加一下代码

  1. on post-fs-data
  2. # we will remap this as /mnt/sdcard with the sdcard fuse tool
  3. mkdir /data/media 0775 media_rw media_rw
  4. chown media_rw media_rw /data/media
  5. setprop vold.post_fs_data_done 1
  6. mkdir /data/misc/dhcp 0770 dhcp dhcp
  7. chown dhcp dhcp /data/misc/dhcp
  8. mkdir /data/misc/wifi/sockets 0770 wifi wifi
  9. service wpa_supplicant /system/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf #wifi驱动中是nl80211,这里也一样是nl80211
  10. socket wpa_wlan0 dgram 660 wifi wifi # android private socket
  11. group wifi inet
  12. disabled
  13. oneshot
  14. service dhcpcd_wlan0 /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf wlan0
  15. group system dhcp
  16. disabled
  17. oneshot
  18. service dhcpcd /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf wlan0
  19. group system dhcp
  20. disabled
  21. oneshot

复制代码

WIFI驱动的移植 realtek 8188的更多相关文章

  1. Android wifi驱动的移植 realtek 8188

    Android wifi驱动的移植 一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为 ...

  2. 嵌入式Linux USB WIFI驱动的移植

    硬件平台:飞思卡尔MX258开发板 操作系统:Linux2.6.31 WIFI:    RT2860 USB WIFI模组 交叉编译环境:gcc version 4.1.2 调试步骤: 第一步:测试U ...

  3. android wifi驱动移植详细过程

    转自:http://bbs.imp3.net/thread-10558924-1-1.html 对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了 ...

  4. Android系统如何移植wpa_supplicant及wifi驱动

    一.WPA_SUPPLICANT简介 1. 什么是wpa_supplicant wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, ...

  5. EP-N8530S USB WIFI 驱动移植

    /*********************************************************************** * EP-N8530S USB WIFI 驱动移植 * ...

  6. I.MX6 AW-NB177NF WIFI 驱动移植问题

    /******************************************************************************** * I.MX6 AW-NB177NF ...

  7. Android平台开发-WIFI 驱动移植 -- 详细

    一.WIFI的基本架构(代码路径)     1.WIFI Settings应用程序:       packages/apps/Settings/src/com/android/settings/wif ...

  8. 360随身WiFi驱动下载

    一场不算太好的体验,但还是解决问题了 360随身WiFi驱动下载地址 事情经过: 某天在家里组装起PC,才发现当时没有在这屋里预留网线接口,走明线穿堂过户肯定是不合适的,还是买个无线网卡吧 自然还是要 ...

  9. BCM wifi驱动学习

    BCMwifi驱动学习 一.wifi详解1 1.代码路径:Z:\home\stonechen\svn\TD550_X\TD550\3rdparty\wifi\BCM43362\special\bcmd ...

随机推荐

  1. H5学习小结——div+css创建电子商务静态网页

    使用Sublime Text软件编写电子商务类网站静态形式首页 经过差不多一星期的学习,基本掌握了div+css的用法之后,开始了实战练习.首先要做的就是要练习一下一般电子商务网页的编写,我做的是下图 ...

  2. centos安装php

    1.安装phpyum install php php-devel重启apache使php生效 2.此时可以在目录:/var/www/html/下建立一个PHP文件代码:<?php phpinfo ...

  3. bzoj3732: Network--kruskal最小生成树+LCA

    这是一道写起来比较顺手的题目 没有各种奇怪的细节,基本就是Kruskal和倍增LCA的模板.. 题目大意:对于一个无向带权图,询问两点之间一条路,使得这条路上的最长边最小,输出最小最长边的的值 那么既 ...

  4. php课程---数组建立表单

    <?php $nation = array( array('n001','汉族'), array('n002','汉族'), array('n003','满族'), array('n004',' ...

  5. Handler的总结

    Handler的总结 我们创建的Service.Activity,Broadcast均是一个主线程处理,即UI线程, 但是进行耗时操作时,比如I/O读写的大文件,数据库操作及网络下载需要很长的时间,为 ...

  6. IOS第18天(3,CALayer隐式动画)

    ******隐式动画(手指拖拽Layer) #import "HMViewController.h" @interface HMViewController () @propert ...

  7. 一道打印M的面试题

    public class Demo { /** * 平面图形题(二维数组) */ public static void main(String[] args) { int num = 25; int ...

  8. iOS开发_统计xcode代码行数

    如果要统计ios开发代码,包括头文件的,终端命令进入项目目录下,命令如下 find . -name "*.m" -or -name "*.h" -or -nam ...

  9. lag 和 lead

    TableA如下: TableA id name 1000 A 1001 B 1002 C 1003 D 1004 E 说明: lag 和lead 有三个参数,第一个参数是列名,第二个参数是偏移的of ...

  10. 随手记一次利用开源zxing生成带嵌入logo的二维码图片

    之前就在项目里面用过zxing生成二维码,最近另一个项目同样需要用到二维码,故重新在学了学利用zxing生成二维码 接下来先做准备工作了,因为我是用vs2013上开发的,故选择了.net4.5版本的z ...