Differences between revisions 83 and 84
Revision 83 as of 2011-05-07 15:36:12
Size: 14958
Editor: GeoffSimmons
Comment: b43 and b43legacy: Move LP-PHY DMA workaround to troubleshooting, link known issues.
Revision 84 as of 2011-08-09 06:29:45
Size: 9131
Editor: GeoffSimmons
Comment: b43 has N-PHY device support since Linux 2.6.38, remove rndis_wlan content (now in separate page), drop BCM4303 (non-existent chip).
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
This page describes how to enable support for !WiFi devices based on Broadcom 4301, 4303, 4306, 4311, 4312, 4318 and 4320 chipsets on Debian systems. This page describes how to enable support for !WiFi devices based on Broadcom BCM4301, BCM4306, BCM4311, BCM4312 and BCM4318 chipsets on Debian systems.
Line 17: Line 17:
Refer to http://www.linuxwireless.org/en/users/Drivers/b43#Known_PCI_devices for more information. Refer to http://www.linuxwireless.org/en/users/Drivers/b43#Supported_devices for more information.
Line 24: Line 24:
 * [[#b43-b43legacy|b43]] ([[#supported-b43|supported devices]], [[#unsupported-b43|unsupported devices]])
  * For modern 802.11b/g chipsets.
 * [[#b43-b43legacy|b43]] ([[#supported-b43|supported devices]])
Line 27: Line 26:
  * Supports the BCM4312 low-power chipset as of Linux 2.6.32.   * Supports BCM4312 as of Linux 2.6.32.
  * Supports BCM4321 and BCM4322 (802.11 draft-n) as of Linux 2.6.38.
Line 29: Line 29:
  * For 802.11b-only chipsets and the BCM4306 revision 2 chipset.   * For 802.11b-only devices and the BCM4306 revision 2.
Line 32: Line 32:
  * Included in Debian Linux 2.6.32 kernel images.
  * Supports the BCM4313, BCM43224 and BCM43225 (802.11n) chipsets.
 * [[#rndis-wlan|rndis_wlan]] ([[#supported-rndis|supported devices]], [[#unsupported-rndis|unsupported devices]])
  * For devices with the BCM4320 USB chipset ''only''.
  * Introduced in Linux 2.6.37, included in Debian Linux 2.6.32 kernel images.
  * Supports BCM4313, BCM43224 and BCM43225 (802.11n).
 * [[rndis_wlan]] ([[rndis_wlan#supported|supported devices]])
Line 37: Line 36:
  * Supports BCM4320 USB devices.
Line 39: Line 39:
  * Supports the BCM4321 and BCM4322 (draft-n) chipsets.   * Supports BCM4321 and BCM4322 (802.11 draft-n).
Line 45: Line 45:
More information on b43/b43legacy can be found on the Linux Wireless [[http://wireless.kernel.org/en/users/Drivers/b43#b43_and_b43legacy|b43 driver page]]. bcm43xx is no longer developed. Note that bcm43xx, b43, b43legacy, brcm80211 and wl '''do not''' support any USB devices based on Broadcom wireless chipsets. More information on b43/b43legacy can be found on the Linux Wireless [[http://wireless.kernel.org/en/users/Drivers/b43|b43 driver page]]. bcm43xx is no longer developed. Note that bcm43xx, b43, b43legacy, brcm80211 and wl '''do not''' support any USB devices.
Line 49: Line 49:
 * [[#ndiswrapper|NDISwrapper]] plus the relevant Windows NDIS driver. This is a workaround for devices not supported natively by Linux, such as USB devices based on Broadcom wireless chipsets (other than the BCM4320 USB).  * [[#ndiswrapper|NDISwrapper]] plus the relevant Windows NDIS driver. This is a workaround for devices not supported natively by Linux, such as USB devices based on Broadcom wireless chipsets (other than the BCM4320).
Line 58: Line 58:
The b43 driver supports modern Broadcom 802.11b/g wireless chipsets. The b43legacy driver supports Broadcom 802.11b-only devices and BCM4306 revision 2 chipsets.

The b43 driver
requires version 4 firmware, whereas the b43legacy driver requires version 3 firmware. Firmware must be downloaded, which can be performed by the DebianPkg:firmware-b43-installer, DebianPkg:firmware-b43legacy-installer or DebianPkg:firmware-b43-lpphy-installer packages during installation. An Internet connection is required.
The b43 and b43legacy drivers require firmware from userspace. Firmware must be downloaded, which can be performed by the DebianPkg:firmware-b43-installer, DebianPkg:firmware-b43legacy-installer or DebianPkg:firmware-b43-lpphy-installer packages during installation. An Internet connection is required.
Line 80: Line 78:
 For 802.11b-only devices (BCM4301, BCM4303 chipsets) or 802.11b/g devices with the BCM4306 revision 2 chipset, install DebianPkg:firmware-b43legacy-installer: {{{  For 802.11b-only devices (BCM4301) or 802.11b/g devices with the BCM4306 revision 2 chipset, install DebianPkg:firmware-b43legacy-installer: {{{
Line 101: Line 99:
  * If necessary, firmware can be manually acquired and extracted using the b43-fwcutter utility, see http://wireless.kernel.org/en/users/Drivers/b43#device_firmware_installation. The DebianPkg:b43-fwcutter package will need to be installed.   * If necessary, firmware can be manually acquired and extracted using the b43-fwcutter utility, see http://wireless.kernel.org/en/users/Drivers/b43#Device_firmware_installation. The DebianPkg:b43-fwcutter package will need to be installed.
Line 112: Line 110:
The b43 driver supports modern Broadcom 802.11b/g wireless chipsets. The b43legacy driver supports Broadcom 802.11b-only devices and BCM4306 revision 2 chipsets.

The b43 driver requires version 4 firmware, whereas the b43legacy driver requires version 3 firmwar
e. Firmware must be downloaded, which can be performed by the DebianPkg:b43-fwcutter package during installation. An Internet connection is required.
The b43 and b43legacy drivers require firmware from userspace. Firmware must be downloaded, which can be performed by the DebianPkg:b43-fwcutter package during installation. An Internet connection is required.
Line 142: Line 138:
  * If necessary, firmware can be manually acquired and extracted using the b43-fwcutter utility, see http://wireless.kernel.org/en/users/Drivers/b43#device_firmware_installation   * If necessary, firmware can be manually acquired and extracted using the b43-fwcutter utility, see http://wireless.kernel.org/en/users/Drivers/b43#Device_firmware_installation
Line 144: Line 140:

<<Anchor(rndis-wlan)>>
=== rndis_wlan ===
For Linux 2.6.25 and later kernels. This is included as a module in Debian kernel images.

The rndis_wlan driver supports wireless RNDIS<<FootNote(Microsoft's unofficial CDC ACM variant, see [[WikiPedia:USB_communications_device_class|USB CDC on Wikipedia]].)>> chipsets, of which the Broadcom 4320 USB chipset is the only one known at this time. This driver does not require firmware to be installed.

  {i} Belkin !F5D7051 v1000 users: Due to the inclusion of its vendor and device ID, a Ralink RT2500USB driver will be incorrectly loaded for this device. Please [[KernelModuleBlacklisting|blacklist]] the {{{rt2500usb}}} module before continuing. The !F5D7051 v3000 is not supported.

 1. Install the DebianPkg:wireless-tools package: {{{
aptitude update
aptitude install wireless-tools
}}}
 1. Physically connect the device to your system.

 1. The necessary kernel module should be [[Modules|automatically loaded]]. If necessary, it can be manually loaded via: {{{
modprobe rndis_wlan
}}}
 1. Verify your device has an available interface: {{{
iwconfig
}}}
 1. Raise the interface to activate the radio, for example: {{{
ifconfig wlan0 up
}}}
 1. [[WiFi/HowToUse|Configure]] your wireless interface as appropriate.

==== Troubleshooting ====
 * This driver does not support connections to hidden [[WPA]] networks at this time.
 * If you are attempting to use a Belkin !F5D7051 v1000 device, [[KernelModuleBlacklisting|blacklist]] the {{{rt2500usb}}} module and execute {{{modprobe -r rt2500usb}}} to unload it.
 * Some devices might display very [[https://bugzilla.kernel.org/show_bug.cgi?id=20822|poor scan results]], making NetworkManager and similar programs take a long, long time to detect a given network. A possible workaround to improve the time to configure the device at boot-time is to ''pre-configure'' the connection manually on the /etc/init.d/networking file. For example:{{{
case "$1" in
start)
        process_options

        log_action_begin_msg "Configuring network interfaces"
        #workaround WUSB54GS's low performance on scan
        iwconfig wlan0 essid MYESSID
        iwconfig wlan0 key MYKEY
        iwconfig wlan0 channel NN
        dhclient wlan0 &
        if ifup -a; then
            log_action_end_msg $?
(...)
}}}NetworkManager will then see the network's beacon much quicker and will be able to configure the device appropriately afterwards.

 * [[http://wireless.kernel.org/en/users/Drivers/rndis_wlan#known_problems|Known problems]] with this driver are documented on its homepage.
Line 193: Line 143:
This should only be used as a last resort, if the device is not supported by the native drivers (e.g. Broadcom USB devices, other than the BCM4320 USB). This should only be used as a last resort, if the device is not supported by the native drivers (e.g. Broadcom USB devices, other than the BCM4320).
Line 204: Line 154:
<<Anchor(supported)>>
Line 211: Line 162:
 * BCM4312 low-power variant (PCI-ID 14E4:4315)
  * Requires Linux 2.6.32 and firmware 4.174.64.19.
  * See [[bcm43xx#b43-b43legacy-squeeze|b43 and b43legacy (Squeeze)]], or http://wireless.kernel.org/en/users/Drivers/b43#fw-b43-lp to manually acquire firmware.
##
 http://wireless.kernel.org/en/users/Drivers/b43#Supported_chip_types - supported chipsets

<<Anchor(unsupported-b43)>>
==== Unsupported ====

 * BCM4321 (PCI-IDs 14E4:4328, 14E4:4329, 14E4:432A)
 * BCM4322 (PCI-IDs 14E4:432B, 14E4:432C, 14E4:432D)

Support for the above chipsets is available via the non-free vendor driver, see [[wl]].

  http://wireless.kernel.org/en/users/Drivers/b43#Unsupported_chips - unsupported chipsets
 http://wireless.kernel.org/en/users/Drivers/b43#Supported_devices
Line 231: Line 168:
 http://wireless.kernel.org/en/users/Drivers/b43#Supported_chip_types - supported chipsets

<<Anchor(supported-rndis)>>
=== rndis_wlan ===
The page [[HowToIdentifyADevice/USB]] explains how to identify a USB device.

The following list is based on the ''alias'' fields of {{{modinfo rndis_wlan}}} in Debian 2.6.32 (2.6.32-30) kernel images.
## list generated with: http://www.klabs.be/~fpiat/linux/hardware/modinfo-devnames/
 ~- {{{
USB: *:* (Vendor name unknown) (Device name unknown)
USB: 0411:004B MelCo., Inc. WLI-USB-G54 802.11g Adapter [Broadcom 4320 USB]
USB: 0411:00BC MelCo., Inc. WLI-U2-KG125S 802.11g Adapter [Broadcom 4320 USB]
USB: 050D:011B Belkin Components (Device name unknown)
USB: 0A5C:D11B Broadcom Corp. Eminent EM4045 [Broadcom 4320 USB]
USB: 0B05:1717 ASUSTek Computer, Inc. WL169gE 802.11g Adapter [Broadcom 4320 USB]
USB: 0BAF:0111 U.S. Robotics USR5420 802.11g Adapter [Broadcom 4320 USB]
USB: 0BAF:011B U.S. Robotics Wireless MAXg Adapter [Broadcom 4320]
USB: 13B1:000E Linksys WUSB54GS v1 802.11g Adapter [Broadcom 4320 USB]
USB: 13B1:0014 Linksys WUSB54GS v2 802.11g Adapter [Broadcom 4320 USB]
USB: 13B1:0026 Linksys WUSB54GSC v1 802.11g Adapter [Broadcom 4320 USB]
USB: 1690:0715 Askey Computer Corp. [hex] Name: Voyager 1055 Laptop 802.11g Adapter [Broadcom 4320]
USB: 1799:011B Belkin Components (Device name unknown)
}}} -~

 http://wireless.kernel.org/en/users/Drivers/rndis_wlan#supported_chips - supported chipsets

<<Anchor(unsupported-rndis)>>
==== Unsupported ====
/* rndis_wlan can autodetect newer RNDIS devices not listed above. */
 * Belkin !F5D7051 v3000 (USB-ID 4317:0711)
 * Linksys WUSB54GSC v2 (USB-ID 1737:0075)
 * Tivo Wireless G USB Adapter (USB-ID 0A5C:BD11)

Support for these devices may be possible using [[NdisWrapper|NDISwrapper]].
 http://wireless.kernel.org/en/users/Drivers/b43#Supported_devices
Line 267: Line 171:
 * [[brcm80211]] - Broadcom 4313, 43224, 43225 devices  * [[brcm80211]] - Broadcom BCM4313, BCM43224, BCM43225 devices
 * [[rndis_wlan]] - Broadcom BCM4320 devices
Line 270: Line 175:
 * [[wl]] (vendor driver) - Broadcom 4311, 4312, 4313, 4321, 4322, 43224, 43225, 43227, 43228 devices  * [[wl]] (vendor driver)
Line 274: Line 179:
  * [[http://wireless.kernel.org/en/users/Drivers/b43#device_firmware_installation|b43 and b43legacy]] - device firmware installation
Line 276: Line 180:
 * [[http://wireless.kernel.org/en/users/Drivers/rndis_wlan]] - rndis_wlan homepage

Translation(s): none


Broadcom 43xx wireless devices

This page describes how to enable support for WiFi devices based on Broadcom BCM4301, BCM4306, BCM4311, BCM4312 and BCM4318 chipsets on Debian systems.

Identification

<!> The PCI-Id is not sufficient to determine the Broadcom chipset within.

The relevant driver has built-in logic to probe the actual chipset, for example:

  • b43-phy0: Broadcom 4306 WLAN found

Refer to http://www.linuxwireless.org/en/users/Drivers/b43#Supported_devices for more information.

Drivers

There are multiple drivers supporting Broadcom wireless LAN chipsets.

Linux native drivers:

  • b43 (supported devices)

    • Introduced in Linux 2.6.24.
    • Supports BCM4312 as of Linux 2.6.32.
    • Supports BCM4321 and BCM4322 (802.11 draft-n) as of Linux 2.6.38.
  • b43legacy (supported devices)

    • For 802.11b-only devices and the BCM4306 revision 2.
    • Introduced in Linux 2.6.24.
  • brcm80211 (supported devices)

    • Introduced in Linux 2.6.37, included in Debian Linux 2.6.32 kernel images.
    • Supports BCM4313, BCM43224 and BCM43225 (802.11n).
  • rndis_wlan (supported devices)

    • Introduced in Linux 2.6.25.
    • Supports BCM4320 USB devices.
  • wl (supported devices)

    • Non-free vendor driver, not in mainline Linux kernels.
    • Supports BCM4321 and BCM4322 (802.11 draft-n).
  • bcm43xx
    • Introduced in Linux 2.6.17.
    • Disabled in Debian 2.6.24 and later kernels.
    • Removed from Linux at 2.6.26.

More information on b43/b43legacy can be found on the Linux Wireless b43 driver page. bcm43xx is no longer developed. Note that bcm43xx, b43, b43legacy, brcm80211 and wl do not support any USB devices.

Using Windows' binary drivers:

  • NDISwrapper plus the relevant Windows NDIS driver. This is a workaround for devices not supported natively by Linux, such as USB devices based on Broadcom wireless chipsets (other than the BCM4320).

b43 and b43legacy

For Linux 2.6.24 and later kernels. Both drivers are included as modules in Debian kernel images.

Squeeze

The b43 and b43legacy drivers require firmware from userspace. Firmware must be downloaded, which can be performed by the firmware-b43-installer, firmware-b43legacy-installer or firmware-b43-lpphy-installer packages during installation. An Internet connection is required.

{i} The b43-fwcutter package (as of 1:013~git20100413-1) no longer acquires firmware, separate installer packages are now used.

  1. Add a "contrib" component to /etc/apt/sources.list, for example:

    # Debian Squeeze/6.0
    deb http://ftp.us.debian.org/debian squeeze main contrib non-free
  2. Update the list of available packages and install the wireless-tools package:

    aptitude update
    aptitude install wireless-tools
  3. Install the appropriate firmware installer package:

    For 802.11b/g devices with a BCM4306 revision 3, BCM4311 or BCM4318 chipset, install firmware-b43-installer:

    aptitude install firmware-b43-installer

    For 802.11b/g devices with a BCM4312 LP-PHY chipset (PCI-ID 14E4:4315), install firmware-b43-lpphy-installer:

    aptitude install firmware-b43-lpphy-installer

    For 802.11b-only devices (BCM4301) or 802.11b/g devices with the BCM4306 revision 2 chipset, install firmware-b43legacy-installer:

    aptitude install firmware-b43legacy-installer
    A PCI ID check will be performed to prevent incorrect firmware installation. When satisfied, the relevant Broadcom proprietary driver will be acquired, the firmware within will be extracted and installed.
  4. The necessary kernel module should be automatically loaded. If necessary, it can be manually loaded via either:

    modprobe b43

    or

    modprobe b43legacy
  5. Verify your device has an available interface:

    iwconfig
  6. Raise the interface to activate the radio, for example:

    ifconfig wlan0 up
  7. Configure your wireless interface as appropriate.

Troubleshooting
  • Examine the kernel ring buffer (dmesg(1)) to verify the required firmware files are being loaded by the driver. Lack of firmware is the usual reason for the "SIOCSIFFLAGS: No such file or directory" error message.

  • With LP-PHY devices (e.g. BCM4312), DMA errors may occur on some systems (589867).

    • To workaround:

      modprobe -r b43
      echo options b43 pio=1 qos=0 >> /etc/modprobe.d/local.conf
      modprobe b43
  • Known issues with the b43 driver are documented on its homepage.

Lenny

The b43 and b43legacy drivers require firmware from userspace. Firmware must be downloaded, which can be performed by the b43-fwcutter package during installation. An Internet connection is required.

  1. Add a "contrib" component to /etc/apt/sources.list, for example:

    # Debian Lenny/5.0
    deb http://ftp.us.debian.org/debian lenny main contrib non-free
  2. Update the list of available packages and install the b43-fwcutter and wireless-tools packages:

    aptitude update
    aptitude install b43-fwcutter wireless-tools

    If you have an Internet connection available, allow the b43-fwcutter package to fetch and extract firmware.

  3. The necessary kernel module should be automatically loaded. If necessary, it can be manually loaded via either:

    modprobe b43

    or

    modprobe b43legacy
  4. Verify your device has an available interface:

    iwconfig
  5. Raise the interface to activate the radio, for example:

    ifconfig wlan0 up
  6. Configure your wireless interface as appropriate.

Troubleshooting
  • Examine the kernel ring buffer (dmesg(1)) to verify the required firmware files are being loaded by the driver. Lack of firmware is the usual reason for the "SIOCSIFFLAGS: No such file or directory" error message.

  • Known issues with the b43 driver are documented on its homepage.

NDISwrapper

This should only be used as a last resort, if the device is not supported by the native drivers (e.g. Broadcom USB devices, other than the BCM4320).

Blacklist native drivers

If loaded, the b43/b43legacy drivers will conflict with NDISwrapper. To unload and blacklist:

modprobe -r b43 b43legacy
echo -e blacklist b43\\nblacklist b43legacy >> /etc/modprobe.d/local.conf

Installation

Kernel module and NDIS driver installation is described on the NDISwrapper page.

Supported Devices

b43

The page HowToIdentifyADevice/PCI explains how to identify a PCI device.

b43legacy

The page HowToIdentifyADevice/PCI explains how to identify a PCI device.

See Also


CategoryHardware | CategoryWireless