做个记录,以后安的话直接来查
装好系统先lspci大概看下什么设备, lspci显示的是Broadcom的4312系列,又去google确认了一下,4311,找到Broadcom的官方,发现无论那个系列支持的驱动都是一个
从broadcom网站上下驱动:http://zh-cn.broadcom.com/support/802.11/linux_sta.php 最新64位驱动到手:6.30.223.23X
这个网站附带了一个readme的页面,写的很好,基本安装过程中遇到的所有问题都能解答
RHEL7采用的内核是3.10版本,先确认下内核是否支持,发现6.30.223.23x的驱动已经可以支持到3.11的内核了,毫无问题
接下来按照步骤一步步弄
1.mkdir driver
2. cp xxx.6.30.223.23.tar.gz driver
3. tar -xzf xxx.6.30.223.23.tar.gz ---生成 src,lib,和Makefile
4.make clean 我的系统提示:make: *** /lib/modules/"release"/build: No such file or directory. Stop. readme对这个情况做了说明,需要装kernel-devel, 直接 yum install kernel-devel 安装好,再make clean就没有这个提示了
5.make 系统提示没有gcc,这个没什么好说的,直接yum install gcc, 安装好gcc后再make,通过,生成了一堆文件,只需要wl.ko即可
6.按照readme说要确认下系统里是否安装了老版本的驱动,如果有就卸载:
列出相关驱动: lsmod | grep "brcmsmac\|bmca\|b43\|wl\|ssb"
如果有就用rmmod 找到的模块名 移除改模块
7.将这些找到的模块放到黑名单中,防止启动时候自动加载:
echo "blacklist 模块名" >> /etc/modprobe.d/blacklist.conf
8.安装模块前,要加载依赖的模块:lib80211,cfg80211 直接modprobe lib80211 modprobe cfg80211
9.安装模块,很简单insmod wl.ko. 不过第一次试的时候提示不能加载上:unknown symbol in module,这个readme里也有,就是之前的依赖模块没加载导致的,我的情况是没加载cfg80211,加载后,重新insmod wl.ko即可
文中还给出了希望这个驱动在开机时自动加载的方式:
1.cp wl.ko /lib/modules/‘uname -r‘/kernel/drivers/net/wireless 把这个模块拷贝到这个目录中
2.depmod -a 对所有的模块检查下依赖性
3.echo modprobe wl >> /etc/rc.local
这样驱动就能在开机自动加载
参考资料:
http://zh-cn.broadcom.com/docs/linux_sta/README_6.30.223.248.txt