Problem – no WiFi after Fresh Install
After an upgrade from Mint 13 to Mint 16 using the “fresh upgrade” method again resulted in a system without wireless connectivity, this guide was created for future reference and possibly as an aid to others experiencing the same problem. The information here applies to the B43 driver, specifically for the 4311 PCI-ID/Chip ID, but the driver/firmware solution described may be similar for other Broadcom PC-IDs also using the B43 driver (see list below) and running on Debian/Ubuntu or derivative distros; however, keep in mind that derivative doesn’t imply compatibility in all cases. For further information about B43/B43 legacy wireless devices and driver/firmware solutions see http://wireless.kernel.org/en/users/Drivers/b43.
Similar PC-IDs for B43:
Note that in most cases PCI-ID correlates to the Chip ID, but that is not always the case, so identify your device using the PCI-ID.
Regardless of the PCI-ID, always check the distro’s documentation and user forums for the most up-to-date information. Broadcom wireless solutions constantly change and vary from distro to distro.
System used for this Guide
The system used for this guide was an Intel Pentium T2310 / 1.46 GHz ( Dual-Core ) laptop where Mint 16 (Mate) was freshly installed to the hard drive. The built-in wireless device was based on the BCM 4311 chipset. No other options existed at the time for connecting to the Internet except for wireless, which didn’t work after the OS installation.
Broadcom Wireless Issues
In the past, wireless connectivity issues in Linux for devices using the popular Broadcom chipset were a common problem that often turned into a difficult, confusing, and time-consuming task. Considerable time and effort was often spent performing multiple trial-and-error driver installations, command-line troubleshooting, reading and evaluating technical documentation, and following suggestions from other users in order to get wireless working.
Although some Linux distros support Broadcom wireless out-of-the-box or provide options within the OS to install the correct drivers/firmware, most do not due to a variety of ongoing development, proprietary and support issues. For this reason, a Web search for Broadcom wireless connection problems often results in multiple pages of possible solutions and troubleshooting suggestions, much which can be out-of-date and may no longer apply. And the amount of information can overwhelm and confuse desperate users looking for an easy and quick solution. An informative Archlinux.org Wiki entry (2013), Broadcom Wireless, describes many of these issues and illustrates why so much confusion and seemingly conflicting information exists about getting wireless to work for Broadcom devices in Linux.
Current Support Issues
Fortunately, driver/firmware support and installation options for Broadcom wireless devices have steadily improved and increasingly don’t require as much user effort or technical expertise; however, this doesn’t mean that problems are now a thing of the past. Many users may still need to use another PC to hunt the Web for the correct drivers, may find themselves in the frustrating catch-22 position of needing a LAN connection in order to install the drivers, learn that the correct drivers are not clearly specified, or when specified, are not included with the installation media.
For some Linux distros, B43 driver/firmware installation may be an automated or a semi-automated process. Some distros feature automatic installation for B43 devices by detecting and installing the appropriate driver package during the OS install from the installation media or through a LAN connection, while others may include them with the kernel image. Other distros, like Ubuntu/Debian and their derivatives, may even provide customized installation files (like a deb file) from their support forums or website, where users need only to download and double-click the deb file which automatically installs the appropriate drivers/firmware, although some deb files don’t include the drivers and may require a LAN connection in order to download them (another catch-22 situation if you don’t have a LAN connection).
When automatic or semi-automatic B43 wireless driver/firmware installation isn’t an option, users can still enable wireless using an extraction tool and open source or proprietary drivers to manually install the firmware – this is the process described in this guide.
Generally, three driver/firmware solutions exist for Linux users with Broadcom chip-sets:
1. brcmsmac/brcmfmac/brcm80211 – Open source kernel driver (newest, often included with the latest kernel images)
2. B43/B43 legacy – Open source reversed engineered kernel driver (B43 only is covered in this guide, B43 Legacy is not covered)
3. broadcom-wl – Proprietary Broadcom STA driver
The necessary driver/firmware is dependent on the chipset/PCI-ID, type of wireless device, operating system, CPU architecture, and the OS version, although some Broadcom wireless devices are still unsupported in Linux. Regardless of the chipset/PCI-ID, the distro’s documentation and user forums should always be checked for the latest information since driver solutions and installation options vary from distro to distro and even between versions within a distro.
Identifying the Wireless Device
To identify a Broadcom wireless device in Linux, type the following command (case-sensitive) into a terminal:
lspci -vnn -d 14e4:
The above is the output of the lspci command. The PCI-ID is identified within the brackets on the 2nd line by 14e4:4311, where 14e4 is the identification code for Broadcom, and 4311 is the device. In this case, 4311 also identifies the Chip ID. The <access denied> after Capabilities is displayed because the lspci command was executed without using administrator privileges (sudo or su).
Additional wireless identification and troubleshooting commands can be found at the Ubuntu Community Help Wiki.
Tested Solution – Install firmware from driver source file
The verified solution for this guide was to use another PC to download the necessary files onto a USB flash drive and then transfer those files to the user directory on the Linux Mint 16 PC with no Internet connection. The files were fwcutter as a deb file and the Broadcom-wl proprietary driver source file. Fwcutter is a tool written for BCM43xx driver files to extract firmware from driver source files.
1. Download b43-fwcutter for your architecture (bottom of page) from http://packages.debian.org/squeeze/b43-fwcutter. In this case, b43-fwcutter_013-2_amd64.deb was used, but an older version or a 32-bit version probably would have worked as well.
2. Download the source file from http://mirror2.openwrt.org/sources/. In this case, broadcom-wl-126.96.36.199.tar.bz2 was used.
3. Transfer the files to your user directory on the Linux PC and double-click the b43-fwcutter file to install it. Ignore any warnings about the version being out-of-date.
4. Run the following commands to extract and write the firmware to /lib/firmware. Ignore any warnings.
tar xfvj broadcom-wl-188.8.131.52.tar.bz2 sudo b43-fwcutter -w /lib/firmware broadcom-wl-184.108.40.206/driver/wl_apsta_mimo.o
5. Reboot the PC.
6. The wireless should now work. If so, look for and install any updated B43 wireless firmware/fwcutter/drivers using the Synaptic Package Manager. Do not use B43 legacy.
Other Possible Solutions
Ubuntu community wiki. Solutions for a number of PCI-IDs (not tested):
Deb files. Automatically installs driver/firmware for deb-compatible distros from pkgs.org. Double-click to install (not tested):
B43 wireless information page:
B43 Driver download:
Linux Mint solution: