BCM43224, BCM43225 and BCM4313 installation guide

Hello,

I wanted to thank everyone for the info in this thread and particularly for the inclusion of the brcm80211 driver in the 11.3-update repo compat-wireless set.

Unfortunately, my testing over the last week or so confirms what others are saying: it’s really too far out on the bleeding edge and buggy to be of serious use, at least for the 43224 and 43225 (the 4313 is reportedly in a better state). It deadlocks the kernel in a multi-core environment regularly, has throughput issues, lacks power management and the ability to resume properly on suspend, etc. This is true even with the most recent git pulls (with some modifications necessary)

This isn’t a knock against the author - he clearly doesn’t see it as ready for prime time yet.

A simple web page regarding the status of the driver: brcm80211 - Linux Wireless

includes these known issues:

  • 43224/5 has a locking issue, stable with maxcpus=1, can crash otherwise after random period.
  • Debugability is poor: Debugfs/tracing is needed. Need a way to get access to counters.
  • Only minimal mac80211 interface is implemented, Callbacks need to be filled in more.
  • Features to be added: AP mode, powersave, IBSS, 40 Mhz channels …
  • Code needs to be optimized for linux:

One good piece of info there is that if you set maxcpus=1 the deadlocks (crashes) should stop, but in todays multi-core environments that’s a tough sell.

So…

I hadn’t seen this mentioned on the suse forums, broadcom provides their own drivers for these chips (and others) in one simple kernel agnostic package. In my testing they are working very well - I am now stable, I’m showing 10% less power drain on battery with wifi on, and no issues coming back from a suspend or hibernate. Note that these drivers are proprietary and include a “hybrid” binary blob to get the work done, which people can be philosophically opposed to. But for now, you really have no other working alternative. Perhaps by the time 2.6.27 rolls around (though to be honest the code still looks rather early to me)

You can get the drivers from broadcom here:
Broadcom.com - 802.11 Linux STA driver

readme here:
http://www.broadcom.com/docs/linux_sta/README.txt

Installation is dead simple provided you have the development tools and kernel-devel installed as per the first post, and supporting tools like lib80211.

Given that, you just untar the driver, run make, and cp it to your net/wireless modules directory (instructions all included in the readme). You’ll also need to add a “blacklist brcm80211” line to /etc/modprobe.d/50-blacklist.conf if you’ve previously installed brcm80211.

I notice broadcom mentions that fedora and ubuntu include their blob driver as part of the distro. Does openSUSE have a policy against any binary drivers? I believe I had seen a blob style ATI driver provided in a repo. Perhaps I am just stupid (happens a lot) and you can get the wl.ko broadcom driver in an openSUSE repo somewhere, but I couldn’t seem to find it. It might be worth including if it was possible.

The gist of the story is that at least for the time being I strongly recommend the use of the official broadcom driver

Thanks for all the hard work the maintainers and volunteers do!

The wl driver is in Packman
See this thread
Install Broadcom Drivers from Packman

Ahh, thank you for pointing that out. As usual, my own ignorance made things harder on me than they should have been. I’m really not sure why I didn’t see those when searching before, but now when I look they are listed plain as day.

Ignoring my lack of knowledge, I still hope it’s helpful to the thread that the broadcom-wl drivers are available from a repo and provide a much better experience. Unless I missed some nuance of this thread, it seems like a few posters didn’t realize there was an alternative to brcm80211 - I certainly didn’t after reading it :confused:

Cheers for the hard work sir,

On 11/16/2010 01:06 AM, tslivingston wrote:
>
> Ahh, thank you for pointing that out. As usual, my own ignorance made
> things harder on me than they should have been. I’m really not sure why
> I didn’t see those when searching before, but now when I look they are
> listed plain as day.
>
> Ignoring my lack of knowledge, I still hope it’s helpful to the thread
> that the broadcom-wl drivers are available from a repo and provide a
> much better experience. Unless I missed some nuance of this thread, it
> seems like a few posters didn’t realize there was an alternative to
> brcm80211 - I certainly didn’t after reading it :confused:

