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:
|
|
It will check the PCI bus to Broadcom vendor hardware presence (The Broadcom vendor ID is 14e4). In my case I get result:
|
|
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:
|
|
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:
|
|
If you will find any of those modules in memory, you have to remove them by those commands:
|
|
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:
|
|
If this command will be unsuccessful, then we have to try different module with same necessary functionality:
|
|
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:
|
|
Alternative command can be this:
|
|
Now we can check improper modules presence in the kernel space again:
|
|
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:
|
|
Now you can reboot your system and check if only expected module wl.ko is loaded:
|
|
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:
|
|
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.