一般我们拿到的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. 好看的css3按钮和文本框

    .button{ width: 80px; line-height: 25px; text-align: center; ; color: #fff; text-shadow:1px 1px 1px ...

  2. HTML - 毛玻璃 滤镜 模糊

    css 秘密花园 http://dabblet.com/gist/d9f243ddd7dbffa341a4 场景,背景图片 + 毛玻璃遮盖 原理:利用background的cover特性,将毛玻璃的区 ...

  3. Server.UrlEncode与Server.UrlDecode(url传递中文的解决方案)

    1.设置web.config文件.<system.web> ...... <globalization requestEncoding="gb2312" resp ...

  4. 手机上的页面转换page slider

    小伙伴们是不是经常在手机上见到“转场"的情况,手机上的页面转换已经不像pc上整体的页面跳转,很多都是利用动画平滑地在页面之间的切换.   那么如何来做页面之间的转换呢?首先要明确的是,所谓的 ...

  5. hgrjhgkjh

    #include<stdio.h> int step[5]={13,5,1,4,11}; int sum; int min=999; void ji() {  int i;  int j; ...

  6. ListView或GridView的Adapter使用Glide加载图片异常

    报错信息为:You must not call setTag() on a view Glide is targeting 原因就是View使用setTag后导致Glide之前请求的标记被清除,强制转 ...

  7. KVC浅析和实例

    KVC 与 KVO 是 Objective C 的关键概念,个人认为必须理解的东西,下面是实例讲解. Key-Value Coding (KVC) KVC,即是指 NSKeyValueCoding,一 ...

  8. node crypto md5加密,并解决中文不相同的问题

    在用crypto模块时碰到了加密中文不相同的问题,多谢群里面@蚂蚁指定 1:解决中文不同的问题 function md5Pay(str) { str = (new Buffer(str)).toStr ...

  9. Web性能API——帮你分析Web前端性能

    前端性能统计必备api,有不知道的吗? 正文从这开始- 开发一个现代化的互联网网站是一项复杂的任务,需要各种职能的密切合作以应对用户日新月异的需求.其中,网页的性能直接决定了用户的体验,而随着新型客户 ...

  10. partition-list

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...