WIFI驱动的移植 realtek 8188
一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去.
wifi驱动的移植, 以realtek的8188etv为例
到官网下载相应的驱动, 解压后可以看到其中有很多的文档, 应用工具和不同android版本的驱动源代码.
根据自己的android版本选择对应的驱动, 我的是4.0的用的是android_reference_codes_ICS_nl80211目录下的驱动
这个目录下还有一个文档, 跟移植相关的, 一定要好好看啦, 很重要的
进入驱动源代码的根目录, 打开Makefile文件, 修改并添加一下代码
- CONFIG_PLATFORM_I386_PC = n #修改的
- CONFIG_PLATFORM_ARM_S5PV210 = y #添加的
复制代码
- ifeq ($(CONFIG_PLATFORM_ARM_S5PV210), y)
- EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN #-DCONFIG_MINIMAL_MEMORY_USAGE
- EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 #这个很重要的, 不添加的话android下的wpa_supplicant_8不能与驱动正常沟通啦, 也可以在autoconf_rtl8188e_usb_linux.h中修改, 我的是usb接口的wifi模块, sdio接口的是autoconf_rtl8189e_sdio_linux.h
- ARCH ?= arm
- CROSS_COMPILE ?= /opt/s210x/arm-2009q3/bin/arm-none-linux-gnueabi- #交叉编译工具
- KVER:= 3.0.8 #内核版本
- KSRC ?= /opt/x210_ics_rtm_v12/kernel/ #内核根目录
- MODULE_NAME := wlan #模块名
- 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中添加一下代码
- #Add for wifi
- BOARD_WIFI_VENDOR := realtek
- ifeq ($(BOARD_WIFI_VENDOR), ti)
- WPA_SUPPLICANT_VERSION := VER_0_8_X
- #BOARD_WPA_SUPPLICANT_DRIVER := WEXT #
- BOARD_WPA_SUPPLICANT_DRIVER := NL80211 #wifi驱动使用的是NL80211, 这里当然就是NL80211而不是WEXT
- BOARD_WPA_SUPPLICANT_PRIVATE_LIB := lib_driver_cmd_rtl
- BOARD_HOSTAPD_DRIVER := NL80211 <span style="font-family: Arial, Helvetica, sans-serif;">#wifi驱动使用的是NL80211, 这里当然就是NL80211而不是WEXT</span>
- BOARD_HOSTAPD_PRIVATE_LIB := lib_driver_cmd_rtl
- BOARD_WLAN_DEVICE := rtl8192cu
- #BOARD_WLAN_DEVICE := rtl8192du
- #BOARD_WLAN_DEVICE := rtl8192ce
- #BOARD_WLAN_DEVICE := rtl8192de
- #BOARD_WLAN_DEVICE := rtl8723as
- #BOARD_WLAN_DEVICE := rtl8723au
- #BOARD_WLAN_DEVICE := rtl8188es
- WIFI_DRIVER_MODULE_NAME := wlan
- WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wlan.ko"
- WIFI_DRIVER_MODULE_ARG := ""
- WIFI_FIRMWARE_LOADER := ""
- WIFI_DRIVER_FW_PATH_STA := ""
- WIFI_DRIVER_FW_PATH_AP := ""
- WIFI_DRIVER_FW_PATH_P2P := ""
- WIFI_DRIVER_FW_PATH_PARAM := ""
- endif
复制代码
在init.xxx.rc中添加一下代码
- on post-fs-data
- # we will remap this as /mnt/sdcard with the sdcard fuse tool
- mkdir /data/media 0775 media_rw media_rw
- chown media_rw media_rw /data/media
- setprop vold.post_fs_data_done 1
- mkdir /data/misc/dhcp 0770 dhcp dhcp
- chown dhcp dhcp /data/misc/dhcp
- mkdir /data/misc/wifi/sockets 0770 wifi wifi
- service wpa_supplicant /system/bin/wpa_supplicant -Dnl80211 -iwlan0 -c/system/etc/wifi/wpa_supplicant.conf #wifi驱动中是nl80211,这里也一样是nl80211
- socket wpa_wlan0 dgram 660 wifi wifi # android private socket
- group wifi inet
- disabled
- oneshot
- service dhcpcd_wlan0 /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf wlan0
- group system dhcp
- disabled
- oneshot
- service dhcpcd /system/bin/dhcpcd -d -f /system/etc/dhcpcd/dhcpcd.conf wlan0
- group system dhcp
- disabled
- oneshot
复制代码
WIFI驱动的移植 realtek 8188的更多相关文章
- Android wifi驱动的移植 realtek 8188
Android wifi驱动的移植 一般我们拿到的android源代码中wifi应用层部分是好的, 主要是wifi芯片的驱动要移植并添加进去. wifi驱动的移植, 以realtek的8188etv为 ...
- 嵌入式Linux USB WIFI驱动的移植
硬件平台:飞思卡尔MX258开发板 操作系统:Linux2.6.31 WIFI: RT2860 USB WIFI模组 交叉编译环境:gcc version 4.1.2 调试步骤: 第一步:测试U ...
- android wifi驱动移植详细过程
转自:http://bbs.imp3.net/thread-10558924-1-1.html 对于刚入手android没多久的人来说,android wifi 驱动的移植确实还是有难度的,不过参考了 ...
- Android系统如何移植wpa_supplicant及wifi驱动
一.WPA_SUPPLICANT简介 1. 什么是wpa_supplicant wpa_supplicant is a WPA Supplicant for Linux, BSD, Mac OS X, ...
- EP-N8530S USB WIFI 驱动移植
/*********************************************************************** * EP-N8530S USB WIFI 驱动移植 * ...
- I.MX6 AW-NB177NF WIFI 驱动移植问题
/******************************************************************************** * I.MX6 AW-NB177NF ...
- Android平台开发-WIFI 驱动移植 -- 详细
一.WIFI的基本架构(代码路径) 1.WIFI Settings应用程序: packages/apps/Settings/src/com/android/settings/wif ...
- 360随身WiFi驱动下载
一场不算太好的体验,但还是解决问题了 360随身WiFi驱动下载地址 事情经过: 某天在家里组装起PC,才发现当时没有在这屋里预留网线接口,走明线穿堂过户肯定是不合适的,还是买个无线网卡吧 自然还是要 ...
- BCM wifi驱动学习
BCMwifi驱动学习 一.wifi详解1 1.代码路径:Z:\home\stonechen\svn\TD550_X\TD550\3rdparty\wifi\BCM43362\special\bcmd ...
随机推荐
- HDU1058 DP
Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- windows安装django
Window 下安装 Django 如果你还未安装Python环境需要先下载Python安装包. 1.Python 下载地址:https://www.python.org/downloads/ 2.D ...
- Web前端开发基础 第四课(CSS小技巧1)
垂直居中-父元素高度确定的单行文本 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的.如下代码: <div class=&q ...
- 【转载】区间信息的维护与查询(一)——二叉索引树(Fenwick树、树状数组)
在网上找到一篇非常不错的树状数组的博客,拿来转载,原文地址. 树状数组 最新看了一下区间的查询与修改的知识,最主要看到的是树状数组(BIT),以前感觉好高大上的东西,其实也不过就这么简单而已. 我们有 ...
- 【Composer】实战操作二:自己创建composer包并提交
大纲 创建自己的composer库 提交到指定平台 测试安装自己的库 设置composer平台自动更新 如何方便测试自己开发的库 开始动手 创建自己的composer库 个人博客后台有一部分是关于统计 ...
- rabbitmq之消息转储vm_memory_high_watermark_paging
rabbitmq为了预防内存达到上限,会在内存使用到了一定比例后,将消息转储到磁盘去.
- 3D touch的 使用心得
一.设置图标touch 快捷进入 1.静态标签 静态标签是我们在项目的配置plist文件中配置的标签,在用户安装程序后就可以使用,并且排序会在动态标签的前面. 我们先来看静态标签的配置: 首先,在in ...
- Java工具
1. Groovy shell 可以在Java代码里执行脚本,可以将Java方法配置在文件里 依赖 <dependency> <groupId>org.codehaus.gro ...
- zepto源码--核心方法(类数组相关)--学习笔记
从这篇起,在没有介绍到各类插件之前,后面将陆续介绍zepto对外暴露的核心方法.即$.fn={}里面的所有方法的介绍.会配合zepto的API进行介绍. 其实前面已经介绍了几个,如width,heig ...
- C# 消息队列
阅读目录 1. 消息队列是什么? 2. 常见的消息队列框架有哪些? 3. MSMQ介绍 4. RabbitMQ介绍 消息队列是什么 简单的理解就是将消息添加一个队列中,使用时在从这个队列中取出来.那么 ...