NextBSD · Driver delivery · restricted firmware

The four drivers no one can ship firmware for

bwn, bwi, malo, upgt — the wifi drivers whose firmware isn't redistributable (not merely "non-free"). Nobody bakes these into an install image, not even Debian's firmware ISO or OpenBSD's fw_update. Here's the per-chip legal reality and exactly how every distro handles them in 2026 — and what that leaves NextBSD.

Compiled 2026-07-17 from a live-verified research pass (linux-firmware WHENCE + firmware.openbsd.org checked July 2026; distro package mechanisms current). Sub of the firmware-kext table. Reference, not a decision doc. Planning only.

The one-line reality

All three chip families need firmware that was never granted redistribution rights — so the universal industry answer is "the distro ships the driver but not the blob; the user fetches/extracts it." Every OS uses some flavor of that dodge (fwcutter extraction, third-party download, or a segregated firmware server). None can put these on an offline image. And it barely matters: all three are dead 2000s-era hardware, and the b43 fetch route is itself now bit-rotting because Broadcom pulled the source URLs.

Correction to an earlier claim An earlier note in this plan said Linux's p54 (PrismGT) firmware is redistributable and in linux-firmware, so upgt's cousin "just works." That's wrong. Live check (July 2026): isl3886usb/isl3887usb/isl3886pci/3826.arm all 404 from linux-firmware and appear nowhere in WHENCE. The p54 firmware is a third-party blob on the maintainer's site (daemonizer.de) with no clear redistribution grant. So upgt and Linux p54 are both on non-redistributable firmware — Linux's is merely easier to fetch (ready-made blobs vs extract-from-driver).

1Per-chip redistributability verdict

FreeBSD driverLinux driverHardwareFirmware status (2026)
bwn / bwib43 / b43legacyBroadcom BCM43xx (AirForce; 4306/4311/4312/4318/4321/4322)not redistributable Absent from linux-firmware (only the newer brcmfmac/brcmsmac blobs are there, marked redistributable). Must be extracted from a proprietary Broadcom driver via b43-fwcutter; distros are explicitly not allowed to redistribute the extracted blob.
upgtp54usb / p54pciConexant/Intersil PrismGT (ISL38xx)not redistributable Not in linux-firmware (verified 404). Third-party blob on daemonizer.de; GlobespanVirata "has not given explicit permission to redistribute." Easier to fetch than b43 (ready blobs), but no clean license.
malo(none mainline)Marvell Libertas 88W8335 (PCI/CardBus)not redistributable + Linux-orphaned Marvell refused distribution rights. No 88W8335 entry in linux-firmware; the Linux libertas/mwl8k firmware covers different Marvell chips. The proposed mrv8k Linux driver (2008 RFC) never merged — this chip works only on the BSDs.

2How every OS handles them — 2026 matrix

The through-line: ship the driver, not the firmware. Nobody carries these blobs in a repo package or on an install ISO — it's always fetch-and-extract or user-supplied.

