• ubuntu 安装dell无线网卡2


    以下转自:http://blog.sina.com.cn/s/blog_73b6331101016haq.html

    ubuntu 12.04 bcm43xx无线网卡安装记录

    (2012-07-01 01:52:41)
    标签:

    linux

    ubuntu

    bcm43xx

    driver

    杂谈

    分类: PC
    本人本子型号为HP envy 4 1006TX 无线网卡为bcm4313 其实 ubuntu 12.04的内核是有这个型号的无线网卡的驱动 但是这个版本驱动 信号实在有点说不过去 于是想着办法换一个版本
     
    最先尝试的是ubuntu apt source的bcmwl-kernel-source,这个版本的信号还是不错的但仅限于12.04的,驱动版本为5.100.82.38的。
    安装方法:
    sudo apt-get install bcmwl-kernel-source
    sudo vi /etc/modprobe.d/blacklist.conf
    末尾加入以下语句:
    blacklist b43
    blacklist ssb
    blacklist brcmsmac
    保存文件后,重启。
     
    很简单,驱动性能也还不错,适合新手使用,但是喜欢折腾的人就继续往下看吧。
     
    本着自己爱折腾的思想,对驱动追新的理念还是很强的,于是上了broadcom的官网:
    64-bit driver 5.100.82.112  10/25/2011 
    最新的驱动明显要比apt source的要新,经过测试性能也好于前者。
     
    首先针对自己的OS是32bit还是64bit下载对应的驱动,下载好后开始解压准备编译:
    mkdir bcm43xx_x86_64-v5_100_82_112
    tar xzvf hybrid-portsrc_x86_64-v5_100_82_112.tar.gz -C bcm43xx_x86_64-v5_100_82_112
    cd bcm43xx_x86_64-v5_100_82_112
    make
    竟然出现以下错误:
    Using Wireless Extension API
      LD      /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/built-in.o
      CC [M]  /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/shared/linux_osl.o
      CC [M]  /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.o
    /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: error: unknown field ‘ndo_set_multicast_list’ specified in initializer
    /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: warning: initialization from incompatible pointer type [enabled by default]
    /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: warning: (near initialization for ‘wl_netdev_ops.ndo_validate_addr’) [enabled by default]
    make[2]: *** [/home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.o] Error 1
    make[1]: *** [_module_/home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-26-generic'
    make: *** [all] Error 2
     
    好吧关键是src/wl/sys/wl_linux.c的388行
     
    vi src/wl/sys/wl_linux.c +388
     
    代码如下:
    .ndo_set_multicast_list = wl_set_multicast_list,
     
    查看内核源码struct net_device_ops的确没有这个接口了,看来这个驱动是2.6的内核的版本,指望官方是没有希望了,自己动手吧。
     
    看了一下bcmwl-kernel-source的patch,它使用的是.ndo_set_rx_mode替换的,那我们也用这个替换:
    vi src/wl/sys/wl_linux.c +388
    将源文件改为以下(ps:这里偷个懒就不对内核版本进行判断了):
    #if 0
            .ndo_set_multicast_list = wl_set_multicast_list,
    #else
            .ndo_set_rx_mode = wl_set_multicast_list,
    #endif
    修改好后保存,继续编译:
    make
    这次编译顺利通过,生成了wl.ko。
    sudo make install
    sudo rmmod brcmsmac
    sudo rmmod brcmutil
    sudo depmod
    sudo modprobe wl
    sudo ifconfig eth1 up
    ok,无线网卡正常运行,信号明显要比bcmwl-kernel-source要好一些。
     
    禁用内核驱动:
    sudo vi /etc/modprobe.d/blacklist.conf
    末尾加入以下语句:
    blacklist b43
    blacklist ssb
    blacklist brcmsmac
    保存文件后,重启。
     
    问题出来了,wl加载了,但是竟然不能正常驱动无线网卡,为什么重启之前可用呢,复现重启之前的环境:
    sudo rmmod wl
    sudo modprobe brcmsmac
    sudo rmmod brcmsmac
    sudo rmmod brcmutil
    sudo modprobe wl
    神奇,居然又工作了,看来还要依赖brcmsmac才行,不完美,继续折腾!
     
    方法1:
    修改启动脚本:
    sudo vi /etc/init.d/rc
    在文本末尾炸到exit 0关键字后,按照如下修改:
    rmmod wl
    modprobe brcmsmac
    rmmod brcmsmac
    rmmod brcmutil
    modprobe wl
     
    trap - EXIT # Disable emergency handler
     
    exit 0
    保存,重启,ok,驱动正常,但是启动过程中,本子的无线指示灯会出现1秒的循环闪烁,还不是最优解,继续折腾!
     
    方法2:
    既然bcmwl-kernel-source可以不依赖brcmsmac直接驱动设备,那么为什么自己编译的不行呢。
    继续分析他的deb,没有发现任何不一样,只是他的驱动安装路径不同,难道这也有差,继续偷懒:
    sudo apt-get install bcmwl-kernel-source
    然后将咱们编译的wl.ko替换掉bcmwl-kernel-source的:
    sudo mv /lib/modules/`uname -r`/updates/dkms/wl.ko /lib/modules/`uname -r`/updates/dkms/wl.ko.old
    sudo cp ./wl.ko /lib/modules/`uname -r`/updates/dkms/wl.ko
    继续禁用kernel的驱动:
    sudo vi /etc/modprobe.d/blacklist.conf
    末尾加入以下语句:
    blacklist b43
    blacklist ssb
    blacklist brcmsmac
    保存文件后,重启。
     
    至此,一切正常,换了驱动后信号只是好的一B,比windows的驱动还要稳定,折腾成功:P
  • 相关阅读:
    COGS2355 【HZOI2015】 有标号的DAG计数 II
    COGS2353 【HZOI2015】有标号的DAG计数 I
    COGS2259 异化多肽
    二项式定理
    Codeforces 528D Fuzzy Search
    技术文章阅读-华为WS331a产品管理页面存在CSRF漏洞
    技术文章阅读-天翼创维awifi路由器存在多处未授权访问漏洞
    技术文章阅读-红蓝对抗系列之浅谈蓝队反制红队的手法一二
    技术文章阅读-Solr ReplicationHandler漏洞浅析
    技术文章阅读-记一次edu站点从敏感信息泄露到getshell
  • 原文地址:https://www.cnblogs.com/jzxsunisland/p/4146493.html
Copyright © 2020-2023  润新知