Step 3: Install the driver
IMPORTANT NOTE: The steps and examples below are intended for use with NetworkManager managing the wireless connection. For other connection managers or techniques, adapt the information as appropriate for the particular situation. The steps and examples below also require the Fedora system to have an Internet connection via a wired NIC for the steps that involve wget or yum. For a Fedora system with no Internet connection, the relevant files can be downloaded using another computer or operating system and manually installed. For help with that, start a new thread in the Networking forum and mention your running kernel and Broadcom chipset.
How to install and use b43 and b43legacy
History and background
The b43 Linux driver is the current descendant of the now obsolete bcm43xx driver. The bcm43xx driver was the result of reverse engineering of proprietary Broadcom drivers. The process involved manually translating machine code back into C from which a guide to writing drivers for the Broadcom chipsets could be written. The bcm43xx driver module began shipping with Fedora Core 5 kernels in 2006, but it required firmware that had to be extracted from proprietary drivers using a software application for that purpose. That application was named bcm43xx-fwcutter and was also available in the Fedora Core 5 Extras repository. During the life cycle of Fedora 7 in 2007, the bcm43xx driver module was replaced by two new driver modules: b43 and b43legacy. They both still required the installation of firmware. The b43legacy module was for use with some older cards which also have to use an older version of firmware. The b43 and b43legacy driver modules and b43-fwcutter to extract their firmware are still included in Fedora today. They are known to work with the following Broadcom wireless chipsets:
IMPORTANT NOTE: Not all wireless modes are supported for all of those chipsets. And some chipsets in that list may exist in more than one version that may each require a different driver or driver method or firmware. The official "home" of the b43 and b43legacy drivers is now Linux Wireless
. Go there for additional details about the current status of support and the driver/firmware requirements for Broadcom chipsets. If you do not have success trying b43 for one of those listed chipsets, then it's reasonable to try an alternate driver or driver method known to work with your chipset.
The firmware required by b43 and b43legacy is extracted from proprietary Broadcom drivers. The best results nowadays are obtained by extracting the firmware from source object files of Broadcom drivers available from a legal distribution point such as OpenWrt.org. The firmware is copyrighted and cannot be redistributed. The b43 module requires so-called version 4 firmware which can be extracted from a broadcom-wl tarball from OpenWrt, and probably any of the version 4 broadcom-wl tarballs can used as a firmware source for the b43 driver in the latest Fedoras. But if the wireless card must use the b43legacy driver, then it must use older version 3 firmware extracted from an older driver file. The version 3 firmware is maintained at OpenWrt not as a broadcom driver tarball but as a single object file named wl_apsta-126.96.36.199.o. In both cases, as explained next, the firmware is extracted from the driver file with b43-fwcutter which is a software package available from the Fedora repository.
IMPORTANT NOTE: The following steps are ones often used successfully around here. If they don't work for a particular Broadcom wireless card, then go to linuxwireless.org for more complex explanations and specialized instructions for the various chipsets and versions. These steps assume that the Fedora system has a wired NIC connection to the Internet for the download steps. If the Fedora system does not have an Internet connection, then all of the packages and files mentioned can be downloaded using another computer or operating system and transferred to the Fedora filesystem. Modify the steps accordingly for that scenario.
Some things to try if it doesn't work
- Install b43-fwcutter. This is the software package that does the extraction of the firmware from the proprietary driver.
yum install b43-fwcutter
- Determine which native driver is being used by the wireless card (b43 or b43legacy). The kernel is generally good about detecting a Broadcom wireless card and loading the correct driver module for it. The following terminal command will list the loaded kernel modules in alphabetical order. Look for b43 or b43legacy.
- Do this step only if you need to install version 4 firmware for the b43 driver module. Copy and execute the following command lines one after the other in a Fedora terminal.
tar xjf broadcom-wl-188.8.131.52.tar.bz2
b43-fwcutter -w /lib/firmware wl_apsta_mimo.o
- Do this step only if you need to install version 3 firmware for the b43legacy module.
b43-fwcutter -w /lib/firmware wl_apsta-184.108.40.206.o
- Now reboot or restart NetworkManager and look in the NetworkManager panel icon for available networks (left-click the icon).
Next... How to install and use the Broadcom 802.11 Linux STA driver (broadcom-wl)
- Check the firmware files. There should be about three dozen .fw files in /lib/firmware/b43 (or /lib/firmware/b43legacy). If they're not there, then review the steps and re-install the firmware.
- Check the loaded kernel modules again. The b43 or b43legacy module should be loaded, and potentially conflicting modules such as wl or ndiswrapper should not be loaded.
- If a conflicting module is being loaded from a previous driver effort, then either undo the steps from that previous effort, or blacklist the unwanted module. Example...
echo "blacklist ndiswrapper" >> /etc/modprobe.d/blacklist.conf