Install the Broadcom wireless NIC Driver on CentOS 7
First, make sure you are the lucky guy with the Broadcom BCM43xx wireless network card ":
-
/Sbin/lspci | grep Broadcom
-
0b: 00.0 Network controller: Broadcom Corporation BCM4312 802.11a/B/g (rev 01)
Install the required components:
-
Sudo yum install kernel-headers kernel-devel gcc
Download the driver installation package here. Then use the root account to unbind the installation package and change the owner to a common user:
-
[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 (download file name and path)
-
[root@host hybrid-wl]# chown -R someuser.somegroup /usr/local/src/hybrid-wl
Note: Why not extract it to a single location and retain the Default owner?
-
The reason is that the above practice will keep the source code of the driver module on the system -- where you place them -- so that you can create the driver as needed at any time (for example: you upgraded the kernel level-because the driver module is always compiled based on a certain kernel), and you can compile it with unprivileged users!
Then make, but I reported the following error:
-
KBUILD_NOPEDANTIC = 1 make-C/lib/modules/'uname-R'/build M = 'pwd'
-
Make: ***/lib/modules/3.10.0-123. el7.x86 _ 64/build: the file or directory does not exist. Stop.
-
Make: *** [all] Error 2
In fact, after the update is installed, restart the following computer to solve the problem. If the problem persists:
-
Then I checked the folder and found a bad connection and fixed it:
-
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 again
-
Cd/usr/local/src/hybrid-wl
-
Make
The ideal output is as follows:
KBUILD_NOPEDANTIC = 1 make-C/lib/modules/'uname-R'/build M = 'pwd' make [1]: go to the/usr/src/kernels/3.10.0-123.4.2.el7.x86 _ 64 directory. The 80211 API is prefered for this kernel versionUsing limit 80211 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_rj80211_hybrid.o LD [M]/usr/local /src/hybrid-wl/wl. oWARNING: modpost: missing MODULE_LICENSE () in/usr/local/src/hybrid-wl/wl. osee include/linux/module. h for more informationWARNING:/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 referencesthe function _ init wl_pci_probe () If the reference is valid then annotate thevariable with _ init * or _ refdata (see linux/init. h) or name the variable: * _ template, * _ timer, * _ sht, * _ ops, * _ probe, * _ probe_one, * _ console Building modules, stage 2. limit 80211 API is prefered for this kernel versionUsing limit 80211 api modpost 1 modulesWARNING: modpost: missing MODULE_LICENSE () in/usr/local/src/hybrid-wl/wl. osee include/linux/module. h for more informationWARNING:/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 referencesthe function _ init wl_pci_probe () If the reference is valid then annotate thevariable 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. komake [1]: Leave the directory "/usr/src/kernels/3.10.0-123.4.2.el7.x86 _ 64"
Load driver
After you successfully compile the driver module, you can load it into the kernel and set it to automatically load the driver at startup (to do this, you must use the root permission ). Of course, to do this first, you must delete the current wireless driver module from the kernel (if any ):
-
[Root @ host ~] # Rmmod bcm43xx
-
[Root @ host ~] # Rmmod b43
-
[Root @ host ~] # Rmmod b43legacy
-
[Root @ host ~] # Rmmod ndiswrapper
Then load the driver:
-
Make install
-
Depmod 'uname-r
-
Modprobe wl
OK! Finally, paste a picture:
For more information, see the official centos guide.