Many of us refuse to use closed-source drivers as we do not want code that has
not been seen/reviewed to have unrestricted access to the inner-most ring of the
system. That is the reason I will never use wl. Its closed source also keeps it
off any official openSUSE distribution.

As to the future of brcm80211, wl was even buggier when Broadcom first announced it.

I’m not looking for a fight and wasn’t meaning to offend, I’m sorry if I did. I think it’s pretty clear that I understand some or many choose not to run binary only drivers as I made sure to point out that’s what they were.

I was only trying to help, if it didn’t come out that way it was unintentional. Obviously it wasn’t going to help you as you were already well aware, but I thought perhaps it could help someone else like me who was otherwise unaware of the wl driver and wouldn’t have any philosophical issues with it.

I have no doubt that brcm80211 will evolve into being a great driver. Today though, I doubt the author would recommend it for end users. At least on the '25 in an SMP kernel, I’ve had it deadlock for me 3 times in a 15 minute period (including reboot time, etc) and it seldom lasts more than an hour or two even under light use.

I’m using brcm80211 with the current rc4 of kernel 2.6.37
No deadlocks or other severe errors!

Hello Linux Developers,

I attempted to build BCM43225 driver for my ACER ASPIRE 5742 Laptop, as per the guide lines given, but failed at two place and this is how I succeeded.

Make failed saying:
~/linux-next/drivers/staging/brcm80211/sys/wlc_channel.c:632: error: implicit declaration of function ‘no_printk’

