Sky Watch

# BCM4331 Native Driver for Linux

This is an update to the new Macbook post, in which I said I had to use Ndiswrapper to drive the BCM4331 wireless adapter. Now there is a native solution here. The steps are explained in detail. However I was not able to use patched compat-wireless-2011-08-27. In 2.6.39 (ck-patched) kernel, it refused to detect any wireless network; in 3.0 kernel, it simply wouldn't load. Modprobe complained about unknown symbols.

Today I tried an updated version of compat-wireless, which was labeled as 2011-09-27, and it worked in both kernels. Note that the patches mentioned in the link above are not needed anymore, and also that since kernel.org has been down forever, I downloaded the compat-wireless module from here. I made some PKGBUILDs for the firmware of BCM4331 and compat-wireless based on the PKGBUILD of compat-wireless-patched. Here they are~~

:::Bash
pkgname=b43-firmware
pkgver=5.100.138
pkgrel=1
url='http://wireless.kernel.org/'
arch=('x86_64')
depends=()
makedepends=("b43-fwcutter")
source=("http://www.lwfinger.com/b43-firmware/broadcom-wl-${pkgver}.tar.bz2") sha1sums=('21691a8c99c66f58d18f863ee43593d1633b454c') # install=install build() { msg "Nothing to build..." } package() { mkdir -pv "${pkgdir}/lib/firmware"
cd "${srcdir}" b43-fwcutter -w "${pkgdir}/lib/firmware" \
}


Another one

:::Bash
pkgname=compat-wireless
pkgver=20110927
realver=2011-09-27
pkgrel=1
pkgdesc='Compat wireless driver, enabled for b43 support.'
url='http://wireless.kernel.org/'
arch=('x86_64')
depends=('linux' "b43-firmware")
source=("compat-wireless-2.6.tar.bz2")
sha1sums=('e6b6fd94aa6e9442c1ff0daaf09e0690866ce787')

install=install

build() {
cd "${srcdir}/${pkgname}-${realver}" scripts/driver-select b43 if grep '# CONFIG_B43_PHY_HT=y' config.mk; then sed -i 's/# CONFIG_B43_PHY_HT=y/CONFIG_B43_PHY_HT=y/g' config.mk fi make } package() { cd "${srcdir}/${pkgname}-${realver}"
make INSTALL_MOD_PATH="${pkgdir}" install-modules find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \;

install -d "${pkgdir}"/usr/sbin install scripts/{athenable,athload,b43enable,b43load,\ iwl-enable,iwl-load,madwifi-unload} \ "${pkgdir}"/usr/sbin/

install -d "${pkgdir}"/usr/lib/compat-wireless install scripts/{check_depmod,modlib.sh} \ "${pkgdir}"/usr/lib/compat-wireless/

install -d "${pkgdir}"/lib/udev/rules.d install udev/50-compat_firmware.rules \ "${pkgdir}"/lib/udev/rules.d/
install udev/compat_firmware.sh \
"\${pkgdir}"/lib/udev/
}