HOW TO: Install Broadcom-sta (wl) driver in LMDE

Archived topics about LMDE 1 and LMDE 2
dawgdoc

HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

This HOW TO describes enabling support for WiFi devices based on Broadcom 4311/4312/4313/4321/4322/43224/43225 chipsets - using Broadcom's hybrid device driver - on Debian systems. This tutorial was prepared shortly after the release of LMDE 201009 and draws heavily on THIS Debian Wiki page.

Support of these chipsets is possible using a driver (wl) made available by the vendor, which includes a binary-only component targeted for the x86 or x86-64 architecture. All supported devices are listed at the end of this page. This is a "non-free" driver.

The BCM4313, BCM43224 and BCM43225 chipsets are alternatively supported by the brcm80211 driver.

And as of 9 Sept 2010 Broadcom announced the
initial release of a fully-open Linux driver for it's latest generation of 11n chipsets. The driver, while still a work in progress... supports multiple current chips (BCM4313, BCM43224, BCM43225) as well as providing a framework for supporting additional chips in the future.
NOTE: (2011/2/23) The following has been observed specifically for the BCM4313 chipset (Device ID 14E4:4727) but may apply to other chipsets which were updated from providing 802.11b/g to 802.11b/g/n support. The b/g version of BCM 4313 has been supported since version 5.60.48.36 of the driver, currently available in the Debian testing non-free repositories. Support for the b/g/n revision of BCM 4313 requires use of driver version 5.100.82.38 or newer, which is not currently available in the repositories. You will need to use installation method 3, see below.

NOTE 2: (2011/3/6) Version 5.100.82.38-1 of Broadcom-STA is now available in the LMDE repositories. Installation method 1 should work for newer wifi cards.

INSTALLATION


METHOD 1

1. The Mint developers of LMDE have enabled the "non-free" repositories by default. To confirm this navigate to
  • Menu > Administration > Software Sources.
    Select the <Third-Party Software> tab
    Debian Testing Officially supported DFSG-compatible Software with Non-free Dependencies Non-DFSG-compatible
    • Software should be present and selected,select it if not currently enabled
If the "non-free" repository was not present, add it to to /etc/apt/sources.list. Open the file with

Code: Select all

gksu gedit /etc/apt/sources.list
and add these lines at the end of the file

Code: Select all

# Debian Testing (currently Wheezy)
deb http://ftp.us.debian.org/debian testing main contrib non-free
save and close.
updated to reflect testing instead of squeeze

2. The remainder of the installation process will be performed as the root user in a terminal. Open a terminal, type su, press <enter>, type your password (there will be no response from the blinking cursor), press <enter>. The terminal prompt will change from something like username@computer-name ~ $ to computer-name username # Note: the change from $ to #. Also, to avoid confusion between a one (1) and lowercase L (l) commands can be copied from the tutorial and pasted into the terminal. The key combination to paste into the terminal is <Shift><Ctrl><v>

3. Update the list of available packages. Install the module-assistant and wireless-tools packages:

Code: Select all

apt-get update
apt-get install module-assistant wireless-tools
4. Build and install a broadcom-sta-modules-* package for your system, using Module-Assistant:

Code: Select all

m-a a-i broadcom-sta
The "a-i" stands for "auto-install," meaning "download the module source, compile it for the current kernel and install it".

5. Blacklist the brcm80211 module, to prevent it conflicting for support of BCM4313, BCM43224 and BCM43225 devices:

Code: Select all

echo blacklist brcm80211 >> /etc/modprobe.d/broadcom-sta-common.conf
6. Rebuild your initial ramdisk, to blacklist modules defined at /etc/modprobe.d/broadcom-sta-common.conf within initramfs:

Code: Select all

update-initramfs -u -k $(uname -r)
7. Unload conflicting modules:

Code: Select all

modprobe -r b44 b43 b43legacy ssb brcm80211
8. Load the wl module:

Code: Select all

modprobe wl
9. Verify your device has an available interface:

Code: Select all

iwconfig
10. Configure your wireless interface as appropriate.

11. Exit the root terminal:

Code: Select all

exit
METHOD 2

A script to automate the above process was written and posted HERE in the Linux Mint Forum by Gramps50


METHOD 3

To install from source see the Broadcom Linux STA page. See the README.txt file first.



KNOWN PROBLEMS
  • + The Sonics Silicon Backplane driver (ssb) conflicts with the wl driver (545388, broadcom-sta-common/README.Debian).
    • * b44, b43, b43legacy and ssb are blacklisted by default as of broadcom-sta 5.10.91.9.3-3.
      * This prevents use of any Ethernet device supported by b44.
    + Frequent disconnections can be experienced. This may be resolved by disabling power management via iwconfig(8) (e.g. iwconfig eth1 power off).

    + Monitor mode is not supported.

    + Unable to transfer data over ad-hoc network created by NetworkManager (iwconfig OK) #81392

    + STA unable to associate to AP when PEAPv1-MSCHAPv2 authentication is used #81452

    + 20% lower throughput on channels 149, 153, 157, and 161 #72238
See bugs reported on broadcom-sta.



SUPPORTED DEVICES


The following list is based on the alias fields of modinfo wl as of driver version 5.60.48.36:
  • PCI: 14E4:4311 Broadcom Corporation BCM4311 802.11b/g WLAN
    PCI: 14E4:4312 Broadcom Corporation BCM4312 802.11a/b/g
    PCI: 14E4:4313 Broadcom Corporation BCM4311 802.11a
    PCI: 14E4:4315 Broadcom Corporation BCM4312 802.11b/g LP-PHY
    PCI: 14E4:4328 Broadcom Corporation BCM4321 802.11a/b/g/n
    PCI: 14E4:4329 Broadcom Corporation BCM4321 802.11b/g/n
    PCI: 14E4:432A Broadcom Corporation BCM4321
    PCI: 14E4:432B Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller
    PCI: 14E4:432C Broadcom Corporation BCM4322 802.11b/g/n
    PCI: 14E4:432D Broadcom Corporation BCM4322 802.11a/b/g/n
    PCI: 14E4:4353 Broadcom Corporation BCM43224 802.11a/b/g/n
    PCI: 14E4:4357 Broadcom Corporation BCM43225 802.11b/g/n
    PCI: 14E4:4727 Broadcom Corporation BCM4313 802.11b/g LP-PHY supported since driver ver 5.60.48.36,
    PCI: 14E4:4727 Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller now supported as of 1/11/2011,
    • use driver version 5.100.82.38 or newer
To find the Device ID's of Broadcom cards on your machine do:

Code: Select all

lspci -n | grep 14e4
The page HowToIdentifyADevice/PCI explains how to identify a PCI device.



TROUBLE SHOOTING


1. If the wl driver loads but doesn't seem to do anything: the ssb module may be the cause. Sometimes blacklisting ssb may not be enough to prevent it from loading and it loads anyway. (This is mostly seen on Ubuntu/Debian systems). From HERE

Check to see if ssb, wl or b43 is loaded:

Code: Select all

lsmod  | grep "b43\|ssb\|wl"
If any of these are installed, remove them:

Code: Select all

 sudo rmmod b43
sudo rmmod ssb
sudo rmmod wl
Back up the current boot ramfs and generate a new one.

Code: Select all

sudo cp /boot/initrd.img-`uname -r`  /path/to/somewheresafe
sudo update-initramfs -u
reboot

2. The driver fails to load at boot.
Perform this command in a terminal

Code: Select all

sudo echo wl >> /etc/modules
If that alone does not allow the driver to load when the system is booted, create a file

Code: Select all

gksudo /etc/modprobe.d/00local
and add the line

Code: Select all

install wl /bin/true
the driver should load upon reboot.

Note that "If the file /etc/modprobe.conf exists, all contents of /etc/modprobe.d/ are ignored by default."



REFERENCES

Debian wiki on broadcom-sta installation and enabling the wl driver
Installation Script by Gramps50 to automate installing and enabling the wl driver from the Linux Mint Forums
How To use a WiFI interface from the Debian Wiki
Broadcom STA driver - download page with README.txt
Bugs in source package broadcom-sta Debian Bug Reports
How To Identify PCI like Devices from the Debian Wiki



SEE ALSO

bcm43xx - Broadcom 43xx wireless devices
brcm80211 - Broadcom 4313, 43224, 43225 devices
NDISwrapper - Installing NDISwrapper on Debian systems
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 8 times in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
User avatar
Oscar799
Level 20
Level 20
Posts: 10393
Joined: Tue Aug 11, 2009 9:21 am
Location: United Kingdom

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by Oscar799 »

Moved this here and made it sticky
Image
water spirit

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by water spirit »

