Repository navigation
Conversation
broadcom-wl hard-freezes a 2011 MacBook Air with this chip and blacklists b43. BCM4360 still gets broadcom-wl-dkms. linux-firmware-broadcom does not ship the b43 ucode, so the installer does not add it.
Automated AI review
Outcome: Fresh BCM4331 installs now end with no working Wi-Fi driver. BCM4331 gets neither wl nor b43 firmwareNothing is installed for Suggested change: keep Reproducer (fails at 19b823f)Reproducer: BCM4331 install path ends with no Wi-Fi driver pathWhat was run: the script's behaviour, not real hardware. The consequence (no Wi-Fi device) comes from kernel and packaging source, cited below. No BCM4331 machine was available. Test in the PR's own style. Save as #!/bin/bash
set -euo pipefail
source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
test_tmp=$(mktemp -d)
trap 'rm -rf "$test_tmp"' EXIT
stub_bin="$test_tmp/bin"
pkg_log="$test_tmp/packages"
mkdir -p "$stub_bin"
cat >"$stub_bin/lspci" <<'STUB'
#!/bin/bash
printf '%s\n' "$OMARCHY_TEST_LSPCI"
STUB
cat >"$stub_bin/omarchy-pkg-add" <<'STUB'
#!/bin/bash
printf '%s\n' "$@" >>"$OMARCHY_TEST_PKG_LOG"
STUB
chmod +x "$stub_bin/lspci" "$stub_bin/omarchy-pkg-add"
: >"$pkg_log"
PATH="$stub_bin:$PATH" \
OMARCHY_TEST_LSPCI='02:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)' \
OMARCHY_TEST_PKG_LOG="$pkg_log" \
bash -eE -c 'source "$1"' bash "$ROOT/install/hardware/fix-bcm43xx.sh" >/dev/null
# b43 needs b43/ucode29_mimo.fw on BCM4331 and registers no Wi-Fi device without
# it. linux-firmware ships no b43/ files, so a fresh install needs either wl or a
# package that provides that firmware.
grep -qx -e 'broadcom-wl-dkms' -e 'b43-firmware' -e 'b43-firmware-classic' "$pkg_log" ||
fail "a BCM4331 install gets a working Wi-Fi driver path (wl or b43 firmware)" "installed: $(paste -sd' ' "$pkg_log")"
pass "a BCM4331 install gets a working Wi-Fi driver path (wl or b43 firmware)"Actual output at the PR head (19b823f), exit 1: Actual output with the merge-base script (de63134), exit 0: Actual output with a variant of the head script whose BCM4331 branch runs That same variant fails the PR's own test, because its BCM4331 case rejects any installed package. Actual stderr of Why an empty install list means no Wi-Fi device (source, not run):
DetailsVerified (script run through the installer's
Existing installs: machines that already have Related open PRs: #9692, #10910, #10936, #11259, #11311, #11655, #12076, #12090 and #12681 each conflict with this PR in one hunk of Review informationTest scope: Source code and sandbox tests with stubbed commands at AI process: Opus 5.5 Medium coordination and synthesis, Opus 5.5 Xhigh technical review and final fact check, GPT 6 Sol Xhigh search for related issues, Opus 5.5 Medium editorial check. Opt out: To stop receiving these reviews, reply to this comment saying so. |
|
|
@llstrk Thanks for checking the firmware path and the other BCM4331 reports. The chip-wide exception was too broad, and the original description overstated the freeze report. Taken in eb7eba8: the skip now requires the exact I also updated the tests, title, and Mac support manual. The manual makes the remaining firmware requirement explicit: the installer does not supply b43 firmware, so a fresh MacBookAir4,1 needs manual preparation over another connection. Existing wl installations also require separate remediation. The hardware tests pass, and the same tests fail against the previous chip-wide skip. Syntax and diff checks pass. This was checked with stubbed PCI/DMI/package commands; no BCM4331 hardware was available. |
|
Reviewed at eb7eba8 against What ran, on a disposable Omarchy ISO worker: Second opinion: Codex Medium reviewed the same diff and found no defects. It agreed that the change is proportionate and that the manual's firmware claims are correct (independence is not guaranteed). It also confirmed from outside sources that This is the remaining step. The freeze only happens on the hardware, and the stubbed tests only show that the script makes the choice it intends. So this waits on @willhemming, who reported #7593, to confirm it on the MacBookAir4,1. This check installs nothing: curl -fsSLo /tmp/fix-bcm43xx.sh https://raw.githubusercontent.com/z23/omarchy-mac/eb7eba892b7c7314beb01a265573c2f07e94e619/install/hardware/fix-bcm43xx.sh
bash -c 'omarchy-pkg-add() { echo "would install: $*"; }; source /tmp/fix-bcm43xx.sh'
pacman -Qo /usr/lib/firmware/b43/ucode29_mimo.fwThe second line should print the two "skipping broadcom-wl" lines and no "would install". The third line shows which package your working b43 firmware came from. The issue credits |
The installer skipped
broadcom-wl-dkmsfor every BCM4331, leaving fresh installs on other models without a usable Wi-Fi driver. The skip now requires both BCM4331 (14e4:4331) and the exact DMI modelMacBookAir4,1, where #7593 reports wl freezing the machine. Other BCM4331 models, unknown or unreadable DMI, and BCM4360-only systems retain the existing wl install path.The installer and Mac support manual explain that the exception requires separately supplied b43 firmware. This change prevents wl installation on the reported freezing model; fresh Wi-Fi on that model still requires manual firmware preparation. Existing wl installations and their blacklist need separate remediation.
Validation: the stubbed hardware test covers the reported model, other and unknown models, unreadable DMI, BCM4360, mixed-chip systems, and unrelated devices. It passes with the model-specific exception and fails against the previous chip-wide exception. Bash syntax and diff checks pass. No physical BCM4331 hardware was tested.
Fixes #7593.