Broadcom WiFi adapter WPA access fix on Ubuntu II

In my previous post related to the Broadcom WiFi adapters, I have explained a way how to fix the WPA on Ubuntu Lucid Lynx. In reaction to the post I have received many responses from users, many positive, but also negative. I have tried to explore the issue deeply and then I found more pieces of information. This post will summarize new info about the problem and maybe offer more general solution.

The main problem with my previous fix described in the post HowTo Fix Broadcom WiFi Adapter WPA Network Access on Ubuntu 10.04 Lucid Lynx was that it works only on x64 related systems, and additionally not for all Broadcom adapters.

On x386 platform the old driver cannot be compiled correctly due missing #include statement in the source code.I have modified my post and provide own package with correct fix for the issue. This new package can be compiled clearly on x386 platform, but the compiled driver doesn’t solve the WPA issue on the platform.

Due this I tried to create my own new driver package from Broadcom sources available on the Broadcom site.

The idea was that other distributions are not affected by the WPA issue, then problem have to be in Ubuntu, and I could check if the problem is directly inside the original bcmwl-kernel-source 5.60.48.36 Ubuntu package. Due this process I have discovered that problem can be in improper kernel modules loaded -> I didn’t expect that Ubuntu developers will missed this important info from Broadcom sources documentation:

If you have loaded ssb or b43 modules in your kernel, then 5.60 driver will not works correctly.

This sentence gives to me new point of view to the problem and  I tried to verify this fact.  Finally, I have been successful and in those days I’m able to connect by WPA correctly with the  LATEST drivers bcmwl-kernel-source 5.60.48.36 from my Laptop where i Used the old driver before.

So, at first is necessary to verify, if the bcmwl-kernel-source 5.60.48.36 driver supports your piece of hardware. To do this please use those steps:

In the cosole, please type:

sudo lspci -n | grep 14e4

It will check the PCI bus to Broadcom vendor hardware presence (The Broadcom vendor ID is 14e4). In my case I get result:

0c:00.0 0280: 14e4:432b (rev 01)

For our verification is important the next value after the colon, in my case 432b

Next table contains list of device IDs supported by the driver:

          BRCM		    PCI		  PCI		  Dell
	  Product Name	  Vendor ID	Device ID	Product ID
          -------------	 ----------	---------   	-----------
          4311 2.4 Ghz	    0x14e4	0x4311  	Dell 1390
          4311 Dualband	    0x14e4	0x4312  	Dell 1490
          4311 5 Ghz	    0x14e4    	0x4313
          4312 2.4 Ghz	    0x14e4	0x4315  	Dell 1395
          4313 2.4 Ghz	    0x14e4	0x4727 		Dell 1501
          4321 Dualband	    0x14e4	0x4328  	Dell 1505
          4321 Dualband	    0x14e4	0x4328  	Dell 1500
          4321 2.4 Ghz	    0x14e4	0x4329
          4321 5 Ghz        0x14e4	0x432a
          4322 	Dualband    0x14e4	0x432b  	Dell 1510
          4322 2.4 Ghz      0x14e4 	0x432c
          4322 5 Ghz        0x14e4 	0x432d
          43224 Dualband    0x14e4	0x4353  	Dell 1520
          43225 2.4 Ghz     0x14e4	0x4357

 

If you will find your value in the table, then driver officially supports your hardware. If not, result of use the driver is unclear. In my case the value 432b is in the table and means the Dell 1510 card (you have strip the 0x prefix from the DeviceID to compare table values).

 

Based on the previous check result and your decision, you can continue with next steps to try fix your WPA problem.

At first please remove any of my Broadcom driver packages or old Ubuntu Broadcom  driver packages (use apt-get or Synaptic to do that) and reboot computer.

After the reboot install the latest Ubuntu bcmwl-kernel-source 5.60.48.36 package by Synaptic or apt-get and reboot again.

Now check the wrong modules presence on your Ubuntu system by this console command:

lsmod  | grep "b43|ssb|wl"

If you will find any of those modules in memory, you have to remove them by those commands:

