I will update this answer every time I get a new/old model with a problem. I will try to cover all Broadcom models and most if not all of the ways of fixing their problems. Right now the models that I have listed here are the ones I have tested or were tested by other Ubuntu users:
BCM4306/2 or BCM4306 (rev 02)
BCM4306/3 or BCM4306 (rev 03)
BCM4312 (Low Power)
BCM4313 (Doesn't work with latest drivers on Raring 13.04) (specific question)
BCM43236 (Tested AE2500 USB Adapter)
BCM4727 (Actually a BCM4313. Read below for more information)
I also recommend reading the following guide which helps users with Wireless cards achieve many things via the terminal: How to connect and disconnect to a network manually in terminal?
There are several ways to install the drivers, they all depend on the model you have and the version of Ubuntu you have (Since the driver version changes). I should add that if you choose any of the ways I mention here to fix it, you NEED to test your wireless connection for at least 2 hours (I actually recommend 8 hours) with another device in either Ad-Hoc Mode, Infrastructure Mode or Both. Common problems can be:
- Connections times out after several minutes or hours
- Stop searching for other devices (Does not see any other device)
- Keeps asking for password even on cases where AP does not have any
- Stops any receiving/transmitting traffic (Needs reboot to temporarily fix)
- Crashes system with dmesg errors in log (Link 1 Below)
- System freezes completely (You can only press Reboot/Power button) (Link 1 Below)
- Creates huge log reports trying to correctly configure or connect
- Fails when installed via Additional Drivers / Additional Hardware (Link 3 Below)
- Connects and disconnects continuously every X amount of seconds
- Appears connected on Network Manager but does not receive Internet
- Tries to connect many times without correctly finishing connection
- Takes too long to connect
- After upgrading from a previous version (eg: 12.04 to 12.10) it stops working
- Wireless card does not turn on, enable or disable (Link 2 Below)
- Wireless card blocked by hardware
- More problems found in Launchpad, Ubuntu Forum and Askubuntu
Link 1 - https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1060268
Link 2 - https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/732677
Link 3 - Gives an error similar to "Sorry, installation of this driver failed."
Other links at the end of this Answer
Before continuing with any of the fixes, some users of laptops should know that their Laptops or Netbooks have a button of Function key that Enables/Disables the Wireless card. So please verify that it is in fact ENABLED because at least 2 users had me running with many options until they mentioned that they had a button with a wireless icon on it and it was off -.- . So again, please verify you have the button if you have a laptop/netbook and check to see if it is turned on.
There are however other models that will only turn the button on if you have the drivers installed. In both cases, before and after doing the steps provided here, check the Wireless button or switch in your laptop to see if it works.
Each way of installing it does not guarantee it will work perfectly until you do the proper test (That is why I mention the time above. This way you make sure that the driver you installed works correctly):
INSTALLING WITH ADDITIONAL HARDWARE (12.04 & Below and Kubuntu)
The drivers are actually in the Proprietary Drivers section
IN 12.04, 11.10 and 11.04 you can press the Dash Key or Super Key and type drivers like the following image:
IN 11.04 using Gnome you use the menu to find the Additional Drivers windows. Go to System -> Administration -> Additional Drivers or press ALT + F2 and type
In Kubuntu, go to System -> Additional Drivers in the Applications menu or press ALT + F2 and type
After the Additional Drivers windows opens, select the one that says Broadcom STA Wireless Drivers and click on the button below that says Install.
We have the same exact wireless card and driver that's why I say all of this. you do not need to do all that work to have it work. Just as simple as install and done.
Note that if you have ANY of the following wireless cards, this will be the common way to install them:
BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM4324, BCM4325, BCM4327, BCM4328
NOTE - If the above way fails, gives an error, does not install correctly, etc.. Follow the other ways of installing it below.
INSTALLING WITH ADDITIONAL HARDWARE (12.10+)
Type Software Sources or just Software in the Dash search box:
Select Software Sources and after it opens select Additional Drivers (Last TAB) then select the Proprietary Driver for your wireless card like in the image below:
Installing from Terminal/Synaptic (In case Software Sources/Additional Drivers does not work)
In some case installing with Software Sources or Additional Drivers will not work correctly. They will either not install or stop working after a couple of minutes. For this type of scenarios you can do the following (I recommend installing Synaptic for GUI management):
If you have Synaptic installed or going to do it from Terminal, then first:
Make sure you have uninstalled any drivers you have previously installed using Software Sources or Additional Drivers (Any of the 2 ways mentioned above) and have after that rebooted the PC. Packages like bcmwl-kernel-source, bcm-kernel-source and any other Broadcom packages (Like STA) should be uninstalled before continuing (For example:
sudo apt-get purge bcmwl-kernel-source). If you have already done this, then follow to step 2 if you are using Synaptic or step 3 if you are doing with the terminal, but still read step 2 to know which packages to install.
With Synaptic type b43 in the Search box:
From the Search results install b43-fwcutter and, depending on the Broadcom card you have you will additionally install the following package:
firmware-b43-installer - If you have BCM4306/3, BCM4311, BCM4318, BCM4321 or BCM4322 (only 14e4:432b)
firmware-b43-lpphy-installer - If you have the BCM4312 (with Low-Power aka LP-PHY)
firmware-b43legacy-installer - If you have the BCM4301, BCM4306/2 or BCM4306
NOTE: If you get an error similar to ERROR @wl_cfg80211_get_station : Wrong Mac address make sure you install the drivers as indicated above. For example for the BCM4321, this error is fixed if you install the drivers using the firmware-b43-installer package.
If you are doing it with the terminal then, taking into consideration the 3 additional packages mentioned in Step 2 and depending on your model you would then execute the following:
sudo apt-get install b43-fwcutter firmware-b43-installer
sudo apt-get install b43-fwcutter firmware-b43-lpphy-installer
sudo apt-get install b43-fwcutter firmware-b43legacy-installer
For cases in 11.04 and 11.10 the following will most likely work:
sudo apt-get install firmware-b43-installer
This will start downloading the packages and additionally download the Broadcom driver source (Couple of additional Megabytes). After installing you need to restart.
BCMWL KERNEL SOURCE
For some models, all of the above ways of installing the drivers will not work correctly. For some of this the following will solve their issues (Remember to remove ANY other previous Broadcom drivers installed and afterwards have rebooted the PC. If you have done so, then proceed:
sudo apt-get install bcmwl-kernel-source
NOTE - The
bcmwl-kernel-source package (For Broadcom STA Drivers) before 12.10 sometimes does not install the Linux Headers which gives an installation error if doing it via Additional Hardware or Jockey (Reason why I mention Synaptic).
So when installing it, you should check if it also installed the following packages:
linux-headers. If not then install each of them:
sudo apt-get install linux-libc-dev libc6-dev linux-headers-generic linux-headers.
If you have an old version of Ubuntu 12.04 or below then the following would be better for you:
sudo apt-get install linux-libc-dev libc6-dev linux-headers-generic-pae linux-headers.
Special Cases (BCM4313, BCM4321, BCM4312, BCM43142, BCM4365, BCM43228)
In some cases BCM4313 will still not work. For this cases, some users have reported the following to work:
First edit your blacklist.conf file:
sudo nano /etc/modprobe.d/blacklist.conf
Add the following to the file if not already there:
The opposite can also work which is to append a # just before the word blacklist bcm43xx so it looks like this:
# blacklist bcm43xx
If the problem persists, remove from the blacklist ndiswrapper (As mentioned in the comment below by acematrix). Reboot and then try to install them via ndiswrapper.
Other special cases for 4311, 4321 and 4312 by using modprobe or installing an additional package (Depending on Ubuntu version some will work, some will not). For example:
One case involved doing the following:
sudo apt-get install bcmwl-kernel-source dkms.
Reboot, then try to install the package as you normally would.
Another case involved removing some modules:
sudo modprobe -r b43 ssb wl
sudo modprobe wl.
Then reboot and test the wireless card.
Other case involved purging all related drivers have worked for some users:
sudo aptitude purge i8kutils bcmwl-kernel-source bcmwl5700-source bcmwl-modealiases broadcom-sta-common broadcom-sta-source b43-fwcutter
Then install the proprietary drivers by using the Additional Drivers.
BROADCOM WIRELESS 43142 (Also covers 4365)
As read before, make sure there are NO Broadcom drivers installed. Also install the Linux headers first:
sudo apt-get install linux-headers-generic build-essential dkms
Then download the DEB Package from here: wireless-bcm43142-dkms_220.127.116.11-1_amd64.deb to your Desktop or Download folder. After that, go to the where you left the downloaded package and double click on it to install. If Software Center gives you a warning do not worry about it and continue. If you want to do it via the terminal simply do:
sudo -i wireless-bcm43142-dkms_18.104.22.168-1_amd64.deb
Original Folder for the BCM43142 Driver
Alternative Answer which also works for BCM43142 by izx
There are also other cases where the SAME MODEL will work with one of the installations mentioned above, but the SAME MODEL on another PC will not work. It will however work with another installation method mentioned here. This is more of a Broadcom problem than an Ubuntu problem.
If you are having problems with BCM4365 not loading the module then please read THIS ANSWER
If you are having problems with this model and it's modules, feel free to read THIS ANSWER
Launchpad also offers a list of Bugs found with Broadcom related issues. If you still have issues after doing any of the mentioned solutions, please look here if your problem is already mentioned: https://bugs.launchpad.net/ubuntu/+source/bcmwl
If you have a Cisco/Linksys AE2500 USB Adapter (Which would use the BCM43236) you will have to do it via Ndiswrapper. The steps are as follow:
sudo apt-get install ndiswrapper-utils-1.9 ndiswrapper-source ndiswrapper-dkms ndiswrapper-common
Download the XP version of the AE2500 Windows Drivers. It will NOT work with any other version. I already tried Vista and 7. Only works with XP.
After Downloading and decompressing the file you should have a folder called XP. Go inside this folder and look for the
bcmwlhigh5.inf file. If you have Ubuntu 64-Bit do the following, if not skip to step 4. Double click on the file and paste the following after line 70:
The end result should look something like this:
AddService = Linksys_adapter_H, 2, Linksys_AE2500_H.Service.NTamd64, common.EventLog
; x86 - Win2k, WinXP
Save the changes and go to the same folder where the file resides using the terminal. Once in there type the following:
sudo ndiswrapper -i bcmwlhigh5.inf
If everything goes well, you can type
sudo ndiswrapper -l and you should see the following:
bcmwlhigh5 : driver installed
device (13B1:003A) present
If it shows like this, then do the following to create all configuration files for it (So the module loads correctly after a reboot):
sudo ndiswrapper -m
sudo ndiswrapper -ma
sudo ndiswrapper -mi
sudo modprobe ndiswrapper
You should now see in the Network Manager the Wireless device. For the moment it will only work in the 2.4 Ghz range. You can now reboot or even remove and insert and device and the system will detect the device correctly.
CONNECTION DROPS AFTER A FEW MINUTES OR HOURS OF USE
Some users suggest to set IPv6 to Ignore. Just go to Network Manager (The network icon on the top panel). Click on it then select Edit Settings. Then go to the Wireless connection you are using, select it. Now go to the last Tab in there that mentions IPv6 Settings. In the Method field select Ignore.
AFTER UPGRADE WIFI CARD STOPS WORKING ON LAPTOP / NOT DETECTED BY NETWORK MANAGER ON LAPTOP
Some users have mentioned that using
rfkill unblock all will solve the problem. Others simply turned the WiFi switch on their laptops off and then on again. For more information about
rfkill please read the answer by fossfreedom in rf kill unblock all DOES NOT WORK!
Lastly the Guide to all Broadcom Drivers found in Ubuntu which shows the following list (For more information, visit the link provided, it covers much more):
b43-phy0 ERROR: Fatal DMA error / b43-phy0 warning: Forced PIO
If you get the above DMA error or PIO Warning do the following:
sudo rmmod b43
sudo modprobe b43 pio=0 qos=0
If it works then add it to you RC files so it is executed every time you boot. You can change PIO to 1 if you need it.
wl - Proprietary Broadcom STA Wireless driver
For Chip ID BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228.This is also the recommended one if you happen to have problems with the BCM4727 which is really a BCM4313. For this driver there is information that you may also need the specific kernel header:
You should download the specific kernel headers (Some wireless cards require this):
sudo apt-get install linux-headers-generic
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install --reinstall bcmwl-kernel-source
sudo modprobe wl
b43 - Open source driver
For Chip ID BCM4306 (rev 03), BCM4309, BCM4311, BCM4312, BCM4318, BCM4322, BCM4331, BCM43224 and BCM43225.
b43legacy - Open source driver
For Chip ID BCM4301, BCM4306 (rev 02), and BCM4309.
brcmsmac (a.k.a brcm80211) - Open source driver from Broadcom (merged into kernel 2.6.37)
For Chip ID BCM4313, BCM43224 and BCM43225.
brcmfmac - Open source driver from Broadcom
For Chip ID BCM4329, BCM4330, BCM4334, BCM43235, BCM43236 and BCM43238.
rndis_wlan - Open source driver supporting wireless RNDIS chipsets
For Chip ID BCM4320
ndiswrapper - Use the Windows closed source drivers to activate your wifi card
For bcm43xx deprecated drivers (automatically blacklisted). DO NOT USE. Only included here for completeness.
TIPS - If you happen to have another Linux distro on the same PC or have Ubuntu installed with Windows, for cases where your only internet access was actually the wireless card, you can go to the other operating system, download the needed packages (Will take some time), put them in a special folder, then go back to Ubuntu and access that folder. Install all needed packages that you have downloaded. Reboot Ubuntu and if all was done correctly, you should have your Wireless card working in no time.