Broadcom Linux hybrid wireless driver (64-bit)
This project fetch the source from the archlinux package and buid for AerynOS.
The driver is for Broadcom BCM43xx 802.11 wireless devices. and the package well upload to the AerynOS repository. Install the package by
sudo moss install broadcom-wl
# find the version from the archlinux repository before you going.
$ sh fetch-source.sh 6.30.223.271-42
# auto build and package
$ sh autobuild-package.sh
Warning : AerynOS is designed in some spectial way, install any thing into
/usr
may be lost after the system update.
If you want install by hand, you can do like this:
The following kernel modules are incompatible with this driver and should not be loaded:
- bcm43xx
- ssb
- b43
- ndiswrapper
- brcm80211
- bcma
- brcmsmac
Make sure to unload (rmmod
command) and blacklist those modules in order to prevent them from being automatically
reloaded during the next system startup:
/etc/modprobe.d/50-broadcom-wl-blacklist.conf
# wireless drivers (conflict with Broadcom hybrid wireless driver 'wl')
blacklist bcm43xx
blacklist ssb
blacklist b43
blacklist ndiswrapper
blacklist brcm80211
blacklist bcma
blacklist brcmsmac
As the AerynOS's /usr
is totally controlled by the system, we need to install the driver to /usr/local
,
the /usr/local
is link to /var/local
in AerynOS.
Set the INSTALL_MOD_PATH
to /usr/local
in /etc/environment.d/10-external-mod.conf
, and patch in the Makefile
:
patch -p1 < 001-makefile.patch
the final install location is /usr/local/lib/modules/6.13.10-93.desktop/kernel/drivers/net/wireless/wl.ko
.
The AerynOS use clang
as the default compiler, and ld.lld
as the linker.
$ make clean
$ make CC=clang LD=ld.lld V=1
$ sudo make install
$ depmod -A -b /usr/local
# try to load the module
$ modprobe wl
Put imcompatible modules in the blacklist:
/etc/modprobe.d/50-wl.conf
blacklist b43
blacklist ssb
blacklist cordic
blacklist bcma
# config wl use the /usr/local
install wl /sbin/modprobe -d /usr/local -i wl
Now config automatically load module:
$ echo "wl" | sudo tee /etc/modules-load.d/wl.conf
reboot
After reboot, check the driver:
$ modinfo -b /usr/local wl
filename: /usr/local/lib/modules/6.13.10-93.desktop/kernel/drivers/net/wireless/wl.ko
license: MIXED/Proprietary
name: wl
depends:
alias: pci:v*d*sv*sd*bc02sc80i*
vermagic: 6.13.10-93.desktop SMP preempt mod_unload
retpoline: Y
parm: intf_name:string
parm: nompc:int
parm: instance_base:int
parm: piomode:int
parm: oneonly:int
parm: wl_txq_thresh:int
parm: passivemode:int
- Official README file (download)
- Arch Linux packages: broadcom-wl / broadcom-wl-dkms
- Debian packages: broadcom-sta (source repository)
- kmod-wl package for RPM Fusion (source repository)