OSb43 (BCM43xx)p54 (PrismGT / upgt)malo (88W8335)
Debianfirmware-b43-installer in contrib — downloads Broadcom driver + runs fwcutter at install. Not on any firmware ISO.Not packaged (bug #481234); manual wget from daemonizer.deNo package; unsupported
Ubuntufirmware-b43-installer + b43-fwcutter in multiverse (same fetch-extract)Manual, as DebianUnsupported
Fedorab43-fwcutter tool in repo; blobs via RPM Fusion nonfree-tainted or manual. (Most use the RPM Fusion broadcom-wl akmod instead.)Not packaged; manualUnsupported
Archb43-fwcutter in repo; b43-firmware in AURcurrently fails to build; Broadcom pulled the URLsAUR p54-firmware (fetch from daemonizer.de)Unsupported
openSUSEb43-fwcutter ships install_bcm43xx_firmware (download + extract + install)ManualUnsupported
Gentoosys-firmware/b43-firmware ebuild fetches driver + runs fwcutter at emerge; b43-openfwwf open fw for a few chipsOverlay/manualUnsupported
NixOSnetworking.enableB43Firmware → fetch + fwcutter at build; marked unfreeManualUnsupported
FreeBSDnet/bwn-firmware-kmod, bwi-firmware-kmodbuild from source only, no binary pkgupgt; firmware ports-onlynet/malo-firmware-kmod (blobs sourced from OpenBSD), ports-only
OpenBSDbwi + firmware via fw_update (own server)upgt/pgt via fw_updatemalo via fw_update
NetBSDbwi: firmware not shipped, obtain separatelyupgt: not in basemalo: needs /libdata/firmware/malo/…, not in base

3OpenBSD's model — the closest BSD precedent

OpenBSD is the interesting case for NextBSD because it's a BSD that keeps all four drivers yet keeps the firmware out of the base sets. The blobs live on firmware.openbsd.org and are pulled on demand by fw_update(8), which also runs automatically at install/upgrade. All four tarballs are present on the mirror today:

bwi-firmware-1.4p5.tgz   malo-firmware-1.4p5.tgz
pgt-firmware-1.2p5.tgz   upgt-firmware-1.1p5.tgz
The gray area to be honest about OpenBSD hosts and auto-installs these even though its own man pages say the firmware isn't free — malo(4): "These firmware files are not free because Marvell refuses to grant distribution rights", yet "a prepackaged version… can be installed using fw_update." The reconciliation: OpenBSD segregates non-free firmware onto its own server so it's not in the shipped OS, then fetches it for the user — the same "we don't ship it, the user pulls it" dodge as fwcutter, just automated and centrally hosted. It works in practice, but it's a pragmatic gray-area stance, not a clean redistribution license — OpenBSD is absorbing the risk of mirroring blobs a vendor "refuses to grant distribution rights" to.

4How b43-fwcutter sidesteps redistribution

  1. Download a proprietary Broadcom driver tarball (classically broadcom-wl-5.100.138, or -6.30.163.46 for LP-PHY). The firmware is embedded in its binary object (wl_apsta.o).
  2. Run b43-fwcutter <driver>, which parses the blob and writes the individual images (ucode5.fw, initvals, PCM…) into a b43/ directory.
  3. Install to /lib/firmware/b43/, where the kernel b43 driver loads them at interface-up.

Why it's legal-ish: the distro never ships the firmware — only the GPL fwcutter tool and a script that makes the end user download Broadcom's driver and extract locally. That's the whole reason no offline/firmware install ISO carries b43: a Broadcom-only laptop still needs a wired connection or a second machine to get online first. And it's decaying — the AUR build now fails because Broadcom removed the driver download URLs, so even the fetch route is bit-rotting.

5How dead is this hardware?

6What this leaves NextBSD

Nobody ships these in-image, the hardware is dead, and the one BSD that keeps them (OpenBSD) does so via a fetch-from-our-server step that NextBSD's base-is-self-contained, no-runtime-fetch rule specifically rejects. So the realistic options:

OptionWhat it meansFit
Drop the driversDon't carry bwn/bwi/malo/upgt at all.Cleanest. Dead hardware; zero users lost in practice. Least surface.
Carry driver, no firmwareShip the .ko (NetBSD-style); a user with rights to the blob drops it in /boot/firmware themselves.Fine. Honest, keeps base clean, doesn't pretend to support the card OOTB.
OpenBSD-style optional fw_updateHost blobs on a NextBSD mirror, fetch via an explicitly-optional post-install tool (never base).Not worth it. Inherits OpenBSD's legal gray area for dead hardware, and still a fetch. Only if you ever build a general optional-firmware tool for other reasons.

Recommendation: drop them, or carry-driver-only. The wall here is redistribution rights no image can climb — so making a firmware-included ISO (which you should, Debian-style, for the ~19 redistributable wifi drivers) simply doesn't reach these four. They're not a gap in your build; they're a gap in the licensing of 20-year-old silicon.


Sources (live-verified July 2026 where noted): kernel.org b43 / p54 firmware docs · Debian bcm43xx / prism54 wikis · linux-firmware WHENCE (b43/p54/malo absent; brcm redistributable) · daemonizer.de p54 fw · prism54.org (no redist grant) · OpenBSD malo(4) / fw_update(8) + firmware.openbsd.org tarballs · FreshPorts bwi/malo-firmware-kmod · LWN mrv8k RFC · AUR/Gentoo/NixOS/openSUSE package pages.