CentOS 7 安装Broadcom无线网卡驱动
时间:2014-07-24 22:12 来源:linux.it.net.cn 作者:it
首先,请确定你是位“拥有 Broadcom BCM43xx 无线网络卡的幸运儿”:
-
/sbin/lspci | grep Broadcom
-
0b:00.0 Network controller: Broadcom Corporation BCM4312 802.11a/b/g (rev 01)
安装需要的组件:
-
sudo yum install kernel-headers kernel-devel gcc
接着到这里下载驱动安装包. 然后用root账户解开安装包,并修改所有者为普通用户:
-
[root@host ~]# mkdir -p /usr/local/src/hybrid-wl
-
[root@host hybrid-wl]# cd /usr/local/src/hybrid-wl
-
[root@host hybrid-wl]# tar xvfz /path/to/the/tarball/hybrid-portsrc-x86_64-v5.10.91.9.3.tar.gz(下载档的名称和路径)
-
[root@host hybrid-wl]# chown -R someuser.somegroup /usr/local/src/hybrid-wl
注:为什么不随便将它解压到一个位置并保留缺省的拥有者?
-
原因是上面的做法会把驱动模块的源代码保留在系统上 —— 在你放置它们的位置 —— 好让你可以随时按需要创建驱动程序(譬如:你将内核升了级 —— 因为驱动模块永远根据某个内核来编译),还有,就是你可以用无特权的用户来编译!
然后make,但是我报错了:
-
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
-
make: *** /lib/modules/3.10.0-123.el7.x86_64/build: 没有那个文件或目录。 停止。
-
make: *** [all] 错误 2
其实把更新装完重启以下电脑就解决了,如果问题没解决的话:
-
然后我检查那个文件夹,发现是一个坏掉的连接,修正它:
-
cd /lib/modules/3.10.0-123.el7.x86_64
-
ln -fs /usr/src/kernels/3.10.0-123.4.2.el7.x86_64 build
再make看看
-
cd /usr/local/src/hybrid-wl
-
make
理想的输出应该是这样:
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: 进入目录“/usr/src/kernels/3.10.0-123.4.2.el7.x86_64”
CFG80211 API is prefered for this kernel version
Using CFG80211 API
CC [M] /usr/local/src/hybrid-wl/src/shared/linux_osl.o
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_iw.o
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o
LD [M] /usr/local/src/hybrid-wl/wl.o
WARNING: modpost: missing MODULE_LICENSE() in /usr/local/src/hybrid-wl/wl.o
see include/linux/module.h for more information
WARNING: /usr/local/src/hybrid-wl/wl.o(.data+0x150f40): Section mismatch in reference from the variable wl_pci_driver to the function .init.text:wl_pci_probe()
The variable wl_pci_driver references
the function __init wl_pci_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
Building modules, stage 2.
CFG80211 API is prefered for this kernel version
Using CFG80211 API
MODPOST 1 modules
WARNING: modpost: missing MODULE_LICENSE() in /usr/local/src/hybrid-wl/wl.o
see include/linux/module.h for more information
WARNING: /usr/local/src/hybrid-wl/wl.o(.data+0x150f40): Section mismatch in reference from the variable wl_pci_driver to the function .init.text:wl_pci_probe()
The variable wl_pci_driver references
the function __init wl_pci_probe()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
CC /usr/local/src/hybrid-wl/wl.mod.o
LD [M] /usr/local/src/hybrid-wl/wl.ko
make[1]: 离开目录“/usr/src/kernels/3.10.0-123.4.2.el7.x86_64”
装入驱动程序
当你成功地编译了驱动模块后,你便可以将它装入内核中,并设置在开机时自动装入这个驱动程序(要这样做,你必须利用 root 的权限)。当然,做这一切之先,你必须从内核删除现在的无线驱动模块(假如有的话):
-
[root@host ~]# rmmod bcm43xx
-
[root@host ~]# rmmod b43
-
[root@host ~]# rmmod b43legacy
-
[root@host ~]# rmmod ndiswrapper
然后装入驱动:
-
make install
-
depmod `uname -r
-
modprobe wl
OK!最后贴张图:
参考这里,centos的官方指南,http://wiki.centos.org/zh/HowTos/Laptops/Wireless/Broadcom,注意新的驱动程序在centOS7下可用,下载编译即可。
(责任编辑:IT)
首先,请确定你是位“拥有 Broadcom BCM43xx 无线网络卡的幸运儿”:
安装需要的组件:
接着到这里下载驱动安装包. 然后用root账户解开安装包,并修改所有者为普通用户:
然后make,但是我报错了:
其实把更新装完重启以下电脑就解决了,如果问题没解决的话:
再make看看
理想的输出应该是这样: KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd` make[1]: 进入目录“/usr/src/kernels/3.10.0-123.4.2.el7.x86_64” CFG80211 API is prefered for this kernel version Using CFG80211 API CC [M] /usr/local/src/hybrid-wl/src/shared/linux_osl.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_linux.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_iw.o CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o LD [M] /usr/local/src/hybrid-wl/wl.o WARNING: modpost: missing MODULE_LICENSE() in /usr/local/src/hybrid-wl/wl.o see include/linux/module.h for more information WARNING: /usr/local/src/hybrid-wl/wl.o(.data+0x150f40): Section mismatch in reference from the variable wl_pci_driver to the function .init.text:wl_pci_probe() The variable wl_pci_driver references the function __init wl_pci_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console Building modules, stage 2. CFG80211 API is prefered for this kernel version Using CFG80211 API MODPOST 1 modules WARNING: modpost: missing MODULE_LICENSE() in /usr/local/src/hybrid-wl/wl.o see include/linux/module.h for more information WARNING: /usr/local/src/hybrid-wl/wl.o(.data+0x150f40): Section mismatch in reference from the variable wl_pci_driver to the function .init.text:wl_pci_probe() The variable wl_pci_driver references the function __init wl_pci_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console CC /usr/local/src/hybrid-wl/wl.mod.o LD [M] /usr/local/src/hybrid-wl/wl.ko make[1]: 离开目录“/usr/src/kernels/3.10.0-123.4.2.el7.x86_64” 装入驱动程序当你成功地编译了驱动模块后,你便可以将它装入内核中,并设置在开机时自动装入这个驱动程序(要这样做,你必须利用 root 的权限)。当然,做这一切之先,你必须从内核删除现在的无线驱动模块(假如有的话):
然后装入驱动:
OK!最后贴张图: |