LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4321|回复: 2

请问NetGear WG111v2(RealTek 8187芯片组)如何正常驱动?(已解决)

[复制链接]
发表于 2007-5-28 09:32:54 | 显示全部楼层 |阅读模式
我用NDISWrapper把Win的驱动抓下来系统可以识别Wlan0了,但是用wpa_supplicant和wireless-tools都无法连通,dhclient wlan0也找不到dhcp地址,在Windows XP下一切正常。
另:我没有有线网络,wpa_supplicant和wireless-tools都是自己下的源码包编译的。

[color="Red"]解决方法
------------------------------------------
原文链接:
http://www.aircrack-ng.org/doku.php?id=r8187&DokuWiki=99fe10502c9a3eb3ed795a490a4b86c4

说明:
  • 从RealTek官网上下的驱动在高版本的内核上编译会有问题,需要一个patch来修正。并且即使在修正以后仍然会碰到许多问题,我稍微总结一下好了:
    • 在编译内核的时候需要注意的:
      http://gentoo-wiki.com/HARDWARE_rtl8187
      [PHP]Linux Kernel Configuration: Wifi

      Networking --->
        
    • Networking support
        <M> Generic IEEE 802.11 Networking Stack (这里也可以改成不编译)

      Device Drivers --->
        Network device support --->
          Wireless LAN (non-hamradio) --->
            
    • Wireless LAN drivers (non-hamradio) & Wireless Extensions

      Cryptographic options --->
        
    • Cryptographic API
        <*>ARC4 cipher algorithm
        Library routines
          ---CRC32 functions
      [/PHP]
    • 下载RTL8187L的驱动
      驱动[url=http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&Nid=24&Fid=1&Level=6&Conn=5&DownTypeID=3&GetDown=false]http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&Nid=24&Fid=1&Level=6&Conn=5&DownTypeID=3&GetDown=false[/url]
      [PHP]wget ftp://202.65.194.18/cn/wlan/rtl8187_linux_26.1010.zip
      wget ftp://220.228.150.22/cn/wlan/rtl8187_linux_26.1010.zip
      wget ftp://61.56.86.122/cn/wlan/rtl8187_linux_26.1010.zip[/PHP]
      补丁[PHP]unzip rtl8187_linux_26.1010.zip
      cd rtl8187_linux_26.1010.0622.2006/
      wget http://patches.aircrack-ng.org/rtl8187_2.6.20v3.patch
      tar xzf drv.tar.gz
      tar xzf stack.tar.gz
      patch -Np1 -i rtl8187_2.6.20v3.patch
      sh makedrvbk
      sh wlan0up[/PHP]

    有一个名字是“wlan0rmv”的脚本内容有误,应该像这样:
    [PHP] #!/bin/bash

    rmmod r8187
    rmmod ieee80211_rtl
    rmmod ieee80211_crypt_ccmp_rtl
    rmmod ieee80211_crypt_tkip_rtl
    rmmod ieee80211_crypt_wep_rtl
    rmmod ieee80211_crypt_rtl
    [/PHP]
    如果在ifwlan0up的时候失败,检查一下ieee80211 stack是否以模块方式编译而不是编译进内核。
    然后再敲入:
    [PHP]
    iwpriv wlan0 rawtx 1
    [/PHP]
    会启动防入侵功能。

    问题1:wlan0 设备没有找到
    答案: 用lsusb看看USB网卡是否连接上并被系统识别。有一些设备会用wlan1,wlan2,或者其它设备名称。

    问题2: 驱动模块装载错误
    [PHP]
    insmod: error inserting 'ieee80211_crypt-rtl.ko': -1 Invalid module format\\
    insmod: error inserting 'ieee80211_crypt_wep-rtl.ko': -1 Unknown symbol in module\\
    insmod: error inserting 'ieee80211_crypt_tkip-rtl.ko': -1 Unknown symbol in module\\
    insmod: error inserting 'ieee80211_crypt_ccmp-rtl.ko': -1 Unknown symbol in module\\
    insmod: error inserting 'ieee80211-rtl.ko': -1 Unknown symbol in module\\
    insmod: error inserting 'r8187.ko': -1 Unknown symbol in module\\
    [/PHP]
    答案:
    [PHP]
    cd beta-8187
    rm -f Modules.symvers
    ln -s ../ieee80211/Modules.symvers Modules.symvers
    ### NOTE versions of GCC may require this instead: ln -s ../ieee80211/Module.symvers Module.symvers
    cd ..
    sh makedrv
    [/PHP]

    问题3: 文件或者目录不存在
    [PHP]
    make: *** /lib/modules/2.6.15-28-386/build: No such file or directory.
    #Plus other references to "No such file or directory."\\
    [/PHP]
    答案: 下载相应的软件
    [PHP]
    wget http://download.aircrack-ng.org/aircrack-ng-0.9.tar.gz
    tar -zxvf aircrack-ng-0.9.tar.gz
    cd aircrack-ng-0.9
    make
    make install
    [/PHP]

    问题4: "linux/config.h no such file or directory..." 类似的编译错误
    答案: [PHP]touch /usr/src/linux/include/linux/config.h[/PHP]

    问题5: "passed 3 arguments, but takes just 2..." 编译警告
    [PHP]
    /root/rtl8187_linux_26.1025.0328.2007/ieee80211/ieee80211_softmac.c:2168:78: error: macro "INIT_WORK" passed 3 arguments, but takes just 2
    /root/rtl8187_linux_26.1025.0328.2007/ieee80211/ieee80211_softmac.c: In function ‘ieee80211_softmac_init’:
    /root/rtl8187_linux_26.1025.0328.2007/ieee80211/ieee80211_softmac.c:2168: error: ‘INIT_WORK’ undeclared (first use in this function)

    /root/rtl8187_linux_26.1025.0328.2007/rtl8187/r8187_core.c:1625:64: error: macro "INIT_WORK" passed 3 arguments, but takes just 2
    /root/rtl8187_linux_26.1025.0328.2007/rtl8187/r8187_core.c: In function ‘rtl8180_init’:
    /root/rtl8187_linux_26.1025.0328.2007/rtl8187/r8187_core.c:1625: error: ‘INIT_WORK’ undeclared (first use in this function)
    [/PHP]

    答案: 这通常是由于你升级过你的内核引起的,你应该删除掉所有的patch文件,下载一个全新的内核直接编译。同时要保证在编译驱动的时候内核版本要和内核源代码头文件版本一致。
发表于 2007-5-28 14:08:59 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-5-29 09:53:46 | 显示全部楼层
找到一个解决方案了,虽然灯依然不能像windows那样闪。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表