zoukankan      html  css  js  c++  java
  • 使用rtl8192du安装无线驱动步骤

    *************一、直接操作法**********

    步骤:1、去Realtek官网下载无线网卡驱动
    下载地址:点击这里
    2、驱动在压缩包中的driver目录(也是一个压缩包),将其解压到/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless下
    3、将无线网卡驱动目录下Kconfig中的信息拷贝到上一级目录的Kconfig末尾
    4、修改/opt/EmbedSky/linux-2.6.30.4/drivers/net/wireless目录下的Makefile:在最后加上
    obj-$(CONFIG_RTL8192CU) += rtl8188C_8192C/            (这个是驱动的相对路径)
    5、 配置内核
    跳转到内核的目录 cd /opt/EmbedSky/linux-2.6.30.4
    执行 make menuconfig
    进入Device Drivers  --->
    [*] Network device support  --->
    Wireless LAN  --->
    将这一项打上信号:<*> Realtek 8192C USB WiFi
    保存
    6、修改/opt/EmbedSky/linux-2.6.30.4Makefile,

    ARCH=arm

    CROSS_COMPILE = arm-linux-

    7、在/opt/EmbedSky/linux-2.6.30.4driveri2cusses/i2c-piix4.c

    添加 #include <linux/slab.h>

    8、make zImage
    去喝杯茶吧……
    内核编译好了,烧进板子试试吧!

    但是我实际操作时遇到很多问题,虽然得到了zImage但是出现下面情况:

    make ARCH=arm; make ARCH=arm uImage

    .......

    WARNING: modpost: Found 1 section mismatch(es).
    To see full details build your kernel with:
    'make CONFIG_DEBUG_SECTION_MISMATCH=y'

    【解决过程】

    1。至今未找到根本原因是啥。去掉那个rtc驱动,再编译,就是正常的,加上它,编译就出现上述警告。

    2.这里:

     

    说,在make的时候,加上参数CONFIG_DEBUG_SECTION_MISMATCH=y',然后应该可以看到具体错在哪里,是哪里mismatch了。

    自己去试了下:

    make ARCH=arm CONFIG_DEBUG_SECTION_MISMATCH=y

    然后,导致整个kernel都要重新编译。。。漫长的等待啊。。。。

    最后编译过程中,输出了对应的错误原因:

    LD      drivers/rtc/built-in.o
    WARNING: drivers/rtc/built-in.o(.data+0xe4): Section mismatch in reference from the variable as353x_rtc to the function .devexit.text:as353x_rtc_remove()
    The variable as353x_rtc references
    the function __devexit as353x_rtc_remove()
    If the reference is valid then annotate the
    variable with __exit* (see linux/init.h) or name the variable:
    *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

    去看了下代码,具体涉及的代码为:

    static int __devexit as353x_rtc_remove(struct platform_device *pdev)
    {
    。。。
    }

    static struct platform_driver as353x_rtc ={
    .probe = as353x_rtc_probe,
    .remove = __devexit_p(as353x_rtc_remove),
    .driver = {
       .name ="as353x-rtc",
       .owner = THIS_MODULE,
    },
    };
    意思就是,一个正常的变量as353x_rtc,去引用了as353x_rtc_remove函数,而这个函数是前面加了__devexit 修饰,即此驱动模块卸载的时候,就释放其内存占用,就不存在的函数,因此觉得mismatch,不匹配,其建议我们应该在这个变量as353x_rtc前面加上对应的修饰,比如__exit。

    __devexit可以换成__devinit 这是一个办法去解决

    ***************二、就是把驱动做成 .ko 文件 开机自动insmod上去****************

    这篇我将介绍怎么配置开发板连上无线网,闲话少说,开始!

    开发板:tiny2416

    内核版本:linux-3.6

    编译器版本:4.3.3

    使用无线网卡芯片:rtl8192du

    官网上下载一个rtl8192du驱动包,解压后参考文档Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf

    步骤如下:

    1,进入rtl8192DU_linux_v4.0.2_9377.20131025_beta目录下的Makefile,并了解框架

    2,修改CONFIG_PLATFORM_I386_PC = n,添加CONFIG_PLATFORM_NEW_ARM = y

    3,在合适的位置添加:

     ifeq ($(CONFIG_PLATFORM_NEW_ARM), y)                                                                                   

     EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN //支持小端

     ARCH := arm //平台

     CROSS_COMPILE := /home/guo/High-speed_Project/Tools/bin/arm-xilinx-linux-gnueabi- 

    //编译器路径

     KVER  := 3.6.0     //内核版本

     KSRC ?= /home/guo/High-speed_Project/kernel/linux-digilent-master   //内核路径

     endif

    4:保存退出,make ,生成8192du.ko。

    5.注意了,友善提供的内核不支持socket。DHCP必需要支持SOCKET的内核,因此重新编译内核,选择支持SOCKET ,编译后下载到板子即可。

    cp config_mini6410_n43 .config

    make menuconfig

    进入内核配置界面,内核配置中需要做的修改如下:

    添加Packet socket支持

     [*] Networking support  ---> 

            Networking options  --->

                     <*> Packet socket                        

                     [*]   Packet socket: mmapped IO

    添加 socket filter支持

    [*] Networking support  ---> 

            Networking options  --->

                     [*] Network packet filtering framework (Netfilter)  --->

                             --- Network packet filtering framework (Netfilter)               

                               [ ]   Network packet filtering debugging (NEW)                   

                                [*]   Advanced netfilter configuration (NEW)                    

                          Core Netfilter Configuration  --->                          

                               < >   IP virtual server support (NEW)  --->                       

                                IP: Netfilter Configuration  --->  

      

    Device Drivers  --->

    [*] Network device support  ---> 

     [*]   Wireless LAN  ---> 

    <*>   IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)

    [*]     Support downloading firmware images with Host AP driver

    6.防火墙内核配置参考  http://blog.csdn.net/hanzengyi/article/details/5991917   http://www.veryarm.com/568.html

    7.make zImage

    (可以使用

    insmod 8192du.ko

    ifconfig wlan0 up

    start-wifi wpa2 用户名 密码

    )

    或者如下

    1. 启用USB WIFI网上:

    ifconfig wlan0 up

    2、手动设置USB WIFI的IP    

    ifconfig wlan0 192.168.1.234 netmask 255.255.255.0

    此处的IP要根据所要连接的AP的设置进行网段的指定。

    3、在开发板的/tmp目录中为连接创建配置脚本wpa_supplicant.conf,参考内容如下:

    wep加密方式:

            ctrl_interface=/var/run/wpa_supplicant
            network={
            ssid="liuyan"    (连接的无线网SSID)
            key_mgmt=NONE     
            wep_key0="56789"    (无线网密码)
            wep_tx_keyidx=0
            priority=5
            auth_alg=SHARED
            }

    wpa-psk加密方式:

    ctrl_interface=/var/run/wpa_supplicant
    network={
                    ssid="max"    //填写无线网络的的用户名
                    key_mgmt=WPA-PSK
                    proto=WPA
                    pairwise=TKIP
                    group=TKIP
                    psk="1234567890" //填写密码
    }

    4、使用wpa_supplicant启动连接:

            wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa_supplicant.conf -B

    5、等待一下就会链接成功,测试

            ping 192.168.1.1

    本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2013-08/88542.htm

  • 相关阅读:
    (转) dedecms中自定义数据模型
    (转)dedecms网页模板编写
    (转)dedecms入门
    (转)浅谈dedecms模板引擎工作原理及自定义标签
    (转)PHP数组的总结(很全面啊)
    (转)echo和print的区别
    (转)dedecms代码详解 很全面
    (转)php 函数名称前的@有什么作用
    (转)PHP正则表达式的快速学习方法
    GIS中mybatis_CMEU的配置方法
  • 原文地址:https://www.cnblogs.com/zhangerxiaoma/p/4685095.html
Copyright © 2011-2022 走看看