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

When I have installed the Ubuntu Lucid Lynx distribution on my Dell Latitude E4300 laptop, I was not able to connect to my Wireless network with WPA encryption enabled. This post will show to you how to fix the problem.

Important notice: Steps described in the post don’t work for all users, especially for x386 Ubuntu platforms. I have written new post which may solve the problem for all users and describes more generic fix of the problem. Please check the Broadcom WiFi adapter WPA access fix on Ubuntu II post first. If it doesn’t solve the problem, you can check steps bellow as last rescue variant.

The WiFi access is essential for me long time. On my Laptop, WiFi works fine for me with previous version of the Ubuntu distribution (Ubuntu 9.10 Karmic Koala).

But when I upgrade the OS to the latest version Ubuntu 10.04 Lucid Lynx, I was not able to connect to any WPA protected network anymore. This behavior points to an latest distro software related problem, because the hardware works well in previous Ubuntu version. I cannot found any solution on the Internet, then I have started my own exploration.

I have discovered that problem is caused by newer Broadcom STA wireless card kernel driver bcmwl-kernel-source 5.60.48.36 which is not able to handle the WPA encryption correctly and I have not found any newest version to fix the problem (It’s a shame for Ubuntu developers, because this well known problem is here since Lucid has been released at end of April 2010)

NOTICE: In the latest Ubuntu 10.10 Maverick Meerkat is included the same version of the Broadcom driver. Then I expect similar problems on this OS. Please check that and let me know current status on the Maverick with original Ubuntu driver, then with my fix if original driver doesn’t wok.

Because Linux Kernel Drivers can be compatible across the distributions, I have tried to install older package from previous Ubuntu 9.10 Karmic Koala where all worked fine. Then I installed the bcmwl-kernel-source_5.10.91.9 version and it works! All WPA and WPA2 related network connections started working again!

Then, to fix the problem by my way, you have to provide these steps:

1) Download the older package from this link: http://packages.ubuntu.com/karmic/bcmwl-kernel-source. Be sure that you downloaded correct version for your CPU architecture – i386 or amd64:

bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_amd64.deb
bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_i386.deb

Notice: The i386 version cannot be compiled on Lucid. Read below about fix of the compile problem.

2) Remove the original package:

sudo apt-get remove bcmwl-kernel-source

3) Install the downloaded package:

cd ~/Downloads/
sudo dpkg -i package_for_your_arch.deb

I expect that you downloaded the package to the default Download sub-directory of your home folder, otherwise modify the path in cd command to directory where you have the package downloaded.

Instead of the package_for_your_arch.deb use correct package name:

  • bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_amd64.deb for am64 architecture
  • bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_i386.deb for i386 architecture.

Some people noticed me in comments that previous command doesn’t work.

The main problem is on i386 platform, where compilation of the wl.ko module fails. I have to notice here, that my howto has been tested on amd64 platform and here all works fine if all necessary packages are installed. Then, my recommendation is to use amd64 platform if possible. The Ubuntu system works great in 64 bit edition and brings lot of improvements here, then here is no reason to use 32bit platform if you have 64bit capable CPU. If you cannot use 64bit platform, then use my fixed package below.

If you are getting something like lines below during the build process:

bcmwl-kernel-source depends on dkms; however:
Package dkms is not installed.

then you do not have all necessary packages for build installed. To fix this, provide those steps:

sudo apt-get install patch
sudo apt-get install fakeroot
sudo apt-get install dkms

This will solve the problem and package will be correctly installed on amd64 platform. If the system notices other missing packages, install them too.

If you have the i386 platform, the package cannot be built correctly here because an include statement is missing in package sources, exactly in wl_linux.c file. During the build you can see this:

Error! Bad return status for module build on kernel: 2.6.32-24-generic (i686)
Consult the make.log in the build directory
/var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.

To fix this problem, you have to add

#include

as the first #include statement to the beginning of the file wl_linux.c.

I have to say thank you to my friend and Linux Kernel Drivers expert Frantisek Hrbata, author of the RedirFS http://www.redirfs.org subsystem, who pointed me to the core of the problem.

The build fix is trivial on the source code layer, just add a line to the source file, but to make the fixed driver version comfortable to the users, i had to build own deb package with this fix. You can download it here:

bcmwl-kernel-source_5.10.91.9+bdcom-zpfix-0ubuntu4_i386.deb

