centos7怎么安装bcm4312网卡驱动
发布网友
发布时间:2022-04-24 12:32
我来回答
共1个回答
热心网友
时间:2023-04-23 07:15
首先,请确定你是位“拥有 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/moles/`uname -r`/build M=`pwd`
make: *** /lib/moles/3.10.0-123.el7.x86_64/build: 没有那个文件或目录。 停止。
make: *** [all] 错误 2
其实把更新装完重启以下电脑就解决了,如果问题没解决的话:
然后我检查那个文件夹,发现是一个坏掉的连接,修正它:
cd /lib/moles/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/moles/`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/mole.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 moles, stage 2.
CFG80211 API is prefered for this kernel version
Using CFG80211 API
MODPOST 1 moles
WARNING: modpost: missing MODULE_LICENSE() in /usr/local/src/hybrid-wl/wl.o
see include/linux/mole.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