I use this Broadcom-sta (wl) driver and have it working with Mint Debian and I blacklisted b44 also to get it to work and this disabled my wired connection. I have the same issue with Fedora. This is not a big deal as I have a USB ethernet device that I can use. But with Mint 9 and Ubuntu I can install this driver and still have my wired connection. But I am curious as to why Ubuntu can get it to work and also openSUSE.
RayO

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by RayO »

A big thank you for this guide - worked like a dream and for the first time ever I have wifi working in a non ubuntu based distro on this Dell 1545.
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

@ water spirit

I just re-read you post again, and closer this time. You should not have blacklisted the b44 module, b43 is the wireless module to blacklist. To check on this I ran

Code: Select all

/sbin/modprobe -l | grep b4
kernel/drivers/net/b44.ko
kernel/drivers/net/wireless/b43/b43.ko
kernel/drivers/net/wireless/b43legacy/b43legacy.ko
I'm going to guess that b44 has something to do with the lan/wired ethernet. I would suggest commenting out it's blacklisting.

@ RayO

I'm glad it worked.
shoelesshunter78

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by shoelesshunter78 »

Hi,

New here to Mint and the forum. Please forgive any faux pa until I become accustomed to the group.

I have recently switched from Ubuntu to LMDE. I am using an Intel Mac. All previous installations of Ubuntu loaded the Broadcom STA drivers beautifully in the GUI installation.

With LMDE, I knew I would need to do this "by hand." I followed Method #1 here in the post, and wireless worked beautifully. After a week of connectivity, the card has stopped connecting to my WPA2 encrypted network. The network is still recognized and connection attempts are made, but when prompted for the network password, the system does not connect. I am now on ethernet.

This is sudden and I've not done any reconfiguration of the network, hardware, or my wireless software/drivers.

Has anyone else experienced this problem?
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

shoelesshunter78 wrote:After a week of connectivity, the card has stopped connecting to my WPA2 encrypted network. The network is still recognized and connection attempts are made, but when prompted for the network password, the system does not connect. I am now on ethernet.

This is sudden and I've not done any reconfiguration of the network, hardware, or my wireless software/drivers.
There are a lot of possibilities and you seem to have eliminated many. I have seen posts similar to yours but I do not recall seeing a solution.

I have had no issues with wireless since installing LMDE and the Broadcom-sta drivers. I have installed all level 1-3 updates except ones pertaining to graphics chipsets and wireless chipsets not on my laptop. ALSO I did not install the newest firmware-bnx and firmware-bnx2x packages, which are for Broadcom NetExtremeII 5xxx series devices. Unless you have installed these programs, AND they are causing interference, my first guess is a miss. On my system the bnx2, bnx2x, and b43 modules are installed but not loaded.

You can check what wireless modules are loaded by running by entering

Code: Select all

lsmod | grep "wl\|bn\|b4"

wl should be the only wireless module loaded. My output is

Code: Select all

bnep                    7444  2 
l2cap                  21705  6 bnep,rfcomm
bluetooth              36327  6 sco,bnep,rfcomm,l2cap
wl                   1937423  0 
lib80211                2870  2 lib80211_crypt_tkip,wl
If no other wireless modules are loaded, then you are back to checking configuration settings for Network Manager and your router. I do not know if it may be possible that booting into Mac OS may have changed some hardware settings, I have heard that Windows has done this in specific situations.

Have you made any BIOS changes?
shoelesshunter78

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by shoelesshunter78 »

Thank you. While I am not dual booting on the iMac (LMDE is the only OS on the HD), there is an external fire wire drive connected which has a bootable OSX clone. I never intended to boot it, but kept it to transfer data.

My wife powered on the machine in my absence, and rEfit, installed on the external drive's clone, gave her the option to boot OSX. She did. This is where the problems began.

For clarification, LMDE still boots from the MRB (where grub is written) without rEfit or the OSX present.

Right now I get intermittent wireless connectivity. There is no rhyme nor reason to it's functionality.

As I have no desire to ever again boot into OSX on this machine, what steps should I take to "start from the beginning" in my wireless configuration? I am something of a Linux noob, but with a strong learning curve and Unix background. How should I go about "reseting?"

Much thanks.
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

I would suggest starting a separate thread with a title more specific to your problem, someone with an answer to your problem may be skipping/overlooking this thread due to the title.

in that new thread describe the problem and it's origin as you just did.

In that new post paste the output from these commands:

