NOTE: this page is for archival only, see the note at the end of the page.

b43 and b43legacy

The b43 drivers (bcm43xx in mainline kernels, b43 and b43legacy in wireless-2.6 and 2.6.24 and later) are drivers for the 802.11 B/G family of wireless chips Broadcom produces. The choice of which driver your card uses depends on the revision level of the 802.11 core. This number is read by driver ssb, and the correct choice for your device is made at that point. Note: If your card is a BCM4306 Rev 2, or only has 802.11b capability, it uses b43legacy. All other models use b43.

FAQ - Frequently asked questions

Please read this whole document and the FAQ before asking any questions to the developers.

caveats

All Broadcom chips require firmware that is loaded onto the wireless chip before it can operate. See below.

If you have an USB device with Broadcom chip, please try the rndis_wlan driver. The b43/b43legacy driver will never support this device.

Note that card identified as BCM 4310 USB (with outdated lspci databse) is BCM4312 and uses the PCI-E bus, despite its name.

b43/b43legacy drivers conflicts with broadcom-wl otherwise known as Broadcom's 802.11 Linux STA driver or broadcom-sta. Make sure that if you want to use b43 in favour of broadcom-sta and your Broadcom wireless chipset is supported from the device list you will need to either remove or unload the broadcom-wl driver first prior to using b43 by following: How do I use b43/b43legacy driver instead of broadcom-wl?

Known PCI devices

Whether a PCI device is supported by the b43/b43legacy driver can be found out with the lspci command:

lspci -vnn | grep 14e4

The command will result in a string similiar to this example:

0001:01:01.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

You should ignore anything, except the last part inside of the [ ] brackets. In the table below you can check whether your device is supported.

PCI-ID

Supported

Chip

Modes

PHY version

Alternative

14e4:4301

yes (b43legacy)

BCM4301?

b

B

14e4:4301

yes (b43legacy)

BCM4303

b

B

14e4:4306

yes (b43legacy)

BCM4306/2

b/g

G

14e4:4320

yes (b43legacy)

BCM4306/2

b/g

G

14e4:4307

yes

BCM4306/3

b/g

G

14e4:4311

yes

BCM4311

b/g

G

wl

14e4:4312

yes

BCM4311

a/b/g

G

wl

14e4:4313

unknown

BCM4311

a

?

wl

14e4:4315

partially in 2.6.33 and later

BCM4312

b/g

LP (r1)

wl

14e4:4318

yes

BCM4318

b/g

G (r7)

14e4:4319

yes

BCM4318

a/b/g

G

14e4:4320

yes

BCM4306/3

?

?

14e4:4320 (USB)

no (USB device)

?

?

?

rndis_wlan

14e4:4321

no

?

?

?

wl

14e4:4322

no

BCM4322

b/g/n

N (r4)

wl

14e4:4323 (USB)

no (USB device)

?

?

?

ndiswrapper

14e4:4324

no?

?

?

?

wl

14e4:4325

no

?

?

?

wl

14e4:4327

no

?

?

?

wl

14e4:4328

no

BCM4321

b/g/n

N (r2)

wl

14e4:4329

no

BCM4321

?

N (r1)

wl/brcmfmac via brcm80211

14e4:432a

no

?

?

N

wl

14e4:432b

no

BCM4322

?

N (r4)

wl

14e4:432c

no

?

?

N

wl

14e4:432d

no

?

?

N

wl

14e4:4353

no (SSB less)

BCM43224

a/b/g/n

N

wl/brcm80211

14e4:4357

no (SSB less)

BCM43225

a/b/g/n?

N?

wl/brcm80211

14e4:4727

no (SSB less)

BCM4313

b/g/n

N

wl/brcm80211

14e4:5354

yes?

?

b/g

LP

Note that the PCI-ID is _not_ in direct correlation with the Chip-ID. The Chip-ID is printed to the kernel log by the b43 driver on startup (example):

b43-phy0: Broadcom 4318 WLAN found

Often the PCI-ID equals the Chip-ID, but that's not always the case and it's a constant source of confusion.

