zoukankan      html  css  js  c++  java
  • 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

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

    貌似是这样的。。本来是好用的。加入自己第三方驱动后发现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 修改驱动部分代码:

    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>
    6.修改内核驱动文件,添加数组定义./drivers/net/wireless/rtl8189es/os_dep/linux/sdio_intf.c文件
    添加:
    int ui_pid[3] = {0, 0, 0};

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

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

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

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

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

      

  • 相关阅读:
    企业视频会议EasyRTC视频云服务是如何满足不同企业多场景直播的?
    TSINGSEE青犀视频H265网页播放器EasyPlayerPro-Win如何通过配置文件实现自动播放等功能?
    TSINGSEE青犀视频自主研发H265播放器EasyPlayerPro-Win C++如何获取软件版本信息源码
    RTMP视频直播点播平台EasyDSS及企业视频通话会议系统EasyRTC内启动nginx 配置重定向功能介绍
    面向对象程序设计上机练习二(函数模板)
    2014暑假ACM训练总结
    codeforces 之 Little Pigs and Wolves
    SDUT 2766 小明传奇2
    0-1背包的总结
    POJ 2063 Investment (完全背包)
  • 原文地址:https://www.cnblogs.com/sankye/p/4912234.html
Copyright © 2011-2022 走看看