Thursday, May 6, 2010

How To: Enable Broadcom BCM4312 wifi in RHEL 6

Howdy,

I figured I'd jot down the steps to enable the Broadcom BCM4312 802.11b/g wifi card in Red Hat Enterprise Linux 6 beta x86_64 (RHEL6).

Broadcom wireless chipsets are very common in laptops. The laptop in this example is a Dell Latitude D630. Broadcom wifi has been a pain to enable in the past, especially in RHEL4.

As you can see in this posting on kernel.org things get a lot easier in kernels later than 2.6.24

First install the b43 packages (Edit: removed b43-tools as it is not a valid package)
$ sudo yum install b43-fwcutter b43-openfwwf

Next verify that your device is supported
$ sudo /sbin/lspci -vnn | grep 14e4
09:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5755M Gigabit Ethernet PCI Express [14e4:1673] (rev 02)
0c:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)

Using the full number, in this case 14e4:4315, look it up in this table to ensure that it is supported and which kernel is required.

In this case it should be supported since RHEL 6 beta uses kernel 2.6.32-19 and the minimum requirements listed in the table are kernel 2.6.32. Barely made it :-)
14e4:4315 supported 2.6.32 and later  BCM4312  b/g  LP  b43

Download the Windows drivers
$ mkdir ~/drivers
$ cd ~/drivers
$ wget http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2

Extract and copy the firmware to /lib/firmware
$ tar -jxf broadcom-wl-4.150.10.5.tar.bz2
$ cd broadcom-wl-4.150.10.5/driver
$ sudo /usr/bin/b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o 

This file is recognised as:
  ID         :  FW13
  filename   :  wl_apsta_mimo.o
  version    :  410.2160
  MD5        :  cb8d70972b885b1f8883b943c0261a3c
Extracting b43/pcm5.fw
Extracting b43/ucode15.fw
Extracting b43/ucode14.fw
Extracting b43/ucode13.fw
Extracting b43/ucode11.fw
Extracting b43/ucode9.fw
Extracting b43/ucode5.fw
Extracting b43/lp0bsinitvals15.fw
Extracting b43/lp0initvals15.fw
Extracting b43/lp0bsinitvals14.fw
Extracting b43/lp0initvals14.fw
Extracting b43/a0g1bsinitvals13.fw
Extracting b43/a0g1initvals13.fw
Extracting b43/b0g0bsinitvals13.fw
Extracting b43/b0g0initvals13.fw
Extracting b43/lp0bsinitvals13.fw
Extracting b43/lp0initvals13.fw
Extracting b43/n0absinitvals11.fw
Extracting b43/n0bsinitvals11.fw
Extracting b43/n0initvals11.fw
Extracting b43/a0g1bsinitvals9.fw
Extracting b43/a0g0bsinitvals9.fw
Extracting b43/a0g1initvals9.fw
Extracting b43/a0g0initvals9.fw
Extracting b43/b0g0bsinitvals9.fw
Extracting b43/b0g0initvals9.fw
Extracting b43/a0g1bsinitvals5.fw
Extracting b43/a0g0bsinitvals5.fw
Extracting b43/a0g1initvals5.fw
Extracting b43/a0g0initvals5.fw
Extracting b43/b0g0bsinitvals5.fw
Extracting b43/b0g0initvals5.fw

Next toggle the wifi radio switch, once it's switched back to the on position, the wifi light should begin flashing.

The lsmod command should now list the b43 module
$ /sbin/lsmod | grep -i b43
b43                   204044  0 
mac80211              231588  1 b43
cfg80211              142707  2 b43,mac80211
ssb                    56886  1 b43
mmc_core               72904  2 b43,ssb

At this point you can either add the wlan0 device manually, or you can reboot and allow the system to detect and configure it.

Following the reboot (or adding the device manually) you should now see wlan0 in the ifconfig output, and see available networks via Network Manager.

13 comments:

FlakRat said...

Well, after much testing in RHEL6 and Fedora 12 (which also uses the 2.6.32 kernel) I never was able to establish a connection to either WEP or WPA wifi networks.

After many tests I found reports that this method doesn't work with kernel 2.6.32 and BCM4312 [14e4:4315]

Since I had Fedora 12 installed and Fedora 13 releases in a few days, I figured why not try an upgrade. Fedora 13 uses kernel 2.6.33.

Following the upgrade, a reboot and login, my Broadcom card joined the WPA PEAP network without any trouble (using the same wifi configuration as used in F12 and RHEL6).

This should work for other supported B43 based cards in RHEL6. The 14e4:4315 seems to be the exception.

Anonymous said...

Just a quick note: You only need to install b43-fwcutter or b43-openfwwf. The latter has its own firmware whereas the former is used to extract the firmware support from the Windows driver.

Anonymous said...

I am able to see almost smae result on my machine
$ /sbin/lsmod | grep -i b43
b43 204044 0
mac80211 231588 1 b43
cfg80211 142707 2 b43,mac80211
ssb 56886 1 b43
mmc_core 72904 2 b43,ssb

#ifconfig wlan0

but not able to see any visiable network...added manuuly some hidden network too but not work for me.
i using dell vostro 1520 + fc 13 + bmc4312... & wifi suck me badly.....

Anonymous said...

Can you not use RPMForge and kmod-wl? Ive got it working in a much easier way under Fedora 13. There is a HOWTO here on my blog (see http://www.jamesben.net/?p=467)

Works 100% on my Dell Mini 10 with the BCM4312.

FlakRat said...

Quite possibly, I believe you meant RPMFusion, not RPMForge?

The good news, Broadcom has finally released an open source driver. For some BCM wifi cards, things will be much easier in the future, see The H article for further details.

Garnet Mabe said...

By the way this works for Fedora 15 didnt have to do a few of the steps like turn it to on f15 makes it auto on

Anonymous said...

Tank a lot, works great on hp dv6420la

saludos desde mexico

me said...

hi,
i am using del vostro 1540 and i have done all u suggested here but after that if i grep b43 in /sbin/lsmod it doesn't show anything...

Destino said...

Mil gracias!! Es la primer pagina que indica, Facil sencillo y en pocos pasos como hacer andar la placa que me habia vuelto loco!, En mi caso hize funcionar en Centos 6.4 una Broadcom 4312 de bajo consumo (lowpower) perteneciente a una Notebook Bangho.

Gracias.
Aclaro q para instalarlo inicie sesion como root, no se si hacia falta pero es la manera en que lo hize, y cuando reinicie todo andubo perfecto.

FlakRat said...

Destino thanks for the feedback and I'm glad this helped you out

Dalilo Almeida said...

Viejo muchas gracias... sencillo, facil y rapido, un saludo desde de sonora.

Mike Hanby said...

Your welcome Dalilo!!!

Praneeth Gundreddy said...

worked like a charm!! thanku for your help!!