Broadcom b43/b43legacy Wireless Support in Fedora
A Linux driver for the Broadcom b43 wireless chips. Broadcom never released details about these chips so this driver is based upon reverse engineered specifications.
Requirements
- Read our Getting Started with Wireless Guide.
- Supported Broadcom hardware. (See this page to see if your device is supported. If you have a BCM4312 check this page.)
- Fedora 8 - kernel 2.6.23.15+ with b43-fwcutter 011+
Note: This might still work in Fedora 7 with a proper kernel. - Existing connection to the Internet. For example, wired internet.
- You must have an updated system:
- Open a terminal
-
Run a yum update:
su -c 'yum update'
Doing the Work
- Open a terminal .
- Install the b43-fwcutter packages:
- Check what firmware your card needs:
dmesg|grep b43
You will see something like the following with hints on what firmware you need to use:
b43-phy0 ERROR: Firmware file "b43/ucode5.fw" no found or load failed. b43-phy0 ERROR: You must go to http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and download the latest firmware (version 4).
- Download the correct firmware for your device from here or select the correct firmware from the following links:
For b43, download this firmware version 4 and untar it:
For b43legacy, download Version 3 firmware:
- Extract the firmware:
For b43:
su -l -c 'b43-fwcutter -w /lib/firmware /path/to/broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o'
For b43legacy:
su -l -c 'b43-fwcutter -w /lib/firmware /path/to/wl_apsta-3.130.20.0.o'
For bcm43xx:
bcm43xx support is outside the scope of this howto. Please read the linux wireless howto for bcm43xx support. - Optional: Enable NetworkManager for managing this device (very recommended!)
- Alias the correct module to your wlan0 device:
For b43:
su -c 'echo "alias wlan0 b43" >> /etc/modprobe.conf'
For b43legacy:
su -c 'echo "alias wlan0 b43legacy" >> /etc/modprobe.conf'
- With some devices, system-config-network will need to be run:
su -l -c 'system-config-network'
Select: New → Wireless → Broadcom Device (should be wlan0)
Then: Select options suitable for your network configuration. We recommend using NetworkManager and setting the device to not start on boot. - Now, reload the driver:
For b43:
su -l -c 'rmmod b43 && modprobe b43'
For b43legacy:
su -l -c 'rmmod b43legacy && modprobe b43legacy'
- If the reload fails to get your device working correctly, just reboot:
su -c 'reboot'
su -c 'yum install b43-fwcutter'
Troubleshooting
How to test
Open a terminal.Ping yahoo: (or any host)
ping yahoo.com
Results similar to the ones below should be displayed:
PING yahoo.com (216.109.112.135) 56(84) bytes of data.
64 bytes from w2.rc.vip.dcn.yahoo.com (216.109.112.135): icmp_seq=0 ttl=53 time=274 ms
[...]
Common problems and fixes
Check irc.freenode.net #bcm-users for any issues experienced with this driver.


Issues between b43-fwcutter and bcm43xx-fwcutter
According to these instructions I saw (with lsmod) that I have the b43 module and should have used the b43-fwcutter.
Instead, after several failures, I used the bcm43xx-fwcutter and it worked like a charm.
The difference is that the b43-fwcutter creates a folder called b43 and puts some drivers in it, while bcm43xx-fwcutter creates some files called bcm43xx-* directly in /lib/firmware. My installation requires the latter.
If you are having the same problem as I had, you can see the kernel log (/var/log/messages) and find that when you try to activate your WiFi (with "ifconfig wlan0 up", for example) a message appears like the following:
firmware_helper[3548]: Loading of /lib/firmware/bcm43xx_microcode5.fw for b43 driver failed: No such file or directory
kernel: b43-phy0 ERROR: Microcode "bcm43xx_microcode5.fw" not available or load failed.
Finally, you should remove the files that either fwcutter creates between tests, or you might get additional strange error messages.