I have no hardware with Broadcom and i386 Lucid Lynx installed and do not drive huge QA department  to verify my fix. I have checked only build process of this package in virtual machine. So please try if it really helps and let me know by comment.

4) As last step, you have to lock the old package version to protect this against automatic upgrade of your system in the future.

I have tried to use terminal command:

sudo aptitude hold bcmwl-kernel-source

but it doesn’t works for me clearly and broadcom driver has been offered for upgrade during classical upgrade maintenance.

Then I have used GUI Synaptic tool:

Open the Synaptic Package Manager From system menu System->Administration->Synaptic Package Manager

Type broadcom keyword to the Quick Search window

Find the bcmwl-kernel-source item in list and highlight it. Then in Synaptic menu select Package->Lock Verison.

Broadcom Version Locked

That’s all. Now, after reboot of your host your WiFi network will works clearly. Please let me know if it works for you or not by e-mail or comment.

Notice: Written from my Ubuntu Lucid Lynx Laptop connected by WPA WiFi network…


Posted by:

Zdenek Polach

22 Comments

  1. lucas -  September 1, 2010 - 22:34

    Hi, I’m pretty new in ubuntu 10.04 netbook i386 release and I’m experiencing the same problem as you. My Broadcom Wireless card does not works. It doesn’t list any wifi or else…
    I’ve tried your guide but this error appears.

    Package ‘dkms’ is not installed
    Package ‘linux-libc-dev’ is not installed
    Package ‘libc6-dev’ is not installerd

    Thanks in advance for any help you can give me.

    Reply
  2. Zdenek -  September 2, 2010 - 09:00

    @lucas
    It can be caused by netbook edition.

    You have to install those missing packages

    sudo apt-get install dkms
    sudo apt-get install linux-libc-dev
    sudo apt-get install libc6-dev

    hope this helps

    Reply
  3. jarkko -  September 7, 2010 - 22:12

    Worked great for Dell Latitude D620. Thanks!

    Reply
  4. Kat -  September 10, 2010 - 03:21

    This worked for me in lucid. I have a BCM4328 card.

    Thanks for the help!

    Reply
  5. CeilingRepairman6872 -  September 19, 2010 - 09:11

    A lot of people are referring to this page who are trying to get the Netgear WNDA3100v2 USB wireless adapter to work (it ships with the broadcom driver bcmwlhigh5). After installation of the bcmwl-kernel-source, it asked me to check the make.log as there seemed to be compile errors. The text is given below.

    —————————————————————————-
    me@deleuze:~/downloads> sudo apt-get remove bcmwl-kernel-source
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    The following packages were automatically installed and are no longer required:
    sdparm valgrind libgtkhtml2-0 libc6-dbg kdevplatform1-libs lcov libsublime1
    Use ‘apt-get autoremove’ to remove them.
    The following packages will be REMOVED:
    bcmwl-kernel-source
    0 upgraded, 0 newly installed, 1 to remove and 1 not upgraded.
    After this operation, 2,589kB disk space will be freed.
    Do you want to continue [Y/n]?
    (Reading database … 409071 files and directories currently installed.)
    Removing bcmwl-kernel-source …
    Removing all DKMS Modules
    Done.
    update-initramfs: deferring update (trigger activated)
    Processing triggers for initramfs-tools …
    update-initramfs: Generating /boot/initrd.img-2.6.32-24-generic-pae

    me@deleuze:~/downloads> sudo dpkg -i bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_i386.deb
    Selecting previously deselected package bcmwl-kernel-source.
    (Reading database … 409027 files and directories currently installed.)
    Unpacking bcmwl-kernel-source (from bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_i386.deb) …
    Setting up bcmwl-kernel-source (5.10.91.9+bdcom-0ubuntu4) …
    Adding Module to DKMS build system
    Doing initial module build

    Error! Bad return status for module build on kernel: 2.6.32-24-generic (i686)
    Consult the make.log in the build directory
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.
    Installing initial module

    Error! Could not locate wl.ko for module bcmwl in the DKMS tree.
    You must run a dkms build for kernel 2.6.32-24-generic (i686) first.
    Done.
    update-initramfs: deferring update (trigger activated)

    Processing triggers for initramfs-tools …
    update-initramfs: Generating /boot/initrd.img-2.6.32-24-generic-pae

    me@deleuze:~/downloads> cat /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/make.log
    DKMS make.log for bcmwl-5.10.91.9+bdcom for kernel 2.6.32-24-generic (i686)
    Sat Sep 18 23:57:30 PDT 2010
    make: Entering directory `/usr/src/linux-headers-2.6.32-24-generic’
    LD /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/built-in.o
    CC [M] /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/src/wl/sys/wl_linux.o
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/src/wl/sys/wl_linux.c: In function ‘wl_free’:
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/src/wl/sys/wl_linux.c:702: error: implicit declaration of function ‘schedule’
    make[1]: *** [/var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/src/wl/sys/wl_linux.o] Error 1
    make: *** [_module_/var/lib/dkms/bcmwl/5.10.91.9+bdcom/build] Error 2
    make: Leaving directory `/usr/src/linux-headers-2.6.32-24-generic’
    ———————————————————————————————-

    Any ideas? Thanks for your posting!

    JK

    Reply
  6. Mauro Chojrin -  September 22, 2010 - 02:30

    Hi:

    I followed your instructions but got this message:

    Error! Bad return status for module build on kernel: 2.6.32-24-generic (i686)
    Consult the make.log in the build directory
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.
    Installing initial module

    Error! Could not locate wl.ko for module bcmwl in the DKMS tree.
    You must run a dkms build for kernel 2.6.32-24-generic (i686) first.

    What is a dkms build for the kernel? How do I do it? Thanks!

    Reply
  7. Muc -  September 22, 2010 - 14:08

    Hi:

    I followed your instructions but got this error message:

    Error! Bad return status for module build on kernel: 2.6.32-24-generic (i686)
    Consult the make.log in the build directory
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.
    Installing initial module
    Error! Could not locate wl.ko for module bcmwl in the DKMS tree.
    You must run a dkms build for kernel 2.6.32-24-generic (i686) first.

    I guess I skipped a step, but I can’t really tell… Thanks!

    Reply
  8. Kate -  October 8, 2010 - 00:19

    Having pretty much the same problem as the last couple folk:

    Error! Bad return status for module build on kernel: 2.6.32-25-generic (i686)
    Consult the make.log in the build directory
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.
    Installing initial module

    Error! Could not locate wl.ko for module bcmwl in the DKMS tree.
    You must run a dkms build for kernel 2.6.32-25-generic (i686) first.

    So I
    m bumping this in hopes of some sort of clue, which I sadly lack.

    Thank you!

    Reply
  9. Zdenek -  October 11, 2010 - 12:53

    Hallo all with compile problem on i386 platform. I have updated the post to fix compilation by own package.
    Please check it out.

    I can’t check the fix directly on my HW, because i have installed 64 bit lucid edition and here all works well. Please let me know if it helps to someone with i386 platform and if not, please try to specify your Broadcom card type.

    Reply
  10. Kate -  October 11, 2010 - 16:58

    Compiled fine, that all went well, but I still don’t get anything from the wireless adapter itself. Not sure what else to try, as I’m not getting any error messages or anything to try to hang a clue off of. Thank you for your efforts, though, and I hope your fix worked for everyone else!

    Reply
  11. Zdenek -  October 11, 2010 - 18:33

    Kate :

    Compiled fine, that all went well, but I still don’t get anything from the wireless adapter itself. Not sure what else to try, as I’m not getting any error messages or anything to try to hang a clue off of. Thank you for your efforts, though, and I hope your fix worked for everyone else!

    Kate, can you please specify the adapter which are you using? Or Laptop model ? Maybe the problem is here…

    Reply
  12. czarjosh -  October 12, 2010 - 03:07

    Thank you so much for this. I do not have it working yet. Here is my current error.

    sudo dpkg -i bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_amd64.deb
    (Reading database … 124756 files and directories currently installed.)
    Preparing to replace bcmwl-kernel-source 5.10.91.9+bdcom-0ubuntu4 (using bcmwl-kernel-source_5.10.91.9+bdcom-0ubuntu4_amd64.deb) …
    Removing all DKMS Modules
    Done.
    Unpacking replacement bcmwl-kernel-source …
    Setting up bcmwl-kernel-source (5.10.91.9+bdcom-0ubuntu4) …
    Adding Module to DKMS build system
    Doing initial module build

    Error! Bad return status for module build on kernel: 2.6.35-22-generic (x86_64)
    Consult the make.log in the build directory
    /var/lib/dkms/bcmwl/5.10.91.9+bdcom/build/ for more information.
    Traceback (most recent call last):
    File “/usr/share/apport/package-hooks/dkms.py”, line 57, in
    report.write(open(apport.fileutils.make_report_path(report), ‘w’))
    IOError: [Errno 2] No such file or directory: ‘/var/crash/bcmwl-kernel-source.0.crash’
    Installing initial module

    Error! Could not locate wl.ko for module bcmwl in the DKMS tree.
    You must run a dkms build for kernel 2.6.35-22-generic (x86_64) first.
    Done.
    update-initramfs: deferring update (trigger activated)
    Processing triggers for initramfs-tools …
    update-initramfs: Generating /boot/initrd.img-2.6.35-22-generic

    I am running 10.10. Dell Vostro 1000.
    $ lspci -vnn | grep 14e4
    05:00.0 Network controller [0280]: Broadcom Corporation BCM4311 802.11b/g WLAN [14e4:4311] (rev 01)
    08:00.0 Ethernet controller [0200]: Broadcom Corporation BCM4401-B0 100Base-TX [14e4:170c] (rev 02)

    Reply
  13. Zdenek -  October 12, 2010 - 09:11

    @czarjosh
    Hallo czjarosh. You are using different kernel 2.6.35, but Lucid uses 2.6.32.. Maybe it is the problem. Do you have Maverick or Lucid ?

    Reply
  14. Viktor Basso -  October 12, 2010 - 12:46

    @czarjosh
    I got same problem as him.
    I really want to use the old drivers, i got heafty packet loss with current one on ubuntu 10.10 :/

    Reply
  15. Kate -  October 13, 2010 - 00:12

    The adapter is a Netgear WNDA3100; my laptop is a Dell Latitude D600. Thank you!

    Reply
  16. CeilingRepairman6872 -  October 17, 2010 - 06:42

    @CeilingRepairman6872
    Zdenek, I received your email about the additions to step (3). The build was successful, although unfortunately, WPA security still didn’t work and it may be the kernel version (2.6.32-24-generic) or some other factor. Like @Kate below, I’m using a Netgear WNDA3100, which uses the broadcom drivers. It is a USB stick so it may interface with linux differently than a network card.

    Since it is my own router, I ended up changing the security to use WEP instead of WPA and my connection is great, although I understand WEP is not completely secure. Thanks for your help!

    Reply
  17. Roberta -  November 7, 2010 - 05:26

    I have an Acer 5820T and have tried to get my Broadcom WiFi working under Lucid. I have tried a variety of kernels and none have worked: 2.6.32, 2.6.34- 020634, 2.6.35-7. I have tried the fixes you have suggested but it has not worked. I have also tried using Maverick but only the ethernet works. My computer is set up as dual boot with Windows 7. In Win 7 both Wifi and ethernet work just fine. Any suggestions on what I can try next?

    Reply
  18. Tal Amir -  November 22, 2010 - 12:59

    Zdenek, thank you so much.
    After spending a few months not being able to connect to wirteless networks except on rare occations, and having spent so many time searching the internet for solutions to my problem, your solution finally did the trick. Right after switching to the older version of the driver everything started working again – including after resuming from suspend.

    I just with the broadcom or ubuntu guys or whoever is responsible for this driver will release a new fixed version, and that generally the ubuntu updates will be more reliable.

    Thanks again, Tal

    Reply
  19. Zdenek -  December 2, 2010 - 10:19

    I have added new post related to the Broadcom WPA problem fix to my site. It contains more generic way how to solve the problem. Please check it and let mi know if it helps. Thanks to all who helped me to find the solution

    Reply
  20. Samuel -  March 7, 2011 - 19:23

    @CeilingRepairman6872
    Hi, I have the same problem trying to get a Netgear WNDA3100v2 USB wireless adapter working. What exactly would that addition to step 3 be?

    Reply
  21. Zdenek -  March 7, 2011 - 22:50

    @Samuel
    Hi Samuel, please check my new post – link available on beginning of this post or on site homepage. It contains info if the driver support your hardware and additional info for fix broadcom issue.

    Hope this helps.

    Zdenek

    Reply

Leave A Comment

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

Back to Top