解决了一个linux上的无线驱动问题
我的笔记本装的是 Ubuntu 12.04 ,大概有一年多的时间,不定期出现连wifi时失败的情况,一般这时我就重启一下路由,通常再试一次就能连上了,加上自己也比较懒,所以一直没太关注这个问题。但是最近是彻底连不上了,不解决不行了。
先查了一下硬件情况,无线网卡是可以看到的。
fanyuchao@dell-desktop:~$ lshw -C network WARNING: you should run this program as super-user. *-network description: Wireless interface product: BCM4313 802.11b/g/n Wireless LAN Controller vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:02:00.0 logical name: wlan0 version: 01 serial: 1c:65:9d:2d:6a:a7 width: 64 bits clock: 33MHz capabilities: bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=brcmsmac driverversion=3.2.0-27-generic firmware=N/A ip=192.168.1.105 latency=0 multicast=yes wireless=IEEE 802.11bgn resources: irq:17 memory:95500000-95503fff
再查一下,当前驱动的版本,用“系统设置” -> "附加驱动 " ,发现目前的驱动是支持 Broadcom 46XX系列的。
而用lspci命令看,实际的网卡是BCM5761e,初步判断是驱动版本不对了。
fanyuchao@dell-desktop:~$ lspci -vnn |grep 14e4 02:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01) 0b:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5761e Gigabit Ethernet PCIe [14e4:1680] (rev 10) fanyuchao@dell-desktop:~
按照这个思路,只要更换一下网卡驱动就应该可以了。
首先,从“附加驱动”里卸载了老的驱动,再从broadcom官网上下载对应 的驱动。
http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php,linux的只有一个tg3源码,那就下源码了。
本地解压后,如下显示
fanyuchao@dell-desktop:~/MyDownloads/Server/Linux/Driver/tg3-3.124c$ ls ChangeLog Makefile Module.symvers tg3.4.gz tg3_compat.h tg3.g tg3.mod.c tg3_vmware.c esx_ioctl.h makeflags.sh README.TXT tg3.c tg3_firmware.h tg3.h tg3.mod.o tg3_vmware.h LICENSE modules.order tg3.4 tg3_compat2.h tg3_flags.h tg3.ko tg3.o fanyuchao@dell-desktop:~/MyDownloads/Server/Linux/Driver/tg3-3.124c$
执行make,编译。
替换原有的模块
sudo rmmod tg3.ko
sudo insmod tg3.ko
最后再执行
make install
这时,驱动已经重新安装完毕,一切OK,问题解决。