This problem was resolved by referring to following post on Ubuntu forum:
[all variants] New brcm80211 driver guide for Broadcom wireless cards - Page 9 - Ubuntu Forums](http://ubuntuforums.org/showthread.php?p=10398407)
Credit:Ubuntu Forums - View Profile: some-one
"Quote"
When you go to the directory ~/linux-next/drivers/staging/brcm80211
You need to do this:

create the scrip
Code:

nano script.sh

Add:
Code:

#!/bin/bash

for file in ./brcmfmac/*
do
sed -e ‘s/no_printk(.)//’ -i ${file}
sed -e 's/printk(.
)//’ -i ${file}
done

for file in ./sys/*
do
sed -e ‘s/no_printk(.)//’ -i ${file}
sed -e 's/printk(.
)//’ -i ${file}
done

Save and exit

execute
Code:

sudo chmod 777 script.sh

execute
Code:

./script.sh

and then compile the driver.
"Unquote"

After executing the above script make was successful.

Next problem was during the insmod process. insmod failed saying.
insmod: error inserting ‘/lib/modules/2.6.34.7-0.7-default/brcm80211.ko’: -1 Unknown symbol in module

This was resolved by referring to another post on Ubuntu forum:
[all variants] Broadcom 43224 drivers - Page 2 - Ubuntu Forums](http://ubuntuforums.org/showthread.php?t=1592044&page=2)
Credit: Ubuntu Forums - View Profile: Ayuthia

Run the following commands as root to resolve the issue:
:~ # modprobe mac80211
:~ # insmod /lib/modules/uname -r/brcm80211.ko

Immediately Network Manager displayed the available wireless connections and I could succeed with setting up WPA2 security based WLAN connectivity.

Hope this information will be of some use to others.

Thanks and Regards,
Raghuram S

Maybe the according firmware could be included in the factory repository/repositories to avoid irritation and make testing easier?
Compare:

openFATE #311198 : Include brcm80211 driver into openSUSE 11.4

Regards
pistazienfresser

On 02/03/2011 06:06 AM, pistazienfresser wrote:
>
> Maybe the according firmware could be included in the factory
> repository/repositories to avoid irritation and make testing easier?
> Compare:
>
> ‘openFATE #311198 : Include brcm80211 driver into openSUSE 11.4’
> (https://features.opensuse.org/311198)

That firmware is included in recent linux-firmware packages. What is needed for
the openSUSE maintainer to pick up that new package.

Thanks for the reply.

Hm. Is this the same maintainer who did not want bugreports for missing firmware been opened ?
Compare: Broadcom Drivers and Firmware, 11.4 M5 (2010/12/23 on brcm80211-firmware and 14e4:4727 )

Hm. Hm. And what should I recommend a puzzled user nowadays?
Compare: Ich kriege meine Broadcom wlan Karte nicht zum laufen (on 14e4:4727)
Just lead him to try to use the 11.3 package for 11.4/factory/milestone 5/6 and by the way hoping he will be able to avoid problems with repositories for different versions of openSUSE?

puzzled
pistazienfresser
(Martin)

On 02/05/2011 09:36 AM, pistazienfresser wrote:
>
> Thanks for the reply.
>
> lwfinger;2286036 Wrote:
>> On 02/03/2011 06:06 AM, pistazienfresser wrote:
>>>
>>> Maybe the according firmware could be included in the factory
>>> repository/repositories to avoid irritation and make testing easier?
>>> Compare:
>>>
>>> ‘openFATE #311198 : Include brcm80211 driver into openSUSE 11.4’
>>> (https://features.opensuse.org/311198)
>>
>> That firmware is included in recent linux-firmware packages. What is
>> needed for
>> the openSUSE maintainer to pick up that new package.
>
> Hm. Is this the same maintainer who did not want bugreports for missing
> firmware been opened ?
> Compare: ‘Broadcom Drivers and Firmware, 11.4 M5’
> (http://tinyurl.com/4ezzh7z) (2010/12/23 on brcm80211-firmware and
> 14e4:4727 )
>
> Hm. Hm. And what should I recommend a puzzled user nowadays?
> Compare: ‘Ich kriege meine Broadcom wlan Karte nicht zum laufen’
> (http://tinyurl.com/6fskjpn) (on 14e4:4727)
> Just lead him to try to use the 11.3 package for 11.4/factory/milestone
> 5/6 and by the way hoping he will be able to avoid problems with
> repositories for different versions of openSUSE?

There should not be a problem. The linux-firmware package installed with 11.4 M6
is from Dec. 14, 2010. The entry of brcm80211 firmware into the linux-firmware
git tree was Sep. 9, 2010. It should be OK.

If you really want the latest, then issue the command


git clone git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git

This step will create a copy of the current linux-firmware package in the
“linux-firmware” directory, and you can bypass any package maintainer. To update
at any time, go to that directory and issue “git pull”.

Hi all,
I have a netbook ASPIRE 1830T with BCM43225. I was looking forward for new opensuse 11.4, because my wireless did not work. However it does not work even with new opensuse 11.4 with brcm80211 included. And already Drivers - Linux Wireless still reports lot of work to be done.

Therefore I have decided to try to install the official Broadcom.com - 802.11 Linux STA driver. However, when I try to build the driver I get this error message:

aspire:/etc/hybrid_wl # make 
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-2.6.37.1-1.2-obj/x86_64/default'
make -C ../../../linux-2.6.37.1-1.2 O=/usr/src/linux-2.6.37.1-1.2-obj/x86_64/default/. 
  CC [M]  /etc/hybrid_wl/src/wl/sys/wl_linux.o
/etc/hybrid_wl/src/wl/sys/wl_linux.c: In function ‘wl_attach’:
/etc/hybrid_wl/src/wl/sys/wl_linux.c:485:3: error: implicit declaration of function ‘init_MUTEX’
make[4]: *** [/etc/hybrid_wl/src/wl/sys/wl_linux.o] Error 1
make[3]: *** [_module_/etc/hybrid_wl] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.37.1-1.2-obj/x86_64/default'
make: *** [all] Error 2

Anyone could help me with it?
Thank you very much.

I just installed Fedora 14 on a a Dell T7500 equipped with
a Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01) WLAN card.

I am following your excellent guide for installing a driver for the card.

  1. Getting the source using ‘git’ seems to work OK, at least the ‘git’ commands
    completed without error messages.

  2. Building the driver:

    The kernel-devel package is installed already, in fact there are two
    development packages installed:
    kernel-devel-2.6.35.14-106.fc14.x86_64
    kernel-devel-2.6.35.6-45.fc14.x86_64
    as a result of running ‘yum update’ shortly after installing Fedora 14.

    However: No directory linux-next/drivers/staging/brcm80211 exists !?

Apparently something went wrong with the ‘git’ commands. What can be done ?