PureOS on Macbook?


os:~$ sudo apt update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 https://repo.pureos.net/pureos amber InRelease
Hit:3 https://repo.pureos.net/pureos amber-security InRelease
Hit:4 https://repo.pureos.net/pureos amber-updates InRelease
Reading package lists… Done
Building dependency tree
Reading state information… Done
All packages are up to date.


Someone else should help with: modprobe: ERROR: could not insert ‘wl’: Exec format error

And, as you are advancing now, this reading might help you further to establish Wi-Fi connection.


@Ralf, please provide output from:
sudo aptitude search linux-compiler linux-kbuild linux-headers-amd64 broadcom-sta-dkms

EDIT: wl: module verification failed: signature and/or required key missing - tainting kernel

All that means, is that you’re loading a kernel module that hasn’t been fully tested/integrated with the kernel you’re running. This message was intended to identify conditions which may make it difficult to properly troubleshoot a kernel problem. For example, loading a proprietary module can make kernel debug output unreliable because kernel developers don’t have access to the module’s source code (like the nVidia or ATI proprietary drivers), and can’t determine what that module may have done to the kernel. Likewise, if the kernel had previously experienced an error condition or if a serious hardware error had occurred, the debug information generated by the kernel may not be reliable.” IMO, this kind of proprietary Wi-Fi might work fine with Ubuntu 18.04 LTS or Debian 10, but not with PureOS (kernel), but not sure.


i broadcom-sta-dkms - dkms source for the Broadcom STA Wireless dr
i A linux-compiler-gcc-8-x86 - Compiler for Linux on x86 (meta-package)
i A linux-headers-amd64 - Header files for Linux amd64 configuration (
i A linux-kbuild-4.19 - Kbuild infrastructure for Linux 4.19


All of above dependencies (.deb packages) are installed (“i”) as necessary, IMO. This guide might help you further by (instead of sudo reboot) using:
~$ sudo modprobe <device_name>
Maybe you’ll need to load BCM4331 module (into kernel) every time you shutdown/reboot MBP, but this would be all right (if works).

P.S. There is another way/optional compilar el driver oficial with Linux® STA 64-bit driver (if appropriate). That’s all, thank you!


nothing seemed to happen trying modprobe.


You accidentally misspelled modprobe


I fixed the spelling, but nothing seems to happen.
Then tried the list:

ralf@ralf-mac-pureos:~$ lsmod

Module Size Used by
brcmsmac 577536 0
cordic 16384 1 brcmsmac
brcmutil 16384 1 brcmsmac
bcma 61440 1 brcmsmac
mac80211 815104 1 brcmsmac
rndis_wlan 65536 0
rndis_host 16384 1 rndis_wlan
cdc_ether 16384 1 rndis_host
usbnet 49152 3 rndis_wlan,rndis_host,cdc_ether
mii 16384 1 usbnet
nls_ascii 16384 0
nls_cp437 20480 0
vfat 20480 0
fat 86016 1 vfat
uas 28672 0
usb_storage 73728 1 uas
fuse 122880 3
rfcomm 86016 0
bnep 24576 2
uinput 20480 1

Looks like the brcmsmac is there but not used ?


I did
lshw -c network

and got:
description: Network controller
product: BCM4331 802.11a/b/g/n
vendor: Broadcom Limited
physical id: 0
bus info: pci@0000:03:00.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=bcma-pci-bridge latency=0
resources: irq:17 memory:a0600000-a0603fff

What does this tell us?


ralf@ralf-mac-pureos:~$ sudo rmmod brcmsmac
ralf@ralf-mac-pureos:~$ sudo modprobe brcmsmac
ralf@ralf-mac-pureos:~$ sudo lsmod | grep brcm
brcmsmac 577536 0
cordic 16384 1 brcmsmac
brcmutil 16384 1 brcmsmac
bcma 61440 1 brcmsmac
mac80211 815104 1 brcmsmac
cfg80211 761856 3 rndis_wlan,mac80211,brcmsmac


For my view here it is not about MBP, it is about to reach some kind of conclusion, like: avoid this one or that one (all of them) proprietary Wi-Fi on top (within) of PureOS kernel. At this stage, is it provided link (above post #127), or any other similar in content:

of any use to @Ralf?


There is missing (not connected): broadcast=yes multicast=yes wireless=IEEE 802.11

I think there is no need to post this output, provides additional info to you:
~$ lspci -nn | grep -i net
~$ cat /lib/modules/$(uname -r)/modules.alias | grep -i 14e4 |grep -i 4331
~$ sudo modinfo brcmsmac |grep depends

We unloaded brcmsmac module with (probably by reading too carefully the manual):
~$ sudo modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

What happens by trying:
~$ sudo modprobe -r wl
~$ sudo modprobe brcmsmac (Wi-Fi works yes:no)
~$ modprobe -r brcmsmac ; modprobe brcmsmac
might be needed as well:
~$ sudo modprobe bcma

If nothing happens, please try:
~$ sudo apt install firmware-brcm80211
and repeat above (without modprobe -r wl).

Last option (from my side), up to this source: https://wiki.debian.org/WiFi, needed to install:
~$ sudo apt install ndiswrapper
and proceed as described here: https://wiki.debian.org/NdisWrapper
The particular BCM4331 driver (hew801ww.exe) might hide here (but not sure, cannot test):


nothing happened there

sudo modprobe bcma - nothing happened

ralf@ralf-mac-pureos:~$ sudo apt install firmware-brcm80211
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,278 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/non-free amd64 firmware-brcm80211 all 20190114-2 [4,278 kB]
Fetched 4,278 kB in 9s (456 kB/s)
Selecting previously unselected package firmware-brcm80211.
(Reading database … 227867 files and directories currently installed.)
Preparing to unpack …/firmware-brcm80211_20190114-2_all.deb …
Unpacking firmware-brcm80211 (20190114-2) …
Setting up firmware-brcm80211 (20190114-2) …

then this popped up:

I installed the ndiswrapper but I could not find a driver for the broadcom 4331


Please read again above NdisWrapper page, from Installation chapter:
~$ sudo apt-get install unzip
Within same Download folder:
~$ sudo unzip -a hew801ww.exe (as above, from download.lenovo)

INFO: Windows drivers are required to be used.


I think such things are common within Ubuntu and usually not seen to be supported within this forum as they bring several issues that is not easy to fix and not intended to be there at first place. It is in general not easy for end user if proprietary firmware needed but unsupported on Linux platform. Did you tried to install firmware.xml.gz.asc as requested after installation of firmware-brcm80211?
~$ sudo service fwupd start
~$ sudo fwupdmgr refresh
~$ sudo fwupdmgr update

IMO, this thread reached his points (both spoken and unspoken ones) and should be closed.


Yes, we can close this threat.
I don’t have time at the moment to work on the issue anymore. I will use USB wifi as a work around.
Would still be nice if PureOS would come up with a solution in the future. I would think that in the future more Apple hardware owners will be looking for an alternative to the ever increasing intrusion of the big companies into our personal equipment via software.
I will continue to support PureOS.

Thank you everybody.