LinuxQuestions.org

LinuxQuestions.org (http://www.linuxquestions.org/questions/index.php)
-   Linux - Wireless Networking (http://www.linuxquestions.org/questions/forumdisplay.php?f=41)
-   -   HOWTO Get Broadcom Wireless Working with Linux (http://www.linuxquestions.org/questions/showthread.php?t=4175434970)

frankbell 10-31-2012 04:51 PM

HOWTO Get Broadcom Wireless Working with Linux
 
This post originated from a thread in the LQ Suggestions & Feedback forum. Suggestions and corrections are welcome (especially corrections).

One of the most common questions from users here at LQ goes something like this:

Quote:

I installed Linux and my wireless doesn't work. In fact, I open the network manager and no wireless connections appear.
In many cases, the wireless chip in question turns out to be Broadcom. This post attempts to lay out some steps to take to get your Broadcom wireless working.

Important: If your wireless doesn't work, be sure to test the wired connection before doing anything else. This does two things:
  1. If the wired connection does not work, you may be facing a larger problem, and
  2. It ensures that you can connect via ethernet to download the packages you may need to enable your wireless.

If the problem is confined to the wireless, there is a good chance that the drivers were not installed. This often happens when the wireless card is manufactured by Broadcom, which has been slower than many other manufacturers in porting drivers to Linux. (Note that there is some Broadcom support in the kernel. I have an older Acer Travelmate 1000 with a Broadcom chip that worked just fine without any special action on my part under both Fedora and Slackware.)

The steps below will help:

Checking your network configuration:

Open a terminal and run the command ifconfig -a. This will report your network configuration for all your network interfaces.

This is the output of ifconfig -a on my Dell 1545n laptop running Slackware --Current. The connections are
  • eth0: normally the wired connection.
  • lo: the loopback or local address.
  • wlan0: wireless LAN 0 (Note: some systems will identify this as eth1).


Code:

~$ /sbin/ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 00:23:ae:41:fa:2d  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 18 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 16436
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 2  bytes 100 (100.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2  bytes 100 (100.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 576
        inet 192.168.1.112  netmask 255.255.255.0 broadcast 255.255.255.255
        ether 00:22:5f:b3:37:cb  txqueuelen 1000  (Ethernet)
        RX packets 611659  bytes 349210856 (333.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 321076  bytes 28118221 (26.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


If you have a wireless card and you don't see wlan0 (or eth1), you system may not be seeing the wireless chipset.

Determine the wireless chipset:

Run the lspci command in a terminal to display the wireless chipset. Note that the brand name of the card is often irrelevant. For example, Dell Computers may sell cards with the Dell brand name, but the chip inside the card has likely been manufactured by a third-party vendor, frequently Broadcom.

This is the output of lspci on my Dell 1545n laptop. The item in bold identifies the wireless chipset. Note that the lspci command shows PCI devices. The command to show USB devices is lsusb.

Code:

# lspci

(snip a portion of the output)

00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 93)
00:1f.0 ISA bridge: Intel Corporation ICH9M LPC Interface Controller (rev 03)
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03)
00:1f.3 SMBus: Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 03)
09:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8040 PCI-E Fast Ethernet Controller (rev 13)
0c:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g LP-PHY (rev 01)

If the device does not appear in lspci, you can fall back on the dmesg command to doublecheck it. Be prepared, though, for a lot more output; dmesg dumps the entire list of devices detected by the kernel.

Identifying which Broadcom driver you need:

The two drivers are the B43 and the B43-Legacy drivers. This information on identifying which one you need is taken from the LinuxWireless page on Broadcom drivers and Linux. That page is excellent background on Broadcom and Linux. What follows does not apply the Broadcom USB devices, only to Broadcom PCI devices.

Here are a few highlights from that page:

The lspci -vnn -d 14e4 command will tell you whether you need the b43 or b43 legacy drivers. I have highlighted the significant part; it can be interpreted by cross-referencing it at a table at the LinuxWireless link above.


Code:

# lspci -vnn -d 14e4:
0c:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)

This indicates that the specific chipset is BCM4312. Note that lspci had also identified the chip as BCM4312.

Distro-Related Resources:

Some distros may install Broadcom drivers automatically. For others, you may need to enable additional repos beyond the default list in your package manager. The Broadcom drivers are not open source, and distros have different policies regarding "binary blobs." Here is some information for various popular distros:

Ubuntu:

When I used Ubuntu (up through v. 11.10), I needed to enable the "Proprietary Drivers for Devices" repo to obtain the Broadcom drivers; I installed v. 12.04 in VirtualBox, and it appears that those repos are now enabled by default. I was not able to test them, though.

Also, in Ubuntu System Settings-->Hardware, there is an "Additional Drivers" item. In the past, I have used that to obtain Broadcom drivers for my Dell Mini 9 netbook.

Here is the Ubuntu's HOWTO on Broadcom drivers.

Mint:

The situation with Mint is similar to that with Ubuntu. In my Linux Mint 13, the Broadcom drivers are present in the repos and the "Additional Drivers" item in Control Center-->Hardware. LMDE (Linux Mint Debian Edition may be different, because Debian is agressively free as regards proprietary software. This article from the Mint forums should help. My Mint computer does not have Broadcom, so I have not tested this.

Debian;

Debian is aggressively free as regards non-open source software, but does offer help on it's wiki on enabling Broadcom.

Fedora:

I don't have much direct experience with Fedora. I did use if for while on the Acer Travelmate and the Broadcom wireless worked out-of-the-box, but, as I said, that's an older chip and the support is in the kernel. There is a nice HOWTO on the Fedora forums.

SalixOS:

SalixOS has a very nice page on how to get Broadcom working; it worked flawlessly for me the first time on my Dell Mini 9.

Arch:

Here are two links from the Arch Wiki that will help you with Arch: a general article on wireless and Arch and one specifically about Broadcom and Arch.

OpenSUSE:

The Unofficial Guide to OpenSUSE has directions for enabling Broadcom.

Slackware:

Packages for enabling Broadcom are available at Slackbuilds dot org.

I needed three of these four elements and a lot of help from LQ to get the wireless going on my Dell 1545n:
  • the broadcom-sta driver
  • the b43-fwcutter, and
  • the appropriate firmware--in my case, the b43-firmware, not the b43-legacy-firmware, to get my Broadcom working on that computer.

I also recommend using wicd as your network manager on Slackware; it's in the Slackware Extras.

There's also an article on Broadcom on the new Slackwiki currently being developed.

I hope this helps. If you still need to post about your Broadcom chip, including the output of some of the diagnostic commands listed above will help others help you. Please make sure to enclose it in "code" tags, which become available when you click "Go Advanced" down there at the bottom of the Quick Reply window.

papaken 02-04-2013 09:37 AM

Problem Solved!
 
Thanks for your help, frankbell. I'm online!

Jim44 02-05-2013 06:52 AM

Not working in Mint 13.
 
This is a compaq presario. The driver appears to be installed, and the Additional Drivers window says "installed and working".

See:
lspci -vnn -d 14e4:
05:02.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)
Subsystem: Hewlett-Packard Company Broadcom 802.11b/g WLAN [103c:1355]
Flags: bus master, fast devsel, latency 64, IRQ 20
Memory at c0204000 (32-bit, non-prefetchable) [size=8K]
Kernel driver in use: b43-pci-bridge
Kernel modules: wl, ssb

But ifconfig -a shows no wlan0. I know the little button on the panel is in the right position, since I booted xp and it was working OK. When this is working the little light on the button is light. It is not now.

Where do I go from here? This is a 64 bit install.

Thanks, Jim.

I did notice that the list of supported cards in the description in the Additional Drivers window didn't include the 4318.

frankbell 02-05-2013 08:39 PM

What distro? It can make a difference in the how-to. Also, some distros report "eth1" instead of "wlan0." Please post the output of ifconfig -a.

You might try Googling "broadcom 4318 [distro name]"--I searched for "broadcom 4318 linux" and found articles about Mint, Fedora, and Ubuntu on the first page.

Jim44 02-06-2013 05:22 AM

Quote:

Originally Posted by frankbell (Post 4885163)
What distro? It can make a difference in the how-to. Also, some distros report "eth1" instead of "wlan0." Please post the output of ifconfig -a.

You might try Googling "broadcom 4318 [distro name]"--I searched for "broadcom 4318 linux" and found articles about Mint, Fedora, and Ubuntu on the first page.

My subject mentioned Mint 13. I've pretty much exhausted the google references.None of them that I could find went beyond getting the driver activated. I guess it's assumed that if the driver is working then surely there is a wlan device. I have had problems with Network Manager in the past. I had better luck with wicd, but haven't replaced Network Manage just yet.

Code:

ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:c0:9f:cc:df:15 
          inet addr:192.168.2.125  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::2c0:9fff:fecc:df15/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:115289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:98673 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:19032778 (19.0 MB)  TX bytes:21135101 (21.1 MB)
          Interrupt:18 Base address:0xa000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:157322 errors:0 dropped:0 overruns:0 frame:0
          TX packets:157322 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:25108327 (25.1 MB)  TX bytes:25108327 (25.1 MB)

Thanks

frankbell 02-07-2013 07:41 PM

Sorry for missing the reference in your subject line.

It looks as if the system is not recognizing your Broadcom. Wicd might be worth a try; I prefer it to gnome-network-manager myself. On one of my computers, simply installing wicd was enough to wake up the Broadcom chip, but I can't remember what chipset it was using and can't access it right now.

I found a couple of threads that might help:

http://linux-bsd-sharing.blogspot.co...m-bcm4318.html

http://forums.linuxmint.com/viewtopic.php?f=194&t=70670

Please let us know what happens; I sure we can sort this out.

Jim44 02-08-2013 07:11 AM

Quote:

Originally Posted by frankbell (Post 4886672)
Sorry for missing the reference in your subject line.

It looks as if the system is not recognizing your Broadcom. Wicd might be worth a try; I prefer it to gnome-network-manager myself. On one of my computers, simply installing wicd was enough to wake up the Broadcom chip, but I can't remember what chipset it was using and can't access it right now.

I found a couple of threads that might help:

http://linux-bsd-sharing.blogspot.co...m-bcm4318.html

http://forums.linuxmint.com/viewtopic.php?f=194&t=70670

Please let us know what happens; I sure we can sort this out.

Hi, Frank,

Here's the results of the suggestions from your first link:

Code:

root@Laptop:/root/broadcom-wl-4.150.10.5/driver# b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o
This file is recognised as:
  filename  :  wl_apsta_mimo.o
  version    :  410.2160
  MD5        :  cb8d70972b885b1f8883b943c0261a3c
Extracting b43/pcm5.fw
Extracting b43/ucode15.fw
Extracting b43/ucode14.fw
Extracting b43/ucode13.fw
...
root@Laptop:/root/broadcom-wl-4.150.10.5/driver# modprobe b43
FATAL: Error inserting b43 (/lib/modules/3.2.0-37-generic/kernel/drivers/net/wireless/b43/b43.ko): Unknown symbol in module, or unknown parameter (see dmesg)
root@Laptop:/root/broadcom-wl-4.150.10.5/driver# dmesg | tail
...
[ 3776.574205] b43: Unknown parameter `blacklist'

Another post (not one of your references) said to try:
Code:

sudo apt-get install bcmwl-kernel-source
sudo modprobe wl

That results in a kernel panic from the install step.
Also after rebooting dpkg is broken. Any attempts to use apt-get or dpkg result in an error message suggesting you do dpkg --configure -a. When you do that, the previous install attempts to complete and panics again. Bit of a catch-22. I think I'll have to boot a live disk and see if I can clean things up with a chroot.

TobiSGD 02-08-2013 07:23 AM

Quote:

Originally Posted by Jim44 (Post 4886983)
[ 3776.574205] b43: Unknown parameter `blacklist'
[/code]

Please post the output of the command
Code:

grep -H b43 /etc/modprobe.d/*

Jim44 02-08-2013 08:06 AM

I went back and removed firmware-b43-installer and reinstalled it. Modprobe b43 tossed an unknown option. Dmesg said it was an unknown "blacklist". The only blacklist I had was in grub line, 'cause it wouldn't boot without it. I figured let's take it off and see what happens.

Now I have a wlan0, but I can't do anything with it. Wicd says no wireless network found. I put wlan0 as the wireless device in the preferences config menu.

Code:

root@Laptop:~# iwconfig wlan0
wlan0    IEEE 802.11bg  ESSID:off/any 
          Mode:Managed  Access Point: Not-Associated  Tx-Power=off 
          Retry  long limit:7  RTS thr:off  Fragment thr:off
          Encryption key:off
          Power Management:off
         
root@Laptop:~# iwlist wlan0 scan
wlan0    Interface doesn't support scanning : Network is down

I don't know what to do next.

Jim.

Jim44 02-08-2013 08:43 AM

Quote:

Originally Posted by Jim44 (Post 4887011)

I don't know what to do next.

Jim.

In order to assure myself the hardware was still working, I booted a Centos live disk. The wireless network came up running. I poked at it so see if there was anything different, but didn't find anything. When I rebooted Mint, the light came on and the wlan0 was present and working.

The only think I can think of is that the boot into Centos enabled something on the chip.

I have a blue light, a wireless connection and am happy.

Thanks,
Jim.

frankbell 02-08-2013 07:43 PM

Usually, Linux doesn't need a reboot for this sort of stuff, but maybe that's what was needed.

It sounds like when, when I worked support, we would tell the caller, "It was an FM problem," which loosely translates as "freaking magic." (Of course, our callers were techs who knew what "FM" meant, so it was sort of an inside joke with them.)

Anyway, glad it's fixed.

PreferenceTaken 02-10-2013 07:40 PM

Thanks much frank. Awesome thread I had some issues early on with the b43/legacy distinction but you put it right out front. Nice and easy

Cheers

frankbell 02-10-2013 08:28 PM

Thanks. I proposed the thread hoping that someone could benefit from my struggles with Broadcom.

I certainly don't know all the answers--I'm basically an advanced hobbyist--but if I can help someone farther down the road, I'm happy.

rob.rice 01-07-2014 02:08 AM

Don't make the same stupid misstake I did
AFAIK all laptops have an external hardware wifi switch even though windbloz ignores this switch
with linux it matters whether it's on or off
so you may have it setup right but it still will not work until the switch is turned on
so check the switch

aus9 01-07-2014 04:05 AM

frankbell

nice tutorial

some suggestions if you care to ponder

1) You may wish to explain that there is the driver...maybe from a kernel
and firmware.....typically from a packages called firmware-something

(true for debian and a quick search for broadcom ---mainly non-free software shows)
broadcom-sta-common
firmware-bnx2
firmware-bnx2x
firmware-brcm80211
firmware-linux-nonfree
bluez-firmware
firmware-b43-installer
firmware-b43legacy-installer
firmware-crystalhd


2) altho I have diff hw, I like the gui wicd-gtk

which AFAIK is independent of most desktop environments/window managers
----and altho it looks like a wireless only control panel
-------it also does ethernet

cheers

rob.rice
+1

and don't forget with laptops to look at enabling wifi and or bluetooth in the bios


All times are GMT -5. The time now is 12:32 AM.