为什么要移植?开发板不是已经提供了无线驱动吗?

貌似是这样的。。本来是好用的。加入自己第三方驱动后发现WIFI用不了。。。最后发现飞凌提供的内核里面没有8189芯片的代码。。。问售后他们说那边是好的。这么到我这里就不行了呢?妈蛋。。。郁闷了。。。智能自己动手,把驱动移植进去。。。

1  找8189es芯片的原厂驱动代码:这里我找了N久,传到网盘里。。。

http://pan.baidu.com/s/1bn7Gz6n

2 解压拷贝

tar jxvf rtl8288EUS_rtl8189ES_linux_v4.1.8_9499.20131104.tar.tgz

修改文件夹名字:8189ES

拷贝:cp  -rf 8189ES   /opt/linux-3.0.1/driver/net/wireless/

3 修改配置,打包进内核。

代码默认是USB接口的。。。必须改成SDIO

修改文件:8189ES/Makefile

CONFIG_USB_HCI = n

CONFIG_SDIO_HCI = y
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_S3C6K4 = y
ifeq ($(CONFIG_PLATFORM_ARM_S3C6K4), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
KVER  := 3.0.1
KSRC ?= /opt/linux-3.0.1
endif

修改8189ES/Kconfig ,为了能打包进kernel

config SDIO_HCI
tristate "sdio hci default y"
depends on USB
---help---
Help message of sdio hci

在/opt/linux-3.0.1/driver/net/wireless/Kconfig插入代码

source "drivers/net/wireless/8189ES/Kconfig"

在/opt/linux-3.0.1/driver/net/wireless/Makefile插入代码

obj-$(CONFIG_SDIO_HCI)        += 8189ES/

4 修改驱动部分代码:

.修改内核驱动文件,./drivers/net/wireless/rtl8189es/include/autoconf.h
4.1)去掉usb相关配置

#define CONFIG_USB_HCI
改成:
//#define CONFIG_USB_HCI
4.2)去掉usb发送接收相关配置

#ifndef CONFIG_MINIMAL_MEMORY_USAGE
#define CONFIG_USB_TX_AGGREGATION
#define CONFIG_USB_RX_AGGREGATION
#endif
改成:
/*#ifndef CONFIG_MINIMAL_MEMORY_USAGE
#define CONFIG_USB_TX_AGGREGATION
#define CONFIG_USB_RX_AGGREGATION
#endif*/
4.3)去掉wifi关断检测相关配置

#define SUPPORT_HW_RFOFF_DETECTED
改成:
// #define SUPPORT_HW_RFOFF_DETECTED
5.修改内核驱动文件,添加头文件包含:
5.1)修改./drivers/net/wireless/rtl8189es/hal/rtl8188e/sdio/rtl8189es_xmit.c文件,添加:
#include <rtw_xmit.h>
5.2)修改,./drivers/net/wireless/rtl8189es/include/rtw_xmit.h文件,添加:
#include <autoconf.h>
.修改内核驱动文件,添加数组定义./drivers/net/wireless/rtl8189es/os_dep/linux/sdio_intf.c文件
添加:
int ui_pid[] = {, , };

6 cp 8189ES/autoconf_rtl8189e_sdio_linux.h    /opt/linux-3.0.1

7编译后wifi正常工作。。。

但只要操作IO口,WIFI启动就会失败。。

最后看原理图发现SDIO与GPIO都用了GPP10,GP11

把 这2口去了。。完事大吉

  

飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植的更多相关文章

  1. 移植Mplayer到OK6410开发板

    移植Mplayer到OK6410开发板 作者:vasage 项目需要,需要将Mplayer移植到开发板上,所以今天花了一下下午成功移植,其中参考很多文档,后发现许多文档陈旧,些许文档有少量错误,所以这 ...

  2. [资料分享]迅为iTOP4412开发板-SDIO WiFi移植文档

    本文转自迅为:http://www.topeetboard.com 概述 近期需要把WiFi无线网络功能移植到iTOP-4412 开发平台,查阅了相关资料,经过一段时间的研究.调试,终于成功的将WiF ...

  3. [转载非常好的文章]JLink+GDBServer调试S3C6410裸板的初始化代码 For OK6410开发板

    要调试裸板,有两种初始化方法,一个是用烧好的uboot初始化,再有就是直接用JLink+GDBServer初始化.代码参考了网上的资料,根据手头的OK6410开发板做了修改.整体代码如下: # Con ...

  4. 使用arm开发板搭建无线mesh网络(二)

    上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 ar ...

  5. 使用arm开发板搭建无线mesh网络(一)

    由于项目的需要,老板让我使用arm开发板(友善之臂的tiny6410)搭建无线mesh网络.一般而言,无线自组织网络的网络设备都是由用户的终端设备来充当,这些终端设备既要处理用户的应用数据,比如娱乐, ...

  6. OK6410开发板系统安装---嵌入式回归第二篇

    1. 嵌入式系统须要被安装到开发板的nandflash上 或者 SD卡上 2. 须要安装的嵌入式Linux系统能够分三个部分 watermark/2/text/aHR0cDovL2Jsb2cuY3Nk ...

  7. 基于Neptune开发板的键盘蓝牙模块DIY指南

    目录: 1.下载开发板程序2.安装USB串口(CH340)驱动3.安装烧写工具4.烧写开发板程序 本期我们带来基于润和Neptune开发板(以下简称Neptune开发板)的键盘蓝牙模块DIY指南,利用 ...

  8. 【安富莱】V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔(2019-11-04)

    说明: 1.本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计. 2.本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件 ...

  9. 小白自制Linux开发板 三. Linux内核与文件系统移植

    上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...

随机推荐

  1. <li>高度自适应

    使用ul和li代替表格进行排版的时候,会发现li无法自适应高度. 只需要将li的overflow置为auto就可以了,因为li默认的overflow是visible,会将内部元素显示在li之外.   ...

  2. sql整型字段模糊查询

    select count(*) cnt from vhuiy where CAST(id as text) like'%12%'--id为int类型 更详细的链接:http://www.studyof ...

  3. Apache2.2与php5.17 mysql配置

    php5.217应该用线程安全搬,不然各种无语的Apache打不开,PHPInfo没有Mysql的信息,记得把php.ini放入系统盘Windows目录下,Win764位的libmysql.dll也放 ...

  4. HDU 2276

    http://acm.hdu.edu.cn/showproblem.php?pid=2276 矩阵乘法可以解决的一类灯泡开关问题 /* 转移关系为 now left now* 1 0 1 1 1 0 ...

  5. Day19_IO第一天

    1.异常 1.概念      程序出现不正常的情况 2.异常体系(掌握)      Throwable           |-Error                               ...

  6. 在windows环境下,为什么要用Notepad++编辑?

    摘自廖雪峰的git教程之创建版本库 首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外.版本控制系统可以告诉你每次的改动,比如 ...

  7. iOS开发中检测版本,有新版本则更新

    iOS程序自动提示更新的实现方案大致分为两种: 第一种,自己服务器提供一个接口,告知相关app的当前版本,是否需要更新,以及更新的地址等信息 . 第二种,就是利用苹果的appstore 提供的相关ap ...

  8. 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用

    史上最详细Windows版本搭建安装React Native环境配置   2016/01/29 |  React Native技术文章 |  Sky丶清|  95条评论 |  33530 views ...

  9. 动态添加Marquee标签,并动态赋值与属性

    前台加载js $(function(){ var publishStr="<%=publishText%>" var marqueeStr=" <mar ...

  10. hdu4497 GCD and LCM ——素数分解+计数

    link:http://acm.hdu.edu.cn/showproblem.php?pid=4497 如果G%L != 0,说明一定无解. 把K = G / L质数分解,G / L = p1^t1 ...