Search:  
Gentoo Wiki

Broadcom_43xx

Contents

Overview

This article will detail the configuration of Broadcom 43xx series devices. Note that this article only covers the specifics required for these devices. For generic installation instructions please see the Gentoo Handbook.

Driver Support

Please add your device here. The pciid and subsystem id can be discovered using lspci -vnn

PCI ID Subsystem PCI ID Device name bcm43xx b43 b43-legacy
14e4:4320 103c:12fa
or
1737:4320
Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03) Partially Yes No
14e4:4318
or
14e4:4320
1799:7010 Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 02) Not tested No Yes
14e4:4311 1468:0422 Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 01) Not tested Yes Not tested
14e4:4318 103c:1355 Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g (rev 02) Not tested Yes Not tested
14e4:4312 1028:0007 Broadcom Corporation BCM4312 802.11a/b/g (rev 01) Not tested Yes Not tested
14e4:4312 103c:1370 Broadcom Corporation BCM4312 802.11a/b/g (rev 02) No Partially (results vary with kernel and patches) Not tested
14e4:4328 103c:1366 Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)* No No No


(*) N-series Broadcom chips are not supported by any of the 43xx drivers in Linux at this time (August 2008) - https://lists.berlios.de/pipermail/bcm43xx-dev/2008-May/007517.html

ndiswrapper

If the Windows drivers from your card or laptop manufacturer don't work, try searching for the pciid on the ndiswrapper wiki.

If you own a macbook (4th or 5th generation) try using the bootcamp winxp driver. It's located on the 1st install DVD and named "broadcomxpinstaller.exe", just unrar it.

Kernel Configuration

Enable the following options in the kernel, then build and install as normal:

Linux Kernel Configuration: Generic kernel options
 Networking -->
   Wireless -->
      <M>   Generic IEEE 802.11 Networking Stack 
      [*]     Enable full debugging output 
      <M>     IEEE 802.11 WEP encryption (802.1x) 
      <M>     IEEE 802.11i CCMP support 
      <M>     IEEE 802.11i TKIP encryption 
      <M>     Software MAC add-on to the IEEE 802.11 networking stack 
      [*]       Enable full debugging output 
Linux Kernel Configuration: Kernel options for bcm43xx
 Device Drivers --> 
   Network device support --> 
     Wireless LAN drivers (non-hamradio) & Wireless Extensions 
       <M>   Broadcom BCM43xx wireless support 
       [*]     Broadcom BCM43xx debugging (RECOMMENDED)
Linux Kernel Configuration: Kernel options for b43/b43-legacy
 Device Drivers --> 
   Network device support --> 
     Wireless LAN drivers (non-hamradio) & Wireless Extensions 
       <M>   Broadcom BCM43xx wireless support (mac80211 stack)
       [ ]   Broadcom 43xx PCMCIA device support (EXPERIMENTAL)
       [*]     Broadcom BCM43xx debugging
Linux Kernel Configuration: Extra Options for Laptops
    Networking  --->
      Wireless  --->
<M>     Generic IEEE 802.11 Networking Stack (mac80211)
[*]       Enable LED triggers
<M>   RF switch subsystem support  --->
<M>     Input layer to RF switch connector
    Device Drivers  --->
[*]   LED Support  --->
[*]     LED Trigger support
      Input device support  --->
-*-     Generic input layer (needed for keyboard, mouse, ...)
<M>       Polled input device skeleton

Notice: In some situations the option "Generic IEEE 802.11 Networking Stack (mac80211)" must be in tag by <*> (cf: this thread : "Native Airport Extreme Drivers (part 2)") )

Monitor mode

To set your card into monitor mode, you also need to patch the b43 and mac80211 module. The monitor mode is only needed for packet injection to be used for aircrack-ng and similar tools.

You can find documentation on these patches on the aircrack-ng website. The patches themselves can be downloaded from http://patches.aircrack-ng.org/.

The latest version that works with this card is, aircrack-ng 1.0 RC1. You can obtain an ebuild from here.

Kernel 2.6.25

Code: Installation
cd /usr/src/linux/
wget http://patches.aircrack-ng.org/b43-injection-2.6.25-wl.patch
wget http://www.latinsud.com/bcm/mac80211_2.6.24.4_frag.patch
patch -p1 < b43-injection-2.6.25-wl.patch
patch -p1 < mac80211_2.6.24.4_frag.patch
make && make modules_install

Kernel 2.6.26

It is best to use the wireless testing kernel to patch against:

Code: git Wireless Testing Kernel
cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
Code: Installation
cd /usr/src/linux/
wget http://patches.aircrack-ng.org/b43-injection-2.6.26-wl.patch
wget http://patches.aircrack-ng.org/mac80211_2.6.26-wl_frag.patch
patch -p1 < b43-injection-2.6.26-wl.patch
patch -p1 < mac80211_2.6.26-wl_frag.patch
make && make modules_install

Firmware / fwcutter

In addition to the kernel driver, you will need the firmware and a firmware cutter (which extracts the firmware and places it in /lib/firmware) for your card.

For a list of supported devices and the latest information for each driver, see the relevent project documentation page:

bcm43xx

You'll first need to unmask the cutter with: echo "net-wireless/bcm43xx-fwcutter" >> /etc/portage/package.keywords

Install the firmware cutter with: emerge bcm43xx-fwcutter

Download the appropriate firmware file from the bcm43xx documentation site.

Cut the firmware with: bcm43xx-fwcutter <firmware file>

Assuming you're now using the kernel with the bcm43xx driver in, you can load it with: modprobe bcm43xx

b43 / b43-legacy

You'll first need to unmask the cutter with: echo "net-wireless/b43-fwcutter" >> /etc/portage/package.keywords

Install the firmware cutter with: emerge b43-fwcutter

Download the appropriate firmware file from the b43 documentation site.

Cut the firmware with: b43-fwcutter <firmware file>

Assuming you're now using the kernel with the b43(-legacy) driver in, you can load it with: modprobe b43 or modprobe b43-legacy

Troubleshooting

General Advice

Your first port of call when problem arise is the output of dmesg, which displays the kernel log.

WEP encryption is not enabled for your device

If you get an error message saying "WEP encryption is not enabled for your device" or similar it may be necessary to compile the following into the kernel to ensure that the required cryptographic options are enabled. If you compile the cryptographic options as modules, they may not be loaded automatically by the driver.

iwconfig reports txpower off

On some laptops the driver does not intialise the device in powered on mode. This can be resolved by adding the following to your network configuration (assuming wlan0 is the device name).

File: /etc/conf.d/net
postup () {
        if [[ ${IFACE} == "wlan0" ]]; then
                iwconfig wlan0 txpower on
        fi
}

Related Links

Retrieved from "http://www.gentoo-wiki.info/Broadcom_43xx"

Last modified: Mon, 29 Sep 2008 12:24:00 +0000 Hits: 17,525