CentOS 6.5 Driver For A Broadcom Corporation BCM4313 Chipset

Home » CentOS » CentOS 6.5 Driver For A Broadcom Corporation BCM4313 Chipset
CentOS 10 Comments

Hello CentOS admins.

I am an AIX admin bent on learning CentOS. Yesterday I downloaded CentOS-6.5-x86_64-bin-DVD1.iso, burned a DVD and loaded it onto a Lenovo IdeaPad N585 laptop. All went well, except for getting the integrated wireless to work. Here is some info and what I tried so far.

# lspci|egrep -i wireless
06:00.0 Network controller: Broadcom Corporation BCM4313 802.11bgn Wireless Network Adapter (rev 01)
# uname -r
2.6.32-431.el6.x86_64

I found these instructions for building a driver for the BCM4313 chip set:
http://wiki.CentOS.org/HowTos/Laptops/Wireless/Broadcom?action=show

I went to this site:
http://www.broadcom.com/support/802.11/linux_sta.php and downloaded this file:
hybrid-v35_64-nodebug-pcoem-6_30_223_141.tar.gz

No problem with this:
yum install kernel-headers kernel-devel gcc

I extracted the file:
mkdir -p /usr/local/src/hybrid-wl
cd /usr/local/src/hybrid-wl
pwd
tar xvfz /root/Downloads/hybrid-v35_64-nodebug-pcoem-6_30_223_141.tar.gz
chown -R root.root /usr/local/src/hybrid-wl

Now is where the issues begin, with the make (I know bug surprise):
# make -C /lib/modules/`uname -r`/build/ M=`pwd`
make: *** /lib/modules/2.6.32-431.el6.x86_64/build/: No such file or directory. Stop.

Build does not exist? Let’s investigate this:
# (cd /lib/modules/2.6.32-431.el6.x86_64/ ; ls -l)|egrep build lrwxrwxrwx. 1 root root 46 Jun 7 20:11 build ->
../../../usr/src/kernels/2.6.32-431.el6.x86_64
lrwxrwxrwx. 1 root root 5 Jun 7 20:11 source -> build

Ok, so build is a link, let’s investigate further:
# cd /lib/modules/2.6.32-431.el6.x86_64/
# cd ../../../usr/src/kernels/
# ls -l total 4
drwxr-xr-x. 22 root root 4096 Jun 8 19:54 2.6.32-431.17.1.el6.x86_64

Hmmm, so build is a link to: 2.6.32-431.el6.x86_64
but what exists is: 2.6.32-431.17.1.el6.x86_64

Ok, let’s try fixing the link:
# cd /lib/modules/2.6.32-431.el6.x86_64/
# mv build build.bad
# ln -s ../../../usr/src/kernels/2.6.32-431.17.1.el6.x86_64 build
[root@picard 2.6.32-431.el6.x86_64]# ls -l |egrep build lrwxrwxrwx. 1 root root 51 Jun 9 21:50 build ->
../../../usr/src/kernels/2.6.32-431.17.1.el6.x86_64
lrwxrwxrwx. 1 root root 46 Jun 7 20:11 build.bad ->
../../../usr/src/kernels/2.6.32-431.el6.x86_64
lrwxrwxrwx. 1 root root 5 Jun 7 20:11 source -> build
# ls -ld build lrwxrwxrwx. 1 root root 51 Jun 9 21:50 build ->
../../../usr/src/kernels/2.6.32-431.17.1.el6.x86_64

Ok, build is now a link pointing to something that exists, lets try the make again:
# cd /usr/local/src/hybrid-wl
# ls -l total 20
-rw-r–r–. 1 root root 8 Jun 8 20:27 built-in.o drwxrwxr-x. 2 root root 4096 Aug 1 2013 lib
-rw-r–r–. 1 root root 4101 Aug 1 2013 Makefile drwxrwxr-x. 6 root root 4096 Aug 1 2013 src
# make -C /lib/modules/`uname -r`/build/ M=`pwd`
make: Entering directory `/usr/src/kernels/2.6.32-431.17.1.el6.x86_64′
CFG80211 API is prefered for this kernel version Using CFG80211 API
CC [M] /usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.o
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:79: warning: ‘enum tx_power_setting’ declared inside parameter list
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:79: warning: its scope is only this definition or declaration, which is probably not what you want
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function
‘wl_cfg80211_join_ibss’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:726: error:
‘struct cfg80211_ibss_params’ has no member named ‘channel’
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1092: warning:
‘enum tx_power_setting’ declared inside parameter list
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1092: error:
parameter 2 (‘type’) has incomplete type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: In function
‘wl_cfg80211_set_tx_power’:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1103: error:
‘TX_POWER_AUTOMATIC’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1103: error: (Each undeclared identifier is reported only once
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1103: error: for each function it appears in.)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1105: error:
‘TX_POWER_LIMITED’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1111: error:
‘TX_POWER_FIXED’ undeclared (first use in this function)
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c: At top level:
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1589: warning:
initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1594: warning:
initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1595: warning:
initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1596: warning:
initialization from incompatible pointer type
/usr/local/src/hybrid-wl/src/wl/sys/wl_cfg80211_hybrid.c:1597: warning:
initialization from incompatible pointer type etc, etc, etc for many, many lines

Wow, I’m not sure where to even begin with this. Anyone got any ideas?
What I’m trying to get is a CentOS 6.5 driver for a Broadcom Corporation BCM4313 chipset.

Thanks,

10 thoughts on - CentOS 6.5 Driver For A Broadcom Corporation BCM4313 Chipset