Also please note that any listed devices on the device listing noting more than one driver support separated by a forward slash "/" means that you can only use one of the mentioned drivers simultaneously. It does not mean you can run two or more drivers simultaneously without unloading at least one of the drivers mentioned as the drivers conflict.

Supported chip types

  • BCM4303 (802.11b-only chips, uses b43legacy)
  • BCM4306 (Rev. 2 uses b43legacy, Rev. 3 uses b43)
  • BCM4309 (only the 2.4GHz part)
  • BCM4311 rev 1 / BCM4312
  • BCM4311 rev 2 / BCM4312 (needs patches for 2.6.24)
  • BCM4312 with a/b/g (only the 2.4GHz part)
  • BCM4313 with b/g (partially supported in 2.6.32, however 2.6.33 or latter is recommended)
  • BCM4315 (BCM4312 LP/PHY. linux-kernel 2.6.32 is needed, 2.6.33 or latter is recommended)
  • BCM4318

Unsupported chips

  • The 802.11a part of the 4309 and 4311 is not supported.
  • BCM4320 USB - not supported by b43/b43legacy, try rndis_wlan

  • BCM4322 a/b/g/n - These device have unsupported N-PHYs. We are working on it.
  • BCM4321 - These devices have unsupported N-PHYs. We are working on it.
  • Any other Broadcom chipsets not listed above are not supported. Feel free to notify the devs via mailing list and/or IRC channel of newer variants

Known issues

  • LP-PHY devices: DMA errors on some machines. Using PIO (module param) can be used as workaround
  • N-PHY devices: poor performance
  • BCM4318 chipset: AP mode does not work because of packet loss in high transmission rates. Hard to debug & fix.

available devices

Please see the device list.

features

working

  • Station mode
  • Mesh networking mode (b43 only)
  • Access Point mode
  • Ad-Hoc (IBSS) mode (b43 only)
  • Monitor and Promisc mode.
  • "Monitor while operating" and multiple monitor interfaces.
  • In-Hardware traffic de/encryption (relieves your CPU).
  • LEDs to signal card state and traffic.
  • In-Hardware MAC address filter (b43 only; impossible on b43legacy hardware)
  • Packet injection (with radiotap; no FCS injection currently though hardware supports it - a radiotap flag is being discussed for this)
  • Bluetooth coexistence protection, if the bluetooth card is physically connected to the wireless chip. (Does not protect against external BT dongles)
  • Probably something we forgot to add here.

not working yet

  • Interference mitigation.
  • Probably something else that's not listed under "Works".

donations

Many people have donated money, hardware or other services to make this driver possible. Thanks! Please see the donations page for details.

support

IRC channel
irc.freenode.net #bcm-users (English please). Please note that we do not support users with wl drivers, you should email Broadcom for support.
Mailing list

http://lists.infradead.org/mailman/listinfo/b43-dev

device firmware installation

The Broadcom wireless chip needs software, called "firmware", that runs on the wireless chip itself during operation. This firmware is copyrighted by Broadcom and must be extracted from Broadcom's proprietary drivers. To get such firmware on your system, you must download the driver from a legal distribution point, as noted below. Then you must extract the firmware from that Broadcom driver by using b43-fwcutter (or bcm43xx-fwcutter) and install it in the special directory for firmware - usually /lib/firmware. Please note that the firmware from the binary drivers is copyrighted by Broadcom Corporation and must not be redistributed.

Some distributions have special methods for installing the firmware. In general these consist of a special command entered at a terminal. Because the proprietary driver containing the firmware cannot be included in the distribution, you will need a working connection to the Internet. Please post details for distros that are missed at b43-dev@lists.infradead.org .

Also please note that any listed devices on the device listing noting more than one driver support separated by a forward slash "/" means that you can only use one of the mentioned drivers simultaneously. It does not mean you can run two or more drivers simultaneously without unloading at least one of the drivers mentioned as the drivers conflict.

Fedora

