Skip to content

June 1, 2011

7

Wireless BCM4312 3.0 kernel

Broadcom Chipset BCM4312

With the latest 3.0 kernel there is still no “out of the box” support for my BCM4312 wireless chipset. Nor is there any help from Ubuntu 11.04 leaving me to use Broadcoms hybrid driver with patch.

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.

My specific 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 Linux kernel 3.0:

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-3.0.0-0300rc1-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 for > 2.6.37 support:
    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, compile and install:
    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.

7 Comments Post a comment
  1. Ricardo
    Dec 4 2011

    I have the same problem, when I followed your instructions, I got at the patch step this error:
    rugiero@rugierolinux: ~/Downloads/wl$ patch -p1 < ../broadcom-sta_4_kernel-2.6.38.patch make
    patching file make
    Hunk #1 FAILED at 482.
    1 out of 1 hunk FAILED — saving rejects to file make.rej

    Is it has to do with my kernel version? I don't know what it is
    I am running Ubuntu 11.10 in a Inspiron Dell N5010 with the BCM4313

    Reply
    • Dec 5 2011

      It looks like you are trying to patch the make file which does not exist (it is a command to start building). Try this:
      patch -p1 < ../broadcom-sta_4_kernel-2.6.38.patch

      and then:
      make; sudo make install; sudo depmod; sudo modprobe wl

      and you should be good to go.

  2. Dave Albaugh
    Jan 4 2012

    I run the command as:
    [code]patch -p1 < ../broadcom-sta_4_kernel-2.6.38.patch[/code]
    and I get this message:
    [code]patching file src/wl/sys/wl_linux.c
    Hunk #1 FAILED at 482.
    1 out of 1 hunk FAILED -- saving rejects to file src/wl/sys/wl_linux.c.rej[/code]
    I should point out that the driver file that I downloaded has a different version number than what you have listed in the directions above. The file you have is hybrid-portsrc*-v5_100_82_38.tar.gz. The one available for download from Broadcom right now (32-bit) is hybrid-portsrc_x86_32-v5_100_82_112.tar.gz. That is the only difference that I can see. Help?

    Reply
    • Jan 4 2012

      It would seem that they have updated their driver to include the fix in October. I have not tested yet, but it is possible that you do not need my patch any more.

  3. Vicente Lara
    Feb 10 2012

    Hi,
    I have followed the steps (as Dave I’ve had the same error, so I can not use the patch). But apparently nothing has changed…
    Try to summarized:
    I have a new HP Pavilion dm4. As soon as I erased the Windows partition to put the Kubuntu 11.10 distribution the button of the wireless permanents invariably with the red light (switched off). No way to switch it on. I have passed all the day long trying to solve the problem: I’ve read many many things (also learnt). In the http://www.linuxwireless.org they assure that the possibilities are, as long as my chip is not suported by the b43: to use the the BCM4313 driver, or the STA drivers.
    I’ve proved all, but nothing. Even I have read somewhere “over the rainbow” that I should to blacklist b43, ssb and brcm80211 to allowed the wl (STA) to work for the Broadcom 4313 chip … but nothing. Then I’ve found your help, but nothing for me… From 10 to 22, it is time to surrender. Please I really grateful any piece of advice or help.
    Thanks a lot in advance. (Sorry for the length).
    My information:
    —–
    ~$ lspci -vvnn | grep 14e4
    09:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
    —–
    ~$ sudo lshw -C network
    *-network
    description: Network controller
    product: BCM4313 802.11b/g/n Wireless LAN Controller
    vendor: Broadcom Corporation
    physical id: 0
    bus info: pci@0000:09:00.0
    version: 01
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress bus_master cap_list
    configuration: driver=bcma-pci-bridge latency=0
    resources: irq:16 memory:c2500000-c2503fff
    —-
    :~$ iwconfig
    lo no wireless extensions.
    eth0 no wireless extensions.

    Reply
    • Feb 13 2012

      In theory your chipset is supported by the broadcom driver. Have you tried compiling and loading it (wl)? Does it give any information dmesg about finding a wireless device? Is there a hardware kill switch on your laptop? Apparently someone (perhaps you) has the same exact laptop as you and got it working here. Good luck!

    • Vicente Lara
      Feb 17 2012

      [SOLVED]
      First of all, thanks a lot. I have the wifi on and conected. This was possible for all the help provided for kind people in forums, starting first just here (MS can not control everything).
      I write the steps I have followed to finally have success. (Please experts forgive this maremagnun of things that are surely redundant):
      - Only works for propietary dirvers (Broadcom STA), as I could no force dpkg to install correctly b43 because my configuration is not supported.
      - As root (sudo or with synaptic) verify that b43 drivers (and related, as b43-fwcutter) are not installed.
      - Install bcmwl-kernel-cource, broadcom-sta-common, broadcom-sta-source (check in System->additional drivers that STA drivers are indeed activated)
      - reinstall and install rfkill, liburfkill-glib0,liburfkill-glib-dev, urfkill (probably this is not necessary)
      - Force the prevalence of Broadcom drivers (wl) on the others:
      * edit the file /etc/modprobe.d/blacklist-bcm43.conf and copy all blacklist lines
      * edit the file etc/modprobe.d/blacklist.conf and set what you are copied; it should look like (I’ve added others more):
      # replaced by b43 and ssb:
      blacklist bcm43xx
      blacklist b43
      blacklist ssb
      blacklist b43legacy
      blacklist ssb
      blacklist brcm80211
      blacklist bcma
      blacklist brcmsmac
      blacklist brcmfmac
      blacklist mac80211
      blacklist cfg80211
      blacklist lib80211_crypt-tkip
      blacklist lib80211
      * edit file /etc/rc.local and write just before “exit 0″:
      modprobe -r b43 ssb wl
      modprobe wl
      - Restart
      Everything should work fine. Good luck!

Share your thoughts, post a comment.

(required)
(required)

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

Subscribe to comments

%d bloggers like this: