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:
- If the wired connection does not work, you may be facing a larger problem, and
- 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.