BWN(4)

πŸ’– BWN(4) β€” the Broadcom BCM43xx SoftMAC IEEE 802.11 wireless network driver, bestie edition πŸ’–

okay so. you found bwn(4). this is the Kernel Interfaces Manual page for it, and i'm gonna walk you through it like we're texting at 2am. grab a snack πŸ“


✨ NAME ✨

bwn β€” the Broadcom BCM43xx SoftMAC IEEE 802.11 wireless network driver. that's it. that's the name. she's a wifi driver and she's serving πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

so like, there's two ways to get her in your life. option one: bake her straight into the kernel. add these lines to your kernel configuration file:

device bwn
device bhnd
device bhndb
device bhndb_pci
device bcma
device siba
device gpio
device wlan
device wlan_amrr
device firmware

option two, the low-effort slay: load her as a module at boot. add this to loader.conf(5):

if_bwn_load="YES"

that's it. no cap, that's the whole thing. πŸ‘‘


🌸 DESCRIPTION 🌸

so bwn is the driver that provides support for Broadcom BCM43xx based PCI/CardBus network adapters. it's giving "i support a very specific era of hardware and i do it well." πŸ’œ

she supports station and monitor mode operation. but listen β€” only one virtual interface may be configured at any time. one. not two. don't try it. for more info on configuring this device, go see ifconfig(8).

🚨 IMPORTANT ONE, bestie: this driver requires firmware to be loaded before it will work. you gotta install the ports/net/bwn-firmware-kmod port before ifconfig(8) will even function. in most cases you want the bwn_v4_ucode kernel module from the port. BUT β€” if an LP (low power) PHY is being used, you should use the bwn_v4_lp_ucode module instead. okay? okay. πŸ’–

πŸ’€ HARDWARE πŸ’€

here's the roster of Broadcom BCM43xx based wireless devices she supports. iconic lineup honestly:

  • Apple Airport Extreme β€” BCM4318, PCI, b/g
  • ASUS WL-138g β€” BCM4318, PCI, b/g
  • Buffalo WLI-CB-G54S β€” BCM4318, CardBus, b/g
  • Dell Wireless 1390 β€” BCM4311, Mini PCI, b/g
  • Dell Wireless 1470 β€” BCM4318, Mini PCI, b/g
  • Dell Truemobile 1400 β€” BCM4309, Mini PCI, b/g
  • HP Compaq 6715b β€” BCM4312, 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
  • US Robotics 5411 β€” BCM4318, CardBus, b/g
😭 now listen, if you're on an older Broadcom chipset (BCM4301, BCM4303 and BCM4306 rev 2) you must use bwi(4) instead, because the v4 version of the firmware does not support these chips. the newer firmware is too big to fit into these old chips. she literally cannot fit. it's not personal. 🫢

🌈 EXAMPLES 🌈

these are the vibes. copy them exactly, don't freestyle.

join an existing BSS network (i.e., connect to an access point):

ifconfig wlan create wlandev bwn0 inet 192.168.0.20 \
    netmask 0xffffff00

join a specific BSS network with network name β€œmy_net”:

ifconfig wlan create wlandev bwn0 ssid my_net up

join a specific BSS network with 64-bit WEP encryption:

ifconfig wlan create wlandev bwn0 ssid my_net \
        wepmode on wepkey 0x1234567890 weptxkey 1 up

look at that backslash line continuation. main character formatting. πŸ’…


⭐ LOADER TUNABLES ⭐

tunables can be set at the loader(8) prompt before booting the kernel, or stored in loader.conf(5). your choice, bestie.

  • hw.bwn.usedma β€” this tunable enables DMA operations on the hardware. if the value is 0, PIO mode would be used. the default value is 1.

that's the whole list. one tunable. she's minimal and she knows it. ✨


πŸŽ€ SEE ALSO πŸŽ€

go read these next, they're the friend group:

arp(4), bcma(4), bhnd(4), bhndb(4), bwi(4), cardbus(4), intro(4), pci(4), siba(4), wlan(4), wlan_amrr(4), ifconfig(8), wpa_supplicant(8)


🧚 HISTORY 🧚

the bwn driver first appeared in FreeBSD 8.1. then the driver was updated to support the common Broadcom bhnd(4) bus interface in FreeBSD 12.0. glow up era. πŸ”₯


πŸ‘‘ AUTHORS πŸ‘‘

the bwn driver was written by Weongyo Jeong <weongyo@FreeBSD.org>. support for bhnd(4) was added by Landon Fuller <landonf@FreeBSD.org>. thank you for your service, legends πŸ«‘πŸ’–


🚨 CAVEATS 🚨

some LP PHY devices have DMA operation problems β€” in that case, try to use PIO mode. (that's what hw.bwn.usedma=0 is for, iykyk πŸ‘€)

and that's the page!! this one shipped from Debian, dated December 16, 2017 β€” so if you were wondering when this queen was last touched up, that's your answer, bestie. now go install that firmware port, okay?? literally no cap. πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from