Code: Select all

inxi -N
to indicate your hardware and driver in use

Code: Select all

lsmod | grep "wl\|bn\|b4"
to show what wireless driver modules are loaded, which may show a source of conflict

Code: Select all

sudo mintwifi
while you have a wireless connection, the results will be useless if ethernet is connected.

Make sure you relate that it is a Mac.
AK Dave

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by AK Dave »

Sure wish I'd have seen these instructions or checked the debian wiki before I went and grunged through compiling the broadcom driver from source code downloaded from broadcom's website. That said, it did give me a greater appreciation for the guts and internals of LMDE and the debian base.
User avatar
salsalha
Level 2
Level 2
Posts: 58
Joined: Tue Dec 28, 2010 10:34 am

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by salsalha »

Help, please, this step don't work
salsalha@salsalha ~ $ sudo modprobe wl
FATAL: Module wl not found.
i found this:
salsalha@salsalha ~ $ inxi -N
Network: Card-1 Realtek RTL8101E/RTL8102E PCI Express Fast Ethernet controller driver r8169
Card-2 Broadcom BCM4313 802.11b/g/n Wireless LAN Controller
Ihave no wifi...
tks

Thanks
User avatar
salsalha
Level 2
Level 2
Posts: 58
Joined: Tue Dec 28, 2010 10:34 am

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by salsalha »

same like root

Code: Select all

salsalha salsalha # modprobe -r b44 b43 b43legacy ssb brcm80211
FATAL: Module brcm80211 not found.
salsalha salsalha # modprobe wl
FATAL: Module wl not found.
I have no wifi

thanks
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

@ salsalha

There seems to be more than one Broadcom 4313 device. Yours in an 802.11 b/g/n. The listed as supported is PCI: 14E4:4727 Broadcom Corporation BCM4313 802.11b/g LP-PHY. I do not know if this would be the source of the issue, but possibly. Lets verify if you have the same device. I am looking to see if yours is also 14E4:4727

Code: Select all

lspci -vvnn | grep Broad
As far as this command salsalha salsalha # modprobe -r b44 b43 b43legacy ssb brcm80211 just leave out brcm80211
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

Well, it seems the supported devices has been modified. I checked the Debian wiki page I based my tutorial and the listing for that device has changed a bit.
Now: PCI: 14E4:4727 Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller
Then: PCI: 14E4:4727 Broadcom Corporation BCM4313 802.11b/g LP-PHY

I will update the tutorial portion of this topic.
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

This thread http://forums.linuxmint.com/viewtopic.p ... =0#p365053 shows others with your device having problems. It appears your device is also supported by the brcm80211 driver. Installation is different. (you are using LMDE, correct?)

If we can not get yours working with the wl driver, Instructions are here: http://wiki.debian.org/brcm80211
knireis

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by knireis »

I run the latest liquorix kernel in order to solve my sound problems on a HP G62.
Trying to install this broadcom driver gives me errors:

first: build of broadcom-sta-source failed
then i choose to continue and at the end i get following message:

update-initramfs: Generating /boot/initrd.img-2.6.36-3.dmz.2-liquorix-amd64
FATAL: Module wl not found.
lo no wireless extensions.

eth1 no wireless extensions.

pan0 no wireless extensions.
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

based on the Debian wiki, it should support amd64. This vendor driver depends on the x86 or x86-64 architecture (Debian i386 and AMD64 ports respectively) at this time

What error message did you get when the build of the driver failed?

What device are you using for wireless?

Code: Select all

lspci -vvnn | grep Broad
(only works for Broadcom)
User avatar
salsalha
Level 2
Level 2
Posts: 58
Joined: Tue Dec 28, 2010 10:34 am

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by salsalha »

@dawgdoc

Thanks for your attention.

Yes I am a user, LMDE 64 bits.
spci -vvnn | grep Broad"
02:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)
I saw the wiki on debian, you left, and I spend it:

In step 2, Squeeze, do not let me install, for some reason the firmware-brcm80211. The terminal tells me that 0 packages will be upgraded, installed or replaced, and who is 15 not upgraded. So I figured I was already on the computer.

then:

salsalha salsalha # modprobe -r brcm80211 ; modprobe brcm80211
FATAL: Module brcm80211 not found.
FATAL: Module brcm80211 not found.
Whats is wrong?


I use, liquorix kernel, for sound issues, but i tried in the native the same steps, and neither.


