scroll-behavior: smooth;

Zdenek Polach

HowTo Fix Broadcom WiFi Adapter WPA Network Access on Ubuntu 10.04 Lucid Lynx


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 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 from my Laptop where i Used the old driver before.

So, at first is necessary to verify, if the bcmwl-kernel-source 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 package by Synaptic or apt-get and reboot again.

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

sudo 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 ieee80211crypttkip 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:

sudo 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:

sudo 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.

© Zdenek Polach - Last update 21.12.2020 18:02.