With Fedora 10 and above, You need to install the b43-fwcutter tool (which will extract firmware from the Windows driver) and wget:

   1 su -
   2 yum install b43-fwcutter wget

Next, download the Windows driver:

   1 wget http://downloads.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2

Next decompress, extract and copy firmware to /lib/firmware directory.

   1 tar xjf broadcom-wl-4.150.10.5.tar.bz2
   2 cd broadcom-wl-4.150.10.5/driver
   3 b43-fwcutter -w /lib/firmware/ wl_apsta_mimo.o

openSUSE

openSUSE 11.0 and above include a utility that will automatically download the firmware and install it into its proper location. With working Internet access (via wired Ethernet, for example), run the following command:

   1 sudo /usr/sbin/install_bcm43xx_firmware

Ubuntu/Debian

In recent versions of Ubuntu and Debian, installing the b43-fwcutter package will handle everything for you:

   1 sudo apt-get install b43-fwcutter

You will be asked to automatically fetch and install the firmware into the right location.

Update: Ubuntu has a page detailing on how one goes about installing broadcom wireless drivers on their community documentation.

If you have internet access on the device that has a b43 supported broadcom wireless chipset and would like to use b43, follow this link: https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43%20-%20Internet%20access .

If you do not have internet access on the device that has a b43 supported broadcom wireless chipset and would like to use b43, follow this link instead: https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx#b43%20-%20No%20Internet%20access .

Note that you can only follow one of the two guides, not both.

Gentoo

Gentoo systems supply a pre-compiled binary for b43-fwcutter. You need to "emerge b43-fwcutter", and then follow the instructions below to download the Broadcom driver. The line that invokes b43-fwcutter will need to be changed to execute the program emerged above.

Mandriva

Mandriva's graphical network card configuration tool, drakconnect, will extract the firmware from the Broadcom driver, which must be downloaded before configuring the card. For versions through 2008 Spring, you will need the V3 driver described below. Beginning with 2009, you will need either the V3 or V4 driver depending on whether your device uses b43legacy or b43. Either the wget command below, or a browser download will get the appropriate file.

Other distributions that are not mentioned above

Note: If you cannot use your distribution's packages, you need to have a compiler and headers for libc installed. The reason for this requirement is that you will have to build fwcutter.

There are different versions of firmware and tools you may need:

Driver

Kernel

Firmware

Firmware extractor

Instructions

b43

Linux-2.6.24, including 2.6.24-rcX and 2.6.24.Y

4.80.53.0

b43-fwcutter v. 12

Go

b43

Linux-2.6.25 and newer, compat-wireless-2.6 package, current GIT trees

4.150.10.5

b43-fwcutter v. 12

Go

b43

Linux-2.6.31 and newer, compat-wireless-2.6 package, current GIT trees - for LP-PHY cards

4.178.10.4

b43-fwcutter v. 13

Go

b43legacy

Any

3.130.20.0

b43-fwcutter v. 12

Go

bcm43xx (deprecated)

Any

3.130.20.0

bcm43xx-fwcutter v. 6

Go

To accomplish this task, do the following:

Install b43-fwcutter

Use version 013 of b43-fwcutter.
Download, extract the b43-fwcutter tarball and build it:

   1 wget http://bu3sch.de/b43/fwcutter/b43-fwcutter-013.tar.bz2
   2 tar xjf b43-fwcutter-013.tar.bz2
   3 cd b43-fwcutter-013
   4 make
   5 cd ..

You are using the b43 driver from linux-2.6.24

If you are using the b43 driver from linux-2.6.24, follow these instructions.

Install b43-fwcutter, then use version 4.80.53.0 of Broadcom's proprietary driver.
Download and extract the firmware from this driver tarball:

   1 export FIRMWARE_INSTALL_DIR="/lib/firmware"
   2 wget http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2
   3 tar xjf broadcom-wl-4.80.53.0.tar.bz2
   4 cd broadcom-wl-4.80.53.0/kmod
   5 sudo ../../b43-fwcutter-013/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o