sudo rmmod b43
sudo rmmod ssb
sudo rmmod wl

Now, we have clean playground to finalize working WPA solution. The wl.ko driver module needs additional modules to load into the kernel space. To do that, use this command:

sudo modprobe ieee80211_crypt_tkip

If this command will be unsuccessful, then we have to try different module with same necessary functionality:

sudo modprobe lib80211

But on my Ubuntu Lucid or Maverick, the ieee80211_crypt_tkip module is right way.

Finally, we  have to insert the wl.ko driver module to the Linux kernel by command:

sudo modprobe wl

Alternative command can be this:

sudo insmod wl.ko

Now we can check improper modules presence in the kernel space again:

lsmod  | grep "b43|ssb|wl"

If only the wl module is loaded now,  the wireless can be functional after several seconds.

Ok, if all went by right way, now you have functional WiFi connection. To make the fix permanent, we have to blacklist unwanted modules to force the Ubuntu system to forbid loading them again during hardware detection process. To do that, use those commands:

echo "blacklist ssb" | sudo tee -a /etc/modprobe.d/blacklist.conf
echo "blacklist b43" | sudo tee -a /etc/modprobe.d/blacklist.conf

Now you can reboot your system and check if only expected module wl.ko is loaded:

lsmod  | grep "b43|ssb|wl"

If you get result wl only and WiFi connection works well, you have fixed your Ubuntu to access wireless networks clearly.

If the wl module is not loaded after reboot, you can force it to load by this command:

echo wl | sudo tee -a /etc/modules

It forces the wl driver module to load after system reboot.

I’ll be happy if you let me know result of the fix on your system by comment or e-mail. Happy networking.

Posted by:

Zdenek Polach

