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 http://leorockway.wordpress.com/2009/07/04/0c00-0-network-controller-broadcom-corporation-bcm4311-802-11bg-wlan-rev-01-take-two/ . 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 http://www.backports.org/debian/ 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://svn.berlios.de/fullstory/b43-asm/trunk 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://svn.berlios.de/fullstory/openfwwf/trunk 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
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.
Note: lspci says my wifi card is: 03:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)