Note that you must adjust the FIRMWARE_INSTALL_DIR path to your distribution. The standard place where firmware is installed to is /lib/firmware. However some distributions put firmware in a different place.

You are using the b43 driver from linux-2.6.25 or newer

Follow these instructions if you are using the b43 driver from linux-2.6.25 and newer or compat-wireless-2.6, or from any current GIT tree.

Install b43-fwcutter, then use version 4.150.10.5 of Broadcom's proprietary driver.
Download and extract the firmware from this driver tarball:

   1 export FIRMWARE_INSTALL_DIR="/lib/firmware"
   2 wget http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
   3 tar xjf broadcom-wl-4.150.10.5.tar.bz2
   4 cd broadcom-wl-4.150.10.5/driver
   5 sudo ../../b43-fwcutter-013/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta_mimo.o

Note that you must adjust the FIRMWARE_INSTALL_DIR path to your distribution. The standard place where firmware is installed to is /lib/firmware. However some distributions put firmware in a different place.

You are using the b43 driver with an LP-PHY card (e.g. BCM4312)

Follow these instructions if you are using the b43 driver from linux-2.6.32 and newer or compat-wireless-2.6, or from any current GIT tree, and have a device with a low-power PHY.

Install b43-fwcutter, then use version 4.174.64.19 of Broadcom's proprietary driver. (The tarball is mislabeled as "4.178.10.4", but it is actually 4.174.64.19.)
Download and extract the firmware from this driver tarball:

   1 export FIRMWARE_INSTALL_DIR="/lib/firmware"
   2 wget http://downloads.openwrt.org/sources/broadcom-wl-4.178.10.4.tar.bz2
   3 tar xjf broadcom-wl-4.178.10.4.tar.bz2
   4 cd broadcom-wl-4.178.10.4/linux
   5 sudo ../../b43-fwcutter-013/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta.o

Note that you must adjust the FIRMWARE_INSTALL_DIR path to your distribution. The standard place where firmware is installed to is /lib/firmware. However some distributions put firmware in a different place.

You are using the b43-legacy driver

If you are using the b43legacy driver, follow these instructions.

Install b43-fwcutter, then use version 3.130.20.0 of Broadcom's proprietary driver.
Download and extract the firmware from this driver:

   1 export FIRMWARE_INSTALL_DIR="/lib/firmware"
   2 wget http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
   3 sudo ./b43-fwcutter-013/b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta-3.130.20.0.o

Note that you must adjust the FIRMWARE_INSTALL_DIR path to your distribution. The standard place where firmware is installed to is /lib/firmware. However some distributions put firmware in a different place.

You are using the deprecated bcm43xx driver

If you are using the old deprecated bcm43xx driver, follow these instructions.

Use version 006 of bcm43xx-fwcutter.
Download, extract the bcm43xx-fwcutter tarball and build it:

   1 wget http://bu3sch.de/b43/fwcutter/bcm43xx-fwcutter-006.tar.bz2
   2 tar xjf bcm43xx-fwcutter-006.tar.bz2
   3 cd bcm43xx-fwcutter-006
   4 make
   5 cd ..

Use version 3.130.20.0 of Broadcom's proprietary driver.
Download and extract the firmware from this driver:

   1 export FIRMWARE_INSTALL_DIR="/lib/firmware"
   2 wget http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
   3 sudo ./bcm43xx-fwcutter-006/bcm43xx-fwcutter -w "$FIRMWARE_INSTALL_DIR" wl_apsta-3.130.20.0.o

Note that you must adjust the FIRMWARE_INSTALL_DIR path to your distribution. The standard place where firmware is installed to is /lib/firmware. However some distributions put firmware in a different place.

bug reporting

You should send a message to the b43/b43legacy mailing list at b43-dev@lists.infradead.org containing ALL of the following:

  • A description of the problem at hand
  • When it happens
  • How to reproduce
  • The output of the following commands:

   1 uname -a
   2 
   3 lspci -vvn|grep 43 -A7
   4 
   5 dmesg
  • wlan configuration, authentication/encryption type

