Wifi fix in Ubuntu 12.04/12.10/13.04 (Broadcom 4313) – 3.4/3.8 kernel

             Ruby Questions ? : http://wizpert.com/kishoreneelamegam

3.2 Kernel

Had this wifi issue where my error was “wireless is disabled by hardware switch”. In my HP dv6, F12 is the wifi hardware switch. I pressed the switch F12 with no effect. There was nothing in the bios to fix as well. Stumbled across this link, and it worked like a charm.

$ lspci -vvnn | grep 14e4
0a:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
$ sudo apt-get install bcmwl-kernel-source
$ sudo modprobe -r b43 ssb wl
$ sudo modprobe wl

Now my F12 switch works as intended. Here is the link for kernel supported broadcom wireless driver

3.4 Kernel

The reason for the upgrade ? Why 3.4 ? I use Nvidia 630M optimus chipset, and I found frequent freeze of the X windowing system. If you find such hang/freeze, then ditch 3.2 kernel and move on to 3.4 kernel. The 3.2 consumes more power, lots of heat (when you work from home, no air con) you can really feel it. I was forced to upgrade to the 3.4 ubuntu kernel using this process. After the upgrade the wireless failed to work. I noticed an error as follows :

CC [M] /var/lib/dkms/bcmwl/5.100.82.38+bdcom/build/src/wl/sys/wl_linux.o
/var/lib/dkms/bcmwl/5.100.82.38+bdcom/build/src/wl/sys/wl_linux.c:43:24: fatal error: asm/system.h: No such file or directory.

To fix the above problem, follow the link here

Download the patched bcmwl* deb, and install it. After you install it, verify the following.

$ cat /etc/modprobe.d/blacklist.conf

# replaced by b43 and ssb.
blacklist bcm43xx
blacklist ssb
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist mac80211
blacklist cfg80211
blacklist brcmutil

The brcmsmac is an opensource equivalent for broadcom 4313 wl driver. I couldn’t get it to work using the 3.4 kernel. brcmsmac kernel module uses bcma, mac80211, cfg80211, brcmutil. (When you do a lsmod you’ll see that). So if you don’t want to use brcmsmac, then blacklist all of these..bcma, mac80211, cfg80211, brcmutil. Now verify to see what is the loaded kernel driver in use. as bcma comes part of the 3.4 kernel, it will be listed in kernel modules. and this is fine. Make sure that the bcma modules as shown above are blacklisted.

$ sudo lsmod  | grep "b43\|ssb\|bcma\|wl"
wl                     2573568
lib80211               14381  2 lib80211_crypt_tkip,wl

$ lspci -vv | grep -i "bcm\|brcmsmac\|wl"
0a:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless L$
Subsystem: Hewlett-Packard Company Device 1795
Kernel driver in use: wl
Kernel modules: wl, bcma
Subsystem: Hewlett-Packard Company Device 1818

In the 3.4 Kernel HP DV6 – 7010TX, I did find that even though you have everything done like above, disabling bluetooth, disables wireless as well. Duh !. after beating black and blue and looking at logs for several hours I found that if you still have problems saying “wireless is disabled by hardware switch“, try turning off/on your bluetooth thingy works.

3.8 Kernel.

12.04

The 3.8  ubuntu kernel  has the latest drivers for the nouveau (NVIDIA GEFORCE 630M). That is the reason to upgrade to 3.8. Also the power consumption is lower. With frequent power outages here, if your batteries can travel an extra mile, who wouldn’t want that. This article has all the  3.8 features. I upgraded my 12.04 to 3.8 kernel using this process.  I forgot to remove my old bcmwl-kernel-source (broadcom 4313 driver). This resulted in an error, and my wireless didn’t work. I scratched my head again 🙂 I logged in back, and decided to give the opensource bcma driver a try.  But I already had it blacklisted. So here is what I did. Essentially it removes the “Broadcom’s properitary driver wl/brcmsmac” and installs the opensource bcma driver.

$ modprobe -r brcmsmac

$ modprobe bcma

Wow – Guess what, it works like a charm. But apparently the hardware switch (F12) in my case doesn’t turn the wireless on/off. The connection strength fluctuates which results in speedtest providing lower bandwidth at times.

12.10/13.04

I couldn’t stop here, I went ahead and upgraded my system to 12.10 and now to 13.04. The usual

$ sudo update-manager -d

I was curious to see if the broadcom properitary driver provided better results in 13.04. I did the following. The below works good in 12.10 (quantal), 13.04(raring)

$ sudo apt-get remove bcmwl-kernel-source
$ sudo apt-get purge bcmwl-kernel-source
$ sudo apt-get autoremove

Right now my /etc/modprobe.d/blacklist.conf has the following.

# replaced by b43 and ssb.
blacklist bcm43xx
blacklist ssb
blacklist b43legacy
#bcma uses mac80211, cfg80211, brcmutil
#let us use the opensource driver.hence blacklist brcmsmac
#blacklist bcma
#blacklist mac80211
#blacklist cfg80211
#blacklist brcmutil
#we arenot going to use the properietary wl. hence blacklist brcmsmac
blacklist brcmsmac

I rebooted my system. Navigated to “Software Sources”, And selected the “Broadcom 4313…” checkbox. I installed the driver back. broadcom I Installed my old blacklist.conf back.

# replaced by b43 and ssb.
blacklist bcm43xx
blacklist ssb
blacklist b43legacy
blacklist bcma
blacklist brcmsmac
blacklist mac80211
blacklist cfg80211
blacklist brcmutil

Rebooted, it work great.

Advertisements

19 thoughts on “Wifi fix in Ubuntu 12.04/12.10/13.04 (Broadcom 4313) – 3.4/3.8 kernel

  1. Pingback: Борьба с Минтом во имя вайфая | kot9pko`s блог о Linux`ах

  2. I updated via command line and noticed strange error when the kernel got updated.
    As I tried, WiFi do work with the initial kernel.

    Strangely, installing linux-headers and build-essential + reboot fixed the problem.

  3. Hi.
    Just updated to 3.8 on 12.10 due to an issue with sandy bridges chipset issue, but now my wireless is completely fried, getting a connection every so often but not for long. Have put question on forums but no luck atm. Any ideas, especially when can’t update anything via internet

    • Dear Cameron,
      Can you share the details of your wireless controller lspci -vvnn (or) your laptop model ?
      Are you using a Ralink or broadcom model ?

      Usually when my wireless is messed up, I connect to to the router using a wired connection.
      Also, out here we use USB data cards as an alternate to connect to the network.
      On a side node, I have problems with ralink, atheros in two other laptops (DELL Inspiron/HP G series)
      Broadcom 4313 is super reliable using the broadcom STA (wl module)

      • Hey. Thanks for the help, have a Broadcom 4313. Followed directions and didn’t work, then realised later I had put password in incorrectly after changes!

  4. Pingback: Wifi not working after updates 12.04 | Ubuntu InfoUbuntu Info

  5. Pingback: Wifi not working after updates 12.04 | WyldePlayground.netWyldePlayground.net -

  6. Pingback: Wifi not working after updates 12.04 | James n Sheri.comJames n Sheri.com

  7. Hi, i’m using HP 630 with Network Controller Atheros, AR9285. my wireless hasn’t come on since I installed Ubuntu 13.04. any help

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s