移植过程中得到网友的不少帮助,很感谢!为了让更多的网友不像我这样折腾,特写此文以做参照.过程中主要参考< Realtek_Wi-Fi_SDK_for_Android_KK_4_4.pdf >和< Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf>这两个文档,以及论坛https://community.freescale.com/thread/322825 这篇文章,具体步骤如下:

一.内核修改

1.替换realtek文件夹

”realtek_wifi_SDK_for_android_KK_4.4_20140117.tar.gz” 解压,然后将ANDROID_SDK /hardware/realtek覆盖到源码kernel_imx/hardwar中.

2. BoardConfig.mk

在ANDROID_SDK /device/ fsl/sabresd_6dq/ BoardConfig.mk中,追加如下内容:

BOARD_WIFI_VENDOR := realtek

BOARD_WLAN_VENDOR := REALTEK

ifeq ($(BOARD_WIFI_VENDOR),realtek)

WPA_SUPPLICANT_VERSION :=VER_0_8_X

BOARD_WPA_SUPPLICANT_DRIVER :=NL80211

#CONFIG_DRIVER_WEXT :=y

CONFIG_DRIVER_NL80211 :=true

BOARD_WPA_SUPPLICANT_PRIVATE_LIB:= lib_driver_cmd_rtl

BOARD_HOSTAPD_DRIVER := NL80211

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 := rtl8189es

#BOARD_WLAN_DEVICE := rtl8723bs

#BOARD_WLAN_DEVICE := rtl8723bu

WIFI_DRIVER_MODULE_NAME :="wlan"

WIFI_DRIVER_MODULE_PATH := "/system/lib/modules/wlan.ko"

WIFI_DRIVER_MODULE_ARG :="ifname=wlan0 if2name=p2p0"

WIFI_FIRMWARE_LOADER :=""

WIFI_DRIVER_FW_PATH_STA :=""

WIFI_DRIVER_FW_PATH_AP :=""

WIFI_DRIVER_FW_PATH_P2P :=""

WIFI_DRIVER_FW_PATH_PARAM :=""

Endif

3. init.rc

在ANDROID_SDK /device/ fsl/sabresd_6dq/init.rc中

A.    替换如下wpa_supplican服务

service rtw_suppl_con /system/bin/wpa_supplicant \

-ip2p0 -Dnl80211-c/data/misc/wifi/p2p_supplicant.conf \

-e/data/misc/wifi/entropy.bin -N\

-iwlan0 -Dnl80211-c/data/misc/wifi/wpa_supplicant.conf \

-O/data/misc/wifi/sockets \

-g@android:wpa_wlan0

class main

socket wpa_wlan0 dgram 660 wifiwifi

disabled

oneshot

service rtw_suppl/system/bin/wpa_supplicant \

-iwlan0 -Dnl80211-c/data/misc/wifi/wpa_supplicant.conf \

-O/data/misc/wifi/sockets \

-e/data/misc/wifi/entropy.bin

-g@android:wpa_wlan0

class main

socket wpa_wlan0 dgram 660 wifiwifi

disabled

oneshot

B.    追加DHCPCD服务

service dhcpcd_wlan0 /system/bin/dhcpcd -aABDKL

class main

disabled

oneshot

service dhcpcd_p2p/system/bin/dhcpcd -aABKL

class main

disabled

oneshot

service iprenew_wlan0/system/bin/dhcpcd -n

class main

disabled

oneshot

service iprenew_p2p/system/bin/dhcpcd -n

class main

disabled

oneshot

4. libhardware_legacy

在文件ANDROID_SDK/hardware/libhardware_legacy/wifi/Android.mk 中变更如下语句

ifeq ($(BOARD_WIFI_VENDOR),realtek)

LOCAL_SRC_FILES +=../realtek/wlan/libhardware_legacy/wifi/wifi_realtek.c

else

LOCAL_SRC_FILES += wifi/wifi.c

Endif

5. wpa_supplicant_8

将ANDROID_SDK/external/下wpa_supplicant_8备份一下,然后将驱动包里的wpa_supplicant_8_kk_4.4_rtw名称改为wpa_supplicant_8并替换到ANDROID_SDK/external/