13 Comments

  1. Panayot -  December 27, 2010 - 19:56

    Hi, I use Ubuntu 10.10 and followed your tutorial. I have now both wired and wireless working and this is how it went:

    p@panayot:~$ lspci |grep Broadcom
    03:00.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)
    0c:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01)
    p@panayot:~$ lsmod |grep “b43|ssb|wl”
    p@panayot:~$ sudo modprobe ieee80211_crypt_tkip
    [sudo] password for p:
    FATAL: Module ieee80211_crypt_tkip not found.
    p@panayot:~$ sudo modprobe lib80211
    p@panayot:~$ sudo modprobe wl
    p@panayot:~$ lsmod |grep “b43|ssb|wl”
    ssb 39288 1 b44
    wl 1959533 0
    lib80211 5058 2 lib80211_crypt_tkip,wl
    p@panayot:~$ sudo rmmod ssb
    ERROR: Module ssb is in use by b44

    Thank you for writing this!

    Reply
  2. DojoMouse -  January 11, 2011 - 11:32

    Thank you so much for this. I have been searching for this fix for months. Awesome. I will definitely be pointing people to this minor stroke of genius.

    INSTAFIX!!!

    Reply
  3. mauricebis -  January 12, 2011 - 11:59

    @Panayot
    Well, I’ve the same experience but did you get it working? I removed b44 instead of b43 as stated in the initial article. The thing is that if I reload the wl module, it comes back with ssb and b44. So what should I do? Thanks for any help.

    Reply
  4. Zdenek -  January 13, 2011 - 09:57

    @mauricebis

    Hi mauricebis.

    At first, please check if your card is supported by the 5.60.48.36 driver.
    If yes, provide steps in this post, especially you need blacklist improper modules. The reason of load these modules is in bad HW detection algorithm in Ubuntu, when bad modules are loaded during boot process.

    Let us know results.

    Reply
  5. agentProgrammer -  February 18, 2011 - 21:33

    hi,
    I followed your step by step tutorial how to resolve the problem of broadcom in ubuntu. But my wifi is still not working on my Dell Studio 1450. Here is the result of what i did:

    root@jerome-Studio-1450:~# lspci -n | grep 14e4
    02:00.0 0200: 14e4:1698 (rev 10)
    root@jerome-Studio-1450:~# lsmod | grep “b43|ssb|wl”
    wl 1965231 0
    iwlagn 202721 0
    iwlcore 146875 1 iwlagn
    mac80211 266657 2 iwlagn,iwlcore
    cfg80211 170293 3 iwlagn,iwlcore,mac80211
    lib80211 6175 1 wl
    root@jerome-Studio-1450:~# rmmod b43
    ERROR: Module b43 does not exist in /proc/modules
    root@jerome-Studio-1450:~# rmmod ssb
    ERROR: Module ssb does not exist in /proc/modules
    root@jerome-Studio-1450:~# modprobe wl
    root@jerome-Studio-1450:~# modprobe ieee80211_crypt_tkip
    FATAL: Module ieee80211_crypt_tkip not found.
    root@jerome-Studio-1450:~# modprobe lib80211
    root@jerome-Studio-1450:~# modprobe wl
    root@jerome-Studio-1450:~# insmod wl.ko
    insmod: can’t read ‘wl.ko’: No such file or directory
    root@jerome-Studio-1450:~# lsmod | grep “b43|ssb|wl”
    wl 1965231 0
    iwlagn 202721 0
    iwlcore 146875 1 iwlagn
    mac80211 266657 2 iwlagn,iwlcore
    cfg80211 170293 3 iwlagn,iwlcore,mac80211
    lib80211 6175 1 wl
    root@jerome-Studio-1450:~# echo “blacklist ssb” | sudo tee -a /etc/modprobe.d/blacklist.conf
    blacklist ssb
    root@jerome-Studio-1450:~# echo “blacklist b43” | sudo tee -a /etc/modprobe.d/blacklist.conf
    blacklist b43
    root@jerome-Studio-1450:~# echo wl | sudo tee -a /etc/modules
    wl

    Is there something wrong for what i did? or something that i missed?

    After I followed your tutorial and I disconnect my wired connection I have an Internet but when I reboot my machine, I lost my internet again. I googled a lot how to solve this broadcom problem on ubuntu but I’m still not lucky yet.

    I hope you can help me. Thanks in advance 🙂

    jerome

    Reply
  6. Ochiuz Catalin -  March 3, 2011 - 19:08

    This is great! it totaly fixed my WPA2 Personal. I’m on a Dell Inspiron 1501 and Ubuntu 10.04.2 with am incredibly stuborn Broadcom… now it works like a charm.
    One note: I also did a
    ” sudo rmmod b44 ”
    because of a error stopping ssb,
    ” echo “blacklist b43″ | sudo tee -a /etc/modprobe.d/blacklist.conf ”
    and an extra restart in the end: evrika!

    Reply
  7. Roger -  March 14, 2011 - 00:09

    im still getting my network as disabled…. i’ve tried everything….
    *-network DISABLED
    description: Wireless interface
    product: BCM4311 802.11b/g WLAN
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:01:00.0
    logical name: eth1
    version: 01
    serial: 00:1a:73:2f:6b:f7
    width: 32 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
    configuration: broadcast=yes driver=wl0 driverversion=5.60.48.36 latency=0 multicast=yes wireless=IEEE 802.11bg
    resources: irq:19 memory:b3000000-b3003fff

    Reply
  8. George Fernandez -  March 29, 2011 - 10:06

    Many thanks, this resolved my problem and now finally have an wireless connection.

    Reply
  9. Erick -  April 15, 2011 - 15:59

    I’m running Ubuntu 10.10 on a desktop with WNDA3100v2 wireless adapter. This thread is the closest I’ve come to any type of solution but I’m still not able to connect in WPA/WPA2 is there anything that can be done? I know a lot of people with the WNDA3100v2 adapter are having problems. Any help would be appreciated

    Reply
  10. satya -  July 13, 2011 - 06:27

    thanks bro. this post worked like a charm for me

    Reply
  11. zasq -  October 15, 2011 - 10:57

    Hi! Has anyone tried this already in oneiric? bcmwl-kernel-source 5.60.48.36 worked for me in natty but not in oneiric. Any suggestions? Thank you!

    Reply

Leave A Comment

Your email address will not be published. Required fields are marked (required):

Back to Top