Getting wireless to work on Xubuntu / Ubuntu linux with broadcom based firmware
In the past I have had problems with getting wireless working on Linux laptops. I thought this had been fixed with more recent distributions, but in some rare circumstances there can be problems.
In this case I have an old laptop that I have set-up for my son to use. It’s ancient compared with current hardware, but is still able to run a less demanding distribution such as Xubuntu. It installed OK with and older version of Xubuntu, but with 11.10 it said “Requires Firmware”.
Checking it’s a Broadcom mini-wireless card
The first step is to identify what wireless chipset is installed. In my case a Dell mini-pci wireless card, which uses the Broadcom chipset. To check this run the lspci command from a terminal:
$lspci | grep Network
02:03.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03)
Note you still use lspci for a pcmcia card.
Assuming this says Broadcom BCM43??? we can proceed, if not then you may have to look at configuring the card manually using ndiswrapper and the Windows drivers, but that’s beyond the scope of this.
Install the drivers
To install the drivers run the following from a terminal. You need to be connected to the Internet when this is run using the onboard Ethernet card and a cable direct to your router.
sudo apt-get install firmware-b43-installer
This will download the firmware from the Internet and install the appropriate driver. You should then be able to select the appropriate wireless network from the normal network list.
Conflicts with other wireless packages
If you have the broadcom-sta-common package installed it blacklists the b43 driver which is required for wireless.
To fix – edit the file /etc/modprobe.d/broadcom-sta-common.conf
delete (or comment out with a #) the line. If this file does not exist then move on to the next step.
blacklist b43
Then to force the module to load during boot edit /etc/modules
add a line with
b43
It should now still work after a reboot.