Broadcom Wifi Card – Making it work with Free Software

Till now I have been cursing myself for not being informed enough to buy a laptop which has a wifi card that can run entirely on Free Software. The Acer Aspire 4710z has a Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01) card. I have been using the wifi card with the Free b43 driver together with non-free firmware. All of this changed when i decided to rant about my misfortunes with the wifi card on #gnewsense on freenode. gnufs on #gnewsense pointed me to .  There, I came to know about OpenFWWF , a project “that provides an open source firmware for Broadcom/AirForce chipset based devices”.

The first link above lists steps on how to make the Broadcom wifi card work with the Free firmware under gNewSense. I tried to follow the steps to configure the card under Debian squeeze (presently testing) and it finally worked after I read some debian bug reports as well. The steps I followed are as follows:

Install kernel 2.6.30 from Debian Backports (Currently Squeeze has 2.6.26)

  • Add “deb lenny-backports main contrib non-free” to /etc/apt/sources.list
  • aptitude install linux-image-2.6.30-bpo.1-686 (specific pkg name and version may change with time)

Build and install b43-asm (Tool to compile/assemble the firmware from their source code (b43-asm is not in the Debian repo at the time of writing this article)

  • svn co svn:// b43-asm-debian
  • cd b43-asm
  • debuild -i -us -uc -b –lintian-opts -i  (this builds the .deb package from the source tree. Just running debuild without any options gives some gpg key error)
  • dpkg -i <name of the deb package built in the above step>

Build and install the openfwwf firmware from its source

  • svn co svn:// openfwwf-debian
  • cd openfwwf-debian
  • debuild -i -us -uc -b –lintian-opts -i
  • dpkg -i <name of the deb package built in the above step>. This installs the Free Software firmwares under /lib/firmware/b43-open/ .

OpenFWWF currently does not support hardware encryption and QOS yet. To force these module options automatically, it is recommended to install a module-init-tools override /etc/modprobe.d/openfwwf.conf containing the following line:

  • options b43 nohwcrypt=1 qos=0

Or, just copy the corresponding example /usr/share/doc/openfwwf/examples/openfwwf.conf
to /etc/modprobe.d/openfwwf.conf

Once the Free Firmware is installed, you can remove the previous non-free firmware from /lib/firmware/ directory. Now reboot the machine to see if everything has gone OK or not. On my machine, after rebooting, when i do:

dmesg | grep firmware , I get the following output:

[   34.301153] b43 ssb0:0: firmware: requesting b43/ucode5.fw
[   34.484276] b43 ssb0:0: firmware: requesting b43-open/ucode5.fw
[   34.602878] b43 ssb0:0: firmware: requesting b43-open/pcm5.fw
[   34.609582] b43 ssb0:0: firmware: requesting b43-open/b0g0initvals5.fw
[   34.627897] b43 ssb0:0: firmware: requesting b43-open/b0g0bsinitvals5.fw
[   34.717116] b43-phy0: Loading OpenSource firmware version 410.31754 (Hardware crypto not supported)

Which shows that everything went ok and that I am now using the Free firmware.

One more non-free component removed!! Yay!!! /

My thanks goes to people on #gnewsense (gnufs, graziano and all the others), the OpenFWWF developers and everyone in the Free Software Community.

Important links:

Note: lspci says my wifi card is: 03:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)


2 responses to “Broadcom Wifi Card – Making it work with Free Software

  1. This was the only thing that wasn’t working for me with free software and that was bothering me. The other thing that doesn’t work is graphical acceleration but I don’t care much.

    It’s a good thing more and more things can be used with software freedom guaranteed.

    • yes, its indeed very good that more things can be used with Free Software. Also with hardware like the lemote yeeloong (, we have the choice to use hardware that works 100% with free software including the bios …

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s