Skip to content

March 28, 2011

10

Wireless BCM4312 on Ubuntu with 2.6.38 and 2.6.39 kernel

Broadcom Chipset BCM4312

My Vostro 1510 comes with an on-board wireless miniPCI card but it does not work “out of the box” with Ubuntu, even with the latest 2.6.39 kernel. The only option that works for me is the binary hybrid blob driver provided by Broadcom, but even that is out of date. They need help in order to work with 2.6.36 and upwards and I have a patch for that.

Chipsets supported by “Broadcom’s IEEE 802.11a/b/g/n hybrid Linux® device driver” are: BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, and BCM43225, BCM43227 and BCM43228.

The my exact chipset from lspci command:

Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)


Below is the error I get with v5_100_82_38 from Broadcom when compiling against 2.6.38 and 2.6.39:

bcurtis@zwartevogel:~/Downloads/wl.org$ make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-headers-2.6.38-020638-generic’
LD /home/bcurtis/Downloads/wl.org/built-in.o
CC [M] /home/bcurtis/Downloads/wl.org/src/shared/linux_osl.o
CC [M] /home/bcurtis/Downloads/wl.org/src/wl/sys/wl_linux.o
/home/bcurtis/Downloads/wl.org/src/wl/sys/wl_linux.c: In function ‘wl_attach’:
/home/bcurtis/Downloads/wl.org/src/wl/sys/wl_linux.c:485:3: error: implicit declaration of function ‘init_MUTEX’
make[2]: *** [/home/bcurtis/Downloads/wl.org/src/wl/sys/wl_linux.o] Error 1
make[1]: *** [_module_/home/bcurtis/Downloads/wl.org] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-020638-generic’
make: *** [all] Error 2

To get your wireless adapter working again:

  1. Download the 32 or 64-bit version:
    http://www.broadcom.com/support/802.11/linux_sta.php
  2. Download my patch:
    broadcom-sta_4_kernel-2.6.38.patch
  3. Extract the sources:
    cd ~/Downloads; mkdir -p wl; cd wl; tar xf ../hybrid-portsrc*-v5_100_82_38.tar.gz
  4. Patch the sources:
    patch -p1 < ../broadcom-sta_4_kernel-2.6.38.patch make; sudo make install; sudo depmod; sudo modprobe wl

Give Ubuntu a few seconds after loading the “wl” kernel module, then eventually the Network Manager will start looking for wireless networks.

Update: This patch and the resulting wl kernel module also works with 2.6.39 kernel series. I have updated content above to reflect this.

10 Comments Post a comment
  1. Apr 7 2011

    Exactly what I needed ! Compiled fine on a debian squeeze for a BCM4321. Thanks for your commitment !

    Reply
  2. david
    May 18 2011

    Now it works on dell E5410
    Thanks you so much!

    Reply
  3. May 25 2011

    thx, works on my DELL n3010 with BCM4313

    Reply
  4. ges
    Aug 3 2011

    Hi,
    The patch works on Acer Aspire 5742 with Fedora 15, kernel 2.6.40-4.fc15.x86_64 and hybrid-portsrc_x86_64-v5_100_82_38.
    BCM43225 802.11b/g/n (rev 01)
    Thanks so much for the patch.
    Could you let me know what it actually does?

    Reply
  5. juan caB
    Oct 5 2011

    Oh man, its great having people like you in the community.

    Thank you very much, i hope one be as helpfull as you

    Reply
  6. May 10 2012

    I tried on almost all the linux versions so far; No avail. Let me see if this works with said commands, its hard to get to exact dependancies on ubuntu. Most of the build files are missing. Don’t know how exactly it happend but this card is not supported under linux.

    Reply
    • May 11 2012

      The only real dependencies you need to get this working are build-essential and linux-headers for your currently running kernel. It is possible that your card is not supported at all, but you can easily google that. Good luck!

Trackbacks & Pingbacks

  1. [LMDE] Placa BCM4313 en Kernel 3.2 « La Pertenencia
  2. Linux下Broadcom无线网卡驱动安装 | northcamel
  3. ubuntu13.10中无线网卡驱动的安装 | 听·时光

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments