| BWI(4) | Device Drivers Manual | BWI(4) |
bwi — Broadcom
AirForce IEEE 802.11b/g wireless network device
bwi* at cardbus?
bwi* at pci?
The bwi driver provides support for
Broadcom AirForce based PCI/Cardbus network adapters.
These are the modes the bwi driver can
operate in:
The bwi driver can be configured to use
Wired Equivalent Privacy (WEP) or Wi-Fi Protected Access (WPA1 and WPA2).
WPA2 is currently the most secure encryption standard for wireless networks
supported by OpenBSD. It is strongly recommended
that neither WEP nor WPA1 are used as the sole mechanism to secure wireless
communication, due to serious weaknesses. WPA1 is disabled by default and
may be enabled using the option "wpaprotos
wpa1,wpa2". For standard WPA networks which use
pre-shared keys (PSK), keys are configured using the
"wpakey" option. WPA-Enterprise networks
require use of the wpa_supplicant package. The bwi
driver relies on the software 802.11 stack for both encryption and
decryption of data frames.
The transmit speed is user-selectable or can be adapted automatically by the driver depending on the received signal strength and on the number of hardware transmission retries.
The bwi driver can be configured at
runtime with ifconfig(8) or on
boot with
hostname.if(5).
The driver needs a firmware file which is loaded when an interface is brought up:
A prepackaged version of the firmware can be installed using fw_update(8).
The following cards are among those supported by the
bwi driver:
| Card | Chip | Bus | Standard |
| Apple Airport Extreme | BCM4306 | PCI | b/g |
| Apple Airport Extreme | BCM4318 | PCI | b/g |
| ASUS WL-138g | BCM4318 | PCI | b/g |
| Buffalo WLI-CB-G54 | BCM4306 | CardBus | b/g |
| Compaq R4035 onboard | BCM4306 | PCI | b/g |
| HP nx6125 | BCM4319 | PCI | b/g |
| Linksys WPC54G Ver 3 | BCM4318 | CardBus | b/g |
| Linksys WPC54GS Ver 2 | BCM4318 | CardBus | b/g |
| TRENDnet TEW-401PCplus | BCM4306 | CardBus | b/g |
| US Robotics 5411 | BCM4318 | CardBus | b/g |
The following example scans for available networks:
# ifconfig bwi0 scanThe following hostname.if(5) example configures bwi0 to join network “mynwid”, using WPA key “mywpakey”, obtaining an IP address using DHCP:
join mynwid wpakey mywpakey inet autoconf
arp(4), cardbus(4), ifmedia(4), intro(4), netintro(4), pci(4), hostname.if(5), ifconfig(8)
The bwi driver first appeared in
OpenBSD 4.3.
The bwi driver was written for
DragonFly by Sepherosa
Ziehau and ported to OpenBSD by
Jonathan Gray and Marcus
Glocker.
Some chips are incorrectly calibrated due to the lack of documentation, which can slow the amount of traffic to the point of being unusable. Furthermore this driver only supports firmware version 3.
The BCM4331 chip isn't supported by this driver but the driver disables the chip if detected, since some buggy EFI revisions found in 2011-2012 Macs leave the chip enabled, causing it to emit spurious interrupts when the shared interrupt line is enabled.
| March 27, 2025 | openbsd |