In addition the following may be of interest to developers:

  • If you have built the kernel from git, tell which tree, and the output of "git describe"
  • If the driver worked with earlier kernels, but has since stopped working, a bisection is of great value.

bcm43xx, b43legacy, b43, softmac,... the full story

The bcm43xx is the old deprecated driver. It is using the ieee80211 + softmac libraries of code shared with other drivers. This stack is deprecated and being replaced by the new mac80211 stack. A new stack implies brand new, re-written driver(s): here come b43 and b43legacy.

What's the difference between b43legacy and b43?

b43 offers a newer codebase and hardware crypto support. Broadcom did not release any version 4 firmware files for some older boards, possibly due to memory constraints on the cards themselves. Stuck with firmware version 3, these cards must use b43legacy which doesn't have hardware crypto support because that has not been reverse engineered completly for version 3 firmware.

bcm43xx

b43legacy

b43

needs firmware

version 3

version 4

extracted by

bcm43xx-fwcutter

b43-fwcutter

depends on

softmac

mac80211

b43legacy should be used on all 4301 and 4303 cards. 4306 and 4309 cards with a MAC core revision of 4 or less should also use b43legacy. b43 should be used on all other cards. You can safely have both versions built on the same system. The full MAC core version is printed in the kernel logs when "SSB debugging" is enabled in KConfig and the driver finds a board. Type "dmesg" to see it. If you are unsure and don't know what we are talking about here, always build both b43 and b43legacy (and get firmware for both too). The kernel autoloader will automatically do the right thing and load the correct driver for your device.

And why is there now broadcom-wl?

Broadcom has elected to create their own proprietary driver possibly due to various portable computer manufacturers like Dell including Broadcom's wireless chipsets in their devices. Many users/owners have expressed concerns and the pain of using ndiswrapper so the driver was created to alleviate such issues.

The difference with broadcom-wl driver compared to b43/b43legacy is that broadcom-wl can only offer connection to AP or Ad-Hoc network, it does not offer AP modes and Monitor modes. Furthermore the driver does not corporate well with iw tools because it has its own ieee80211 stack that is both outdated and does not work with mac80211 stack which b43/b43legacy is based on.

Users/Owners of unsupported Broadcom device wanting more functionality/support out of wl driver will have no choice but to continue emailing Broadcom. There will be no support offered on either the mailing list or the IRC channel due to the fact that the driver is mainly a proprietary binary blob. This is not due to b43 developers' fault but Broadcom's own internal conflicts with the linux community.

Any potential unsupported Broadcom wireless owners should note that if they would want native linux driver support should seek another wireless chipset manufacturer apart from Broadcom to alleviate this issue.

Update 09/09/2010: Broadcom has released an open driver for their SSB-less chipsets, whilst it only supports three chipsets (bcm4313, bcm43224, bcm43225) and the driver is in staging (which will be merged into kernel 2.6.37 under brcm80211). More information: http://lwn.net/Articles/404248/

Update 27/11/2010: Broadcom has now added staging support for bcm4329 via brcmfmac under brcm80211. The included documentation noted 4329 (SDIO) support however this may work with other variants of the bus interconnection apart from SDIO.

How do I use b43/b43legacy driver instead of broadcom-wl?

If you want to use b43 in favour of broadcom-sta and your Broadcom wireless chipset is supported from the device list you will need to either remove or unload the broadcom-wl driver first prior to using b43. To do this you must first unload the module:

  •    1 modprobe -r wl
    

For those whom have partial b43 support may want to retain broadcom-wl driver. Blacklisting broadcom-wl is recommended to prevent the driver from being automatically loaded:

  •    1 echo "blacklist wl" >> /etc/modprobe.d/blacklist
    

This will make b43 to be automatically loaded when the device starts up instead of broadcom-wl however you may want to switch across to broadcom-wl driver so that you can use broadcom-wl driver instead of b43. So to switch from b43/b43legacy to wl you will need to first unload the b43/b43legacy driver:

  •    1 modprobe -r b43
       2 modprobe wl
    

