Software >> OS >> Unix >> Linux >> RHEL >> 7 >>  How to install Broadcom BCM43xx 802.11bgn driver into the kernel for RHEL7.2 on HP 14-AM031TU laptop

Tags: #linux# #rhel7# #broadcom# #wi-fi# #802.11#

1. Determine WLAN chip

$ /sbin/lspci | grep Broadcom

2. No need do yum install kernel-headers kernel-devel gcc as they are already there

3. Download and extract Broadcom driver archive (go to broadcom website and download the driver)

4. Extract and change file ownership

# mkdir -p /usr/local/src/hybrid-wl
# cd /usr/local/src/hybrid-wl
# tar xvfz /path/to/the/tarball/hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz
# chown -R <youruser>:<yourgroup> /usr/local/src/hybrid-wl

5. compile

# make -C /lib/modules/`uname -r`/build/ M=`pwd`

6. do sed replacements on the source code

# sed -i 's/ >= KERNEL_VERSION(3, 11, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
# sed -i 's/ >= KERNEL_VERSION(3, 15, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
# sed -i 's/ < KERNEL_VERSION(3, 18, 0)/ < KERNEL_VERSION(3, 9, 0)/' src/wl/sys/wl_cfg80211_hybrid.c
# sed -i 's/ >= KERNEL_VERSION(4, 0, 0)/ >= KERNEL_VERSION(3, 10, 0)/' src/wl/sys/wl_cfg80211_hybrid.c

7. compie again

# make -C /lib/modules/`uname -r`/build/ M=`pwd`

8. load into the kernel

# modprobe -r bcm43xx
# modprobe -r b43
# modprobe -r b43legacy
# modprobe -r ssb
# modprobe -r bcma
# modprobe -r brcmsmac
# modprobe -r ndiswrapper

9. copy the driver module file to a location where kernel can find it:

# cp -vi /usr/local/src/hybrid-wl/wl.ko /lib/modules/`uname -r`/extra/

10. create a list of module dependencies

# depmod $(uname -r)

11. load the driver module. If no errors => successful

# modprobe wl

12. add following in /etc/modprobe.d/blacklist.conf

blacklist bcm43xx
blacklist b43
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist ssb
blacklist ndiswrapper

13. create/edit the file /etc/sysconfig/modules/kmod-wl.modules and add the following

#!/bin/bash
for M in lib80211 cfg80211 wl; do modprobe $M &>/dev/null;done

14. reboot