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

貌似是这样的。。本来是好用的。加入自己第三方驱动后发现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. bzoj1211: prufer序列 | [HNOI2004]树的计数

    题目大意: 告诉你树上每个节点的度数,让你构建出这样一棵树,问能够构建出树的种树 这里注意数量为0的情况,就是 当 n=1时,节点度数>0 n>1时,所有节点度数相加-n!=n-2 可以通 ...

  2. 微信JS-SDK DEMO页面和示例代码

    <?php require_once "jssdk.php"; $jssdk = new JSSDK("yourAppID", "yourApp ...

  3. juery常用

    1input解除焦点时触发操作 同时给另一个元素赋值 $(document).ready(function(){ $("input[name='url']").change(fun ...

  4. MyJni

    package com.baidu.jnitest; import android.os.Bundle; import android.app.Activity; import android.vie ...

  5. 删除ubuntu旧版本内核

    方法一: 1.查看系统下可使用的内核有哪些 dpkg --get-selectiongs|grep linux-image liming@CM:~$ dpkg --get-selections|gre ...

  6. Python开发入门与实战11-单元测试

    11. 单元测试 本章节我们来讲讲django工程中如何实现单元测试,单元测试如何编写以及在可持续项目中单元测试的重要性. 下面是单元测试的定义: 单元测试是开发者编写的一小段代码,用于检验被测代码的 ...

  7. Android Listview & Adapter

    Listview主要有两个职责: 将数据填充到布局 处理用户的选择点击等操作 列表的显示需要三个元素: ListVeiw 用来展示列表的View 适配器(Adapter) 用来把数据映射到ListVi ...

  8. layoutSubviews总结

    ios layout机制相关方法 - (CGSize)sizeThatFits:(CGSize)size - (void)sizeToFit ——————- - (void)layoutSubview ...

  9. 【LeetCode OJ】Distinct Subsequences

    Problem Link: http://oj.leetcode.com/problems/distinct-subsequences/ A classic problem using Dynamic ...

  10. 实时刷新Winform中Label的Text

    最直白的例子: private void btnStart_Click(object sender, EventArgs e) { ; ) { labelTime.Text = i.ToString( ...