Greetings.
dawgdoc

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by dawgdoc »

salsalha wrote:In step 2, Squeeze, do not let me install, for some reason the firmware-brcm80211. The terminal tells me that 0 packages will be upgraded, installed or replaced, and who is 15 not upgraded. So I figured I was already on the computer.

I use, liquorix kernel, for sound issues, but i tried in the native the same steps, and neither.
Please post a copy of your sources.list

Code: Select all

cat /etc/apt/sources.list
and let's see what modules are present

Code: Select all

modprobe -l | grep "wl\|bn\|b4\|802"
and which of those might be loaded (edited)

Code: Select all

lsmod | grep "wl\|bn\|b4\|802"
Last edited by dawgdoc on Wed Jan 12, 2011 1:24 pm, edited 1 time in total.
User avatar
salsalha
Level 2
Level 2
Posts: 58
Joined: Tue Dec 28, 2010 10:34 am

Re: HOW TO: Install Broadcom-sta (wl) driver in LMDE

Post by salsalha »

Code: Select all

salsalha@salsalha ~ $ cat /etc/apt/sources.list
deb http://packages.linuxmint.com/ debian main upstream import
deb http://ftp.debian.org/debian testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb http://www.debian-multimedia.org testing main non-free
deb http://dl.google.com/linux/deb/ stable non-free main
deb http://liquorix.net/debian sid main future
deb http://ftp.us.debian.org/debian squeeze main contrib non-free
And

Code: Select all

salsalha@salsalha ~ $ sudo modprobe -l | grep "wl\|bn\|b4\|802"
[sudo] password for salsalha: 
kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
kernel/drivers/uwb/wlp/wlp.ko
kernel/drivers/net/b44.ko
kernel/drivers/net/cxgb4vf/cxgb4vf.ko
kernel/drivers/net/cxgb4/cxgb4.ko
kernel/drivers/net/bnx2.ko
kernel/drivers/net/bnx2x/bnx2x.ko
kernel/drivers/net/wireless/wl12xx/wl1251_spi.ko
kernel/drivers/net/wireless/wl12xx/wl1271_sdio.ko
kernel/drivers/net/wireless/wl12xx/wl1251.ko
kernel/drivers/net/wireless/wl12xx/wl1271_spi.ko
kernel/drivers/net/wireless/wl12xx/wl1271.ko
kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
kernel/drivers/net/wireless/wl3501_cs.ko
kernel/drivers/net/wireless/mwl8k.ko
kernel/drivers/net/wireless/b43legacy/b43legacy.ko
kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
kernel/drivers/net/wireless/mac80211_hwsim.ko
kernel/drivers/net/wireless/rndis_wlan.ko
kernel/drivers/net/wireless/b43/b43.ko
kernel/drivers/net/wan/sbni.ko
kernel/drivers/net/usb/usbnet.ko
kernel/drivers/leds/leds-bd2802.ko
kernel/drivers/staging/wlan-ng/prism2_usb.ko
kernel/drivers/staging/wlags49_h25/wlags49_h25_cs.ko
kernel/drivers/staging/wlags49_h2/wlags49_h2_cs.ko
kernel/drivers/media/video/cx88/cx8802.ko
kernel/drivers/ieee802154/fakehard.ko
kernel/drivers/infiniband/hw/cxgb4/iw_cxgb4.ko
kernel/drivers/scsi/bnx2i/bnx2i.ko
kernel/drivers/rtc/rtc-bq4802.ko
kernel/drivers/rtc/rtc-rx8025.ko
kernel/net/bluetooth/bnep/bnep.ko
kernel/net/802/garp.ko
kernel/net/802/p8023.ko
kernel/net/802/stp.ko
kernel/net/wireless/lib80211_crypt_ccmp.ko
kernel/net/wireless/cfg80211.ko
kernel/net/wireless/lib80211_crypt_tkip.ko
kernel/net/wireless/lib80211.ko
kernel/net/wireless/lib80211_crypt_wep.ko
kernel/net/8021q/8021q.ko
kernel/net/mac80211/mac80211.ko
kernel/net/ieee802154/ieee802154.ko
kernel/net/ieee802154/af_802154.ko
kernel/net/bridge/netfilter/ebt_802_3.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko



And

Code: Select all

lsmod | grep lsmod | grep "wl\|bn\|b4\|802"
don't show anything...

Tks
Locked

Return to “LMDE Archive”