#!/bin/sh # Apply the bwn BCM43224 (Apple MacBook Air A1370) patches to a clean # FreeBSD 15.1 source tree. Idempotent: it skips any patch that is already # applied. # # Usage: sudo ./apply.sh [SRC_ROOT] # Default SRC_ROOT=/usr/src # # The patches: # patches/patch-if_bwn.c - driver fixes (Fixes 1-4, 6-8) # patches/patch-Makefile - GPL PHY build wiring (Fix 1) # patches/patch-bhndb_pci.c - NO_MSI quirk for BCM43224 (Fix 7) # patches/patch-bhndb_pcivar.h - NO_MSI quirk definition (Fix 7) set -e SRC="${1:-/usr/src}" HERE="$(cd "$(dirname "$0")" && pwd)" if [ ! -f "$SRC/sys/dev/bwn/if_bwn.c" ]; then echo "ERROR: $SRC/sys/dev/bwn/if_bwn.c not found." >&2 echo " Point SRC_ROOT at a FreeBSD 15.1 src tree (e.g. /usr/src)." >&2 exit 1 fi echo "Applying patches into: $SRC" for p in patch-if_bwn.c patch-Makefile patch-bhndb_pci.c patch-bhndb_pcivar.h; do if (cd "$SRC" && patch -p1 -N --dry-run < "$HERE/patches/$p" >/dev/null 2>&1); then (cd "$SRC" && patch -p1 -N < "$HERE/patches/$p") echo " applied $p" else echo " skip $p (already applied or not applicable)" fi done echo "Done. Source patched. Now run ./build.sh (or 'make' in sys/modules/bwn)."