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.

Monday, May 3, 2010

Spacewalk 1.0 has Released

The Spacewalk developers have released 1.0 of Spacewalk, the "open source Linux and Solaris systems management solution".

The release notes are available here. Recent previous version were 0.8, 0.7 and 0.6.