6.imx6_android_defconfig

修改文件kernel_imx/arch/arm/configs/imx6_android_defconfig,将下列项目配置成Y.

CONFIG_CFG80211=y

CONFIG_MAC80211_MESH=y

CONFIG_MAC80211=y

CONFIG_HOSTAP=y

CONFIG_RTL8192CU=y

CONFIG_USB_USBNET=y

7.权限

在out/target/product/sabresd_6dq/root/init.rc中,追加内容如下:

mkdir /system/etc/wifi 0770 wifi wifi

chmod 0770 /system/etc/wifi

chmod 0660 /system/etc/wifi/wpa_supplicant.conf

chown wifi wifi /system/etc/wifi/wpa_supplicant.conf

#wpa_supplicant control socket for android wifi.c (android privatesocket)

mkdir /data/misc/wifi 0770 wifi wifi

mkdir /data/misc/wifi/sockets 0770 wifi wifi

chmod 0770 /data/misc/wifi

chmod 0660 /data/misc/wifi/wpa_supplicant.conf

chown wifi wifi /data/misc/wifi

chown wifi wifi /data/misc/wifi/wpa_supplicant.conf

setprop wifi.interface wlan0

setprop wlan.driver.status"ok"

8.文件夹删除

out/target/product/sabresd_6dq下的system文件夹以及out/target/product/sabresd_6d/obj/EXECUTABLES下wpa_supplicant_intermediates文件夹删除.

完成以上后,编译内核.

二.驱动编译

1.新驱动包4.3.0.9没有make_drv和autoconf_rtl8188e_usb_linux.h,需要从其他的驱动包中拷过来.

2.增加新的平台

CONFIG_PLATFORM_I386_PC = n

CONFIG_PLATFORM_NEW = y

……

ifeq($(CONFIG_PLATFORM_NEW), y)

EXTRA_CFLAGS +=-DCONFIG_LITTLE_ENDIAN

ARCH := arm

CROSS_COMPILE :=/opt/ new/toolchain/arm-eabi-4.4.3/bin/arm-eabi-

KSRC := /opt/new/kernel

MODULE_NAME := wlan

Endif

3. include/autoconf.h和autoconf_rtl8188e_usb_linux.h修改

#define CONFIG_IOCTL_CFG80211

#ifdef CONFIG_IOCTL_CFG80211

#define RTW_USE_CFG80211_STA_EVENT

//#defineCONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER

//#define CONFIG_DEBUG_CFG80211 1

#endif

#define CONFIG_CONCURRENT_MODE

#define CONFIG_P2P_IPS

4.将编译完成内核,将kernel_imx目录下Module.symvers文件到驱动的根目录覆盖之前的文件.

5.编译

A. make_drv

root@rtl8188C_8192C_8192D_usb_linux_v3.3.0_2920.20111123#./make_drv

Please select chip type(1/2):

1) RTL8192cu

2) RTL8192du

#? 1

You have selected RTL8192cu

B.      在驱动根目录下,执行make,然后在目录下产生wlan.ko文件

三.            驱动安装与再编译

1.将产生的wlan.ko文件,复制到out/target/product/sabresd_6dq/system/lib/modules文件夹中。(没有modules文件夹,自己新建)

2.使用make snod命令重新制作system.img

注意事项:

注意要先编译安卓,再去编译8188eus的驱动

明远智睿IMX6Q Android4.4.2移植USBWIFI(RTL8188EUS)的更多相关文章

  1. 明远imx6

    http://pan.baidu.com/s/1ntsrQtF#path=%252FMY-I.MX6%2520V2.5 nkuc tftpboot 0x10800000 uImage.ramdisk ...

  2. c标准库 徐明远 背景基础

    背景基础 1.c语言库用c语言编写   其他语言则不同 早期语言的库是用汇编语言编写的    不同的计算机体系结构有不同的汇编语言   所以在移植性方面差一点   而c语言可以编写出高度可移植性的代码 ...

  3. Android4.0Sd卡移植之使用vold自动挂载sd卡

    在cap631平台上移植android4.0,发现内核驱动没有任何问题,能够读写,当总不能挂载. 后来发现是因为自动挂载需要vold的支持.vold程序负责检查内核的 sysfs 文件系统,发现有SD ...

  4. android4.4内核移植

    01 init/目录下Kconfig修改: 956行添加: config PANIC_TIMEOUT int "Default panic timeout" help Set de ...

  5. UNICODE本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1

    20151031本地编译freescale的i.MX6Q的android4.2.2&android4.4.2 && 全志a80的步骤x1 2015/10/31 15:07 开始 ...

  6. qt5.10.1编译记录

    qt版本更新比较快,不知道选哪个版本合适,故选择一个较新版本的. 平台imx6    +    linux4.1.16   +   qt5.10.1 采用明远智睿提供的编译器:fsl-imx-fb-g ...

  7. LCD屏背光驱动调试心得---血的教训

    开发板:明远智睿MY-IMX6-EK140 内核源码:linux-3.14.52 背光驱动IC:MP3202 调光原理:通过开发板的核心板PWM4引脚控制MP3202的EN脚,输出不同的占空比从而达到 ...

  8. 【转】学习ARM为什么首选IMAX6??

    ARM作为目前嵌入式行业主流的架构,已经让越来越多从事电子行业的朋友了解,并且高校对于嵌入式的学习,很多直接从ARM开始,目前ARM的嵌入式培训也越来越多,足以说明现在嵌入式行业有多火.目前主流的AR ...

  9. QT210 Android4.0源码编译和烧录文档整理

    开发环境说明: Ubuntu 12.04 LTS 32bit 源码文件目录: 勤研光盘2013-5-4\4.0 https://github.com/jackyh (建议在Linux环境下通过git下 ...

随机推荐

  1. [Bzoj1034][ZJOI2008]泡泡堂BNB(贪心)

    Description 题目链接 Solution 这题就是一个贪心, 如果最弱的能赢对方最弱的就赢 否则最强的能赢对面最强的就赢 否则最弱的换对面最强 Code #include <cstdi ...

  2. spark&dataframe

    1.今天,我们来介绍spark以及dataframe的相关的知识点,但是在此之前先说一下对以前的hadoop的一些理解 当我启动hadoop的时候,上面有hdfs的存储结构,由于这个是分布式存储,所以 ...

  3. 实时查询引擎 - Facebook Presto 介绍与应用

    1. Presto 是什么   Facebook presto是什么,继Facebook创建了HIVE神器后的又一以SQL语言作为接口的分布式实时查询引擎,可以对PB级的数据进行快速的交互式查询.它支 ...

  4. node-sass安装不成功的问题

    SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass 简单粗暴的执行上述的命令.

  5. tp事务处理

    数据库事务处理见手册 逻辑事务处理 Model->startTrans(); // 开启事务 if(操作失败) { Model->rollback(); // 回滚 }else { Mod ...

  6. laravel5.5事件广播系统实例laravel-echo + redis + socket.io

    目录 1. 广播配置说明 1.1 广播驱动配置 1.2 注册服务提供器 2. 驱动器配置 2.1 安装predis 2.2. 配置服务端 2.2.1 安装方法 2.2.2 初始化服务端 2.2.3 运 ...

  7. Hyper-V在线调整虚拟硬盘大小

    从Windows Server 2012 R2 开始,可以在线调整虚拟硬盘的大小了,这意味着当虚拟硬盘不够用时,我们在虚拟机运行的情况下直接扩展虚拟硬盘容量了.有人说这个有什么用?当然,实验室情况下, ...

  8. 【Decision Tree】林轩田机器学习技法

    首先沿着上节课的AdaBoost-Stump的思路,介绍了Decision Tree的路数: AdaBoost和Decision Tree都是对弱分类器的组合: 1)AdaBoost是分类的时候,让所 ...

  9. 1004 Counting Leaves (30 分)(树的遍历)

    给出一棵树,问每一层各有多少叶子节点 dfs遍历树 #include<bits/stdc++.h> using namespace std; vector<]; int n,m; i ...

  10. 【PTA】Tree Traversals Again

    题目如下: An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For e ...