#DO-IT

重复就是罪恶
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

       最近在hq CQ45-307TX的机型上安装Ubuntu13.04-amd64的系统后,发现笔记本自带的无线网卡无法正常使用,笔记本无法使用无线,岂不是头疼至极!首先初步断定应该是Ubuntu自带驱动不太匹配该机型上的无线网卡,于是准备更换驱动。

       首先想直接上hp官网下载驱动For Linux,但hp官网暂不提供对Linux系统的支持,也就只能查明笔记本无线网卡供应商及型号,再下载对应版本驱动,编译安装

   一 查询无线网卡型号

       习惯了windows下的驱动人生来一键安装驱动,在Ubuntu下便有些手足无措,在Linux该如何查询硬件配置信息呢,一开始也想过安装类似windows下的驱动人生之类的软件,但后来发现根本不必,Linux下的Terminal就可以直接解决了(神奇的Terminal)

$ sudo lshw -C network

其中:lshw命令用来显示系统硬件信息,network说明显示网卡信息,-C说明显示详细内容

得到如下信息:


从中读取信息如下:

                   product: BCM4312 802.11b/g LP-PHY
                   vendor: Broadcom Corporation

或者用

$ lspci -vnn |grep 14e4 
得到如下信息:

                   04:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)

     二 编译驱动

上Broadcom官网下载驱动(http://www.broadcom.com/support/802.11/linux_sta.php) hybrid-portsrc_x86_64-v5_100_82_112.tar.gz

解压缩编译安装:

$ mkdir BCM4312
$ tar xvf hybrid-portsrc_x86_64-v5_100_82_112.tar.gz
$ make
编译出错,错误信息如下:


解决办法如下:

       1.修改wl_linux.c文件如下:

$ vi /home/vic/Downloads/src/wl/sys/wl_linux.c
//#include<asm/system.h>
       2.将wl_linux.c文件中的所有变量ndo_set_multicast_list 替换成ndo_set_rx_mode

编译完成后生成wl.ko

     三 安装驱动

删去系统不兼容无线网卡驱动

# lsmod  | grep "b43\|ssb\|bcma\|wl"

//如果存在下面的驱动,必须手动删除他们,否则就不用执行下面的命令
# rmmod b43
# rmmod ssb
# rmmod bcma
# rmmod wl

//设置开机启动不加载不兼容驱动模块ssb,bcma,b43
//blacklist.conf设置modprobe不加载的模块
# echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
# echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf

安装已编译好驱动模块wl.ko

modprobe lib80211 
insmod wl.ko
开机启动:
echo modeprobe wl >> /etc/rc.local
至此,大功告成!