Sunday, June 16, 2013

Enabling Broadcom 4313 Wireless support and VLC installation on RHEL 6x/CentOS 6x

CentOS is an excellent desktop OS for the discerning user who wants rock solid performance without paying a premium.  However, since it is built from server source with some desktop apps and bits thrown in, stability comes at the cost of the latest and greatest version of the software bundled. For instance LibreOffice is still stuck at 3.4x, it's Pidgin instead of Empathy and there are no versions of Banshee available.

However, having lesser things to play actually makes it an attractive choice for focussing on getting work done since there are practically no games available but there is a plethora of "boring" server stuff that can only make a geek quiver with delight!   

Since I work in a RH shop, having a RHEL server installed on my notebook actually makes sense, but then I would have to "burn" through one subscription for no good reason. So CentOS it is then. 

Two problems come into mind - the Broadcom wireless (BCM4313) on my notebook wouldn't work with CentOS or RHEL and two, the lack of multimedia codecs would ensure that my notebook would be good for work and staging and precious little else. That wouldn't do since I live off my notebook. 

After trawling through the web, I managed to resolve my #1 problem and easily resolve issue #2. 

Preparing the repos

# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm
# rpm -ivh http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh http://elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

Enabling Broadcom Wireless Support
The Broadcom driver doesn't come in a binary form due to licensing restrictions. To enable Broadcom 4313 support, we need to compile the driver from a Source RPM.

Install the required dependencies

As root:

# yum -y groupinstall 'Development Tools' 
# yum -y install redhat-lsb 
# yum -y kernel-devel-$(uname -r)

Preparing for compilation

Choose the right architecture archive (32 or 64-bit) and download the source RPM from (http://elrepo.org/linux/elrepo/el6/SRPMS/wl-kmod-5_100_82_112-9.el6.elrepo.nosrc.rpm) to anywhere (e.g. Downloads) and the driver archive from Broadcom's site (http://www.broadcom.com/support/802.11/linux_sta.php) to ~/rpmbuild/SOURCES/

As normal user:

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SPECS,SOURCES,SRPMS}
$ echo -e "%_topdir $(echo $HOME)/rpmbuild\n%dist .el$(lsb_release -s -r|cut -d"." -f1).local" >> ~/.rpmmacros


Building the Source RPM

As normal user:

$ rpmbuild --rebuild --define 'packager <user name>' /home/<user name>/Downloads/wl-kmod*nosrc.rpm


Installing the Compiled RPM

As root:

# rpm -ivh /home/ericyeoh/rpmbuild/RPMS/x86_64/kmod-wl*.rpm



Remove unused services

As root:


# modprobe -r b43 b43legacy ssb wl lib80211

# modprobe -r bcma (for RHEL/Centos 6.4 and above)
# modprobe lib80211_crypt_tkip
# modprobe -r wl 


Reboot and it's good to go.

Remember to remove any instance of ndiswarpper if it's installed. 

Installing VLC
VLC is an all in one media player for the many MP3s and movies I have. VLC is one of those indispensable "if-you-are-stuck-on-a-desert-island" software. 

As root:

# yum --enablerepo=remi-test install vlc 



4 comments:

Unknown said...

You just saved my day. Thanks so much.

msian_tux_lover said...

You are most welcomed. Do share the steps.

Have a great day.

Anonymous said...

thanks very much. really worked for broadcom 4313 and Centos 6.4. but skipped --define packager

Unknown said...

I followed the steps, but got this error:

[sherwin@localhost SOURCES]$ rpmbuild --rebuild --define 'packager sherwin' /home/sherwin/Downloads/wl-kmod*nosrc.rpm
Installing /home/sherwin/Downloads/wl-kmod-6_30_223_248-2.el6.elrepo.nosrc.rpm
warning: user ajb does not exist - using root
warning: group ajb does not exist - using root
warning: user ajb does not exist - using root
warning: group ajb does not exist - using root
warning: user ajb does not exist - using root
warning: group ajb does not exist - using root
warning: user ajb does not exist - using root
warning: group ajb does not exist - using root
error: Architecture is not included: i386

Any suggestions?

Regards,
Sherwin