Those who wish to remove broadcom-wl driver should seek their distribution documentation in regards to removing the driver entirely.

Once the driver has been unloaded you may use b43/b43legacy or vice versa. Do also make sure to note that you will need to follow device firmware installation should you have not followed the guide previously for your current device setup.

related tools

  • ssb-sprom
    • A tool for the modification of the Broadcom Sonics Silicon Backplane SPROM (e.g. you can permanently change the MAC address or the PCI IDs of your wireless card – useful on some (e.g. Compaq/HP) laptops where the BIOS checks these at boot. It's now part of b43-tools:
      git clone git://git.bu3sch.de/b43-tools.git
    • To use the sprom tool, it is necessary to get a disk copy of your sprom from the /sys file system. The file path for the sprom contents depends on the bus layout of the specific computer being used and will be something like
      /sys/devices/pci0000:00/0000:00:0d.0/0000:04:00.0/ssb_sprom
    • It is not recommended that you try to type the name. Instead, you should use the following commands to get the working copy:
      SSB_SPROM=$(find /sys/devices -name ssb_sprom)
      echo $SSB_SPROM
    • If the echo command only results in a single instance of "/sys/...", you may proceed. For systems with more than one SSB-based interface, there will be such a string for each, and the command that sets the SSB_SPROM symbol will have to be changed. In the name above, the sequence states that this device is attached to the 0'th PCI bus via bridge 0d.0 and is device 04:00.0 on that bridge. To find which of your SSB devices to select, use the 'lspci -v' command. On my system, the first line of such output for my interface is "04:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)". For this device, one would use
      SSB_SPROM=$(find /sys/devices -name ssb_sprom | grep 04:00.0)
      echo $SSB_SPROM
    • Of course, the "04:00.0" needs to match your system, and check the output value to determine that there is now a single instance of "/sys..." and that the path matches the device whose SPROM is to be changed. If not, adjust the string after 'grep' accordingly.
    • Once the SSB_SPROM variable matches the path to ssb_sprom for your device, get a working copy of the sprom contents with
      sudo cat $SSB_SPROM > ssb_sprom_copy
    • You may now look at the contents of your sprom with the command
      ssb-sprom -i ssb_sprom_copy -P
    • As an example, let us suppose that you have purchased a Dell mini-pci card to use in an HP laptop. The HP BIOS refuses to use the card when the pcivendor is Dell (code 0x1028), not HP (code 0x103C). From the information provided by an "ssb-prom –help" command, we learn that the switch needed to change this vendor code is "–subv". To change that code, we use the command
      ssb-sprom -i ssb_sprom_copy -o new_ssb_sprom_copy --subv 0x103C
    • to write the HP vendor ID to our working copy. I use different input and output files so as not to destroy the original. If further changes are needed, for example the PCI product ID, the command
      ssb-sprom -i new_ssb_sprom_copy -o new_ssb_sprom_copy --subp 0x137C
    • would be used. Note that the input and output files may be the same.
    • Once you think you have updated correctly, use the following to check the contents:
      ssb-sprom -i ssb_sprom_copy -P
    • Once the sprom contents are the way you want them, and presumably correct, you are ready to rewrite the file. First, use
      echo $SSB_SPROM
    • to ensure that this symbol still contains the SPROM path. If not, then it will have to be reloaded as discussed above.
    • You are then ready to rewrite the sprom with
      sudo cp new_ssb_sprom_copy $SSB_SPROM
    • IMPORTANT: The 2.6.32 kernel will throw the following error message and refuse to write the SPROM:

      SPROM write: Could not freeze devices. No suspend support. Is CONFIG_PM enabled?
    • Apply the following patch to the 2.6.32 kernel to allow programming the SPROM on that kernel. Alternatively install a newer or an older kernel.

      http://marc.info/?l=linux-wireless&m=125900356410309&q=raw
    • Once again, you are urged to be absolutely certain of the contents of the working copy BEFORE writing it to hardware. If your interface becomes unusable as a result of writing incorrect data into the sprom, the responsibility is YOURS. Once again, you have been warned.
  • A firmware assembler/disassembler can be found in the git repository at
    • git clone git://git.bu3sch.de/b43-tools.git
  • There are more development and debugging tools available in the b43-tools git repository. Just clone it and read the shipped documentation files.
    • git clone git://git.bu3sch.de/b43-tools.git
  • wpa_supplicant
    • A tool for enabling WPA and full IEEE 802.11i/RSN/WPA2 WPA-PSK and WPA2-PSK (pre-shared key) ("WPA-Personal") WPA with EAP.
    • wpa_supplicant may have a 'broadcom' driver that is used with the proprietary Broadcom driver. The bcm43xx, b43 and b43legacy drivers use the linux wireless extensions properly and so need the wext driver. This is set using the -D option like this:
    • wpa_supplicant -iwlan0 -Dwext -c/etc/wpa_supplement.conf
    • Of course, you don't need this if you're using NetworkManager.

external links


This is a static dump of the old wiki, taken after locking it in January 2015. The new wiki is at https://wireless.wiki.kernel.org/.
versions of this page: last, v385, v384, v383, v382, v381, v380, v379, v378, v377, v376, v375, v374, v373, v372, v371, v370, v369, v368, v367, v366, v365, v364, v363, v362, v361, v360, v359, v358, v357, v356, v355, v354, v353, v352, v351, v350, v349, v348, v347, v346, v345, v344, v343, v342, v341, v340, v339, v338, v337, v336, v335, v334, v333, v332, v331, v330, v329, v328, v327, v326, v325, v324, v323, v322, v321, v320, v319, v318, v317, v316, v315, v314, v313, v312, v311, v310, v309, v308, v307, v306, v305, v304, v303, v302, v301, v300, v299, v298, v297, v296, v295, v294, v293, v292, v291, v290, v289, v288, v287, v286, v285, v284, v283, v282, v281, v280, v279, v278, v277, v276, v275, v274, v273, v272, v271, v270, v269, v268, v267, v266, v265, v264, v263, v262, v261, v260, v259, v258, v257, v256, v255, v254, v253, v252, v251, v250, v249, v248, v247, v246, v245, v244, v243, v242, v241, v240, v239, v238, v237, v236, v235, v234, v233, v232, v231, v230, v229, v228, v227, v226, v225, v224, v223, v222, v221, v220, v219, v218, v217, v216, v215, v214, v213, v212, v211, v210, v209, v208, v207, v206, v205, v204, v203, v202, v201, v200, v199, v198, v197, v196, v195, v194, v193, v192, v191, v190, v189, v188, v187, v186, v185, v184, v183, v182, v181, v180, v179, v178, v177, v176, v175, v174, v173, v172, v171, v170, v169, v168, v167, v166, v165, v164, v163, v162, v161, v160, v159, v158, v157, v156, v155, v154, v153, v152, v151, v150, v149, v148, v147, v146, v145, v144, v143, v142, v141, v140, v139, v138, v137, v136, v135, v134, v133, v132, v131, v130, v129, v128, v127, v126, v125, v124, v123, v122, v121, v120, v119, v118, v117, v116, v115, v114, v113, v112, v111, v110, v109, v108, v107, v106, v105, v104, v103, v102, v101, v100, v99, v98, v97, v96, v95, v94, v93, v92, v91, v90, v89, v88, v87, v86, v85, v84, v83, v82, v81, v80, v79, v78, v77, v76, v75, v74, v73, v72, v71, v70, v69, v68, v67, v66, v65, v64, v63, v62, v61, v60, v59, v58, v57, v56, v55, v54, v53, v52, v51, v50, v49, v48, v47, v46, v45, v44, v43, v42, v41, v40, v39, v38, v37, v36, v35, v34, v33, v32, v31, v30, v29, v28, v27, v26, v25, v24, v23, v22, v21, v20, v19, v18, v17, v16, v15, v14, v13, v12, v11, v10, v9, v8, v7, v6, v5, v4, v3, v2, v1