Saturday, 12 November 2016

[ Solved ] Broadcom 4312 Wireless Driver For CentOS

I am working on CentOS 6.6 and faced the issue in wireless here share you the findigs how to resolve:

Follow these steps as given below
Step 1 CentOS should be updated through LAN

 # yum update

And then check your device information

#lspci | grep Broadcom


Now if CentOS already updated can check atleast once these required packages:

#yum install kernel-headers kernel-devel gcc

Now Download the CentOS(Linux) Compatibilies Binaries



download in the below directory

#mkdir -p /usr/local/src/hybrid-wl
  
#cd /usr/local/src/hybrid-wl

#chown -R root:root /usr/local/src/hybrid-wl/

Extract Broadcom Driver Archive

#tar -xvzf hybrid-v35_64-nodebug-pcoem-6_30_223_271.tar.gz

Compiling the Broadcom driver module on CentOS

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

#pwd 
/usr/local/src/hybrid-wl/

#make

we hv to run the following sed replacement commands bkz el6 won't compile bkz of the if-then-else clause for kernel Ver check in file wl_cfg802 
   
#sed -i 's/[ >][>=] KERNEL_VERSION(2, 6, 3.)/>= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/[ >][>=] KERNEL_VERSION(3, ., .)/>= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/[ >][>=] KERNEL_VERSION(3, 11, .)/>= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/< KERNEL_VERSION(3, 18, .)/< KERNEL_VERSION(2, 6, 30)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/[ >][>=] KERNEL_VERSION(3, 15, .)/>= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/[ >][>=] KERNEL_VERSION(4, 0, 0)/>= KERNEL_VERSION(2, 6, 32)/' src/wl/sys/wl_cfg80211_hybrid.c

#sed -i 's/< KERNEL_VERSION(4,2,0)/< KERNEL_VERSION(2, 6, 30)/' src/wl/sys/wl_cfg80211_hybrid.c

this replace of sed may not enough for compliation we need to apply this pactch https://wiki.centos.org/HowTos/Laptops/Wireless/Broadcom?action=AttachFile&do=get&target=wl-kmod-fix-ioctl-handling.patch  

#mv /root/Downloads/wl-kmod-fix-ioctl-handling.patch /usr/local/src/

#patch -p1 < ../wl-kmod-fix-ioctl-handling.patch

Compile module again

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

if folder size reduce then your driver is sucussfully complied

#strip --strip-debug wl.ko
  
#modprobe -r bcm43xx

#modprobe -r bcm434312

#modprobe -r b43legacy

#blacklist -r bcma

#blacklist -r brcmsmac

#blacklist -r ssb

#blacklist -r ndiswrapper

copy the file where kernel can read it 

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

#depmod $(uname -r)

#modprobe wl

with this module load everytime when system boots, by doing this you are prevent these modules from being load into kernel on boot time and may conflict with wl module file.

#vim /etc/modprobe.d/blacklist.conf

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

:wq!

                                 Now restart the machine it will work 
Thanks
Vijay Thakur

                                 your contribution for us just Click on Ads.

No comments:

Post a Comment