I have finally decided to switch back to using Linux on my iMac from 2019, and almost everything is working (relatively) smoothly…except for WiFi. I can connect to the internet via Ethernet at my work, but for various reasons, I’d like to connect through wireless instead. However, EndeavourOS cannot recognise the wireless card.
lspci returns
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4364 802.11ac Wireless Network Adapter (rev 03)
but I don’t see the adapter anywhere - not in the graphical network settings thingy, nor in the output of ‘ip link’, which is:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 80:4a:14:5f:27:4e brd ff:ff:ff:ff:ff:ff
3: enp8s0u2u1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:4c:d36c brd ff:ff:ff:ff:ff:ff
I have tried a few things suggested on the internet, including
installing broadcom-wl-dkms and restarting
installing b43-firmware and restarting
throwing my keyboard to the wall and restarting
but no matter what I do, the wireless adapter won’t display anywhere. What am I missing?
Try install linux-lts-headers or linux-headers depending on which kernel you are on.
Something like this happened with me some time ago.
Mine is “Device-1: Broadcom BCM4313”
Be sure you did not uninstall broadcom-wl-dkms. If you did reinstall it.
Please let me know if this helps!
I’m pretty sure this runs on the brcmfmac which should be in the kernel. You need to uninstall broadcom-wl-dkms. Start there and see. You may need the b43 firmware?
Edit:
brcm80211
The kernel contains two built-in open-source drivers: brcmfmac for native FullMAC and brcmsmac for mac80211-based SoftMAC. They should be automatically loaded when booting.
I would try without broadcom-wl-dkms and b43 firmware first.
Thanks, everyone. It seems that building a kernel is the only solution. However, I run into problems when following the instructions on t2linux.org, building failed when building some parts of the documentation. I presume I either need to download the documentation package either, or somehow provide the flag that no documentation should be built. I’ll paste the error as soon as I get to the computer in question.
Didn’t work either, no idea what is wrong now. Followed the instructions that @ainz sent, and it all seemed okay - no errors. After (supposedly) loading the firmware, I did ‘sudo journalctl -k --grep=brcmfmac’ and the output is
kernel: usbcore: registered new interface driver brcmfmac
kernel: brcmfmac 0000:03:00.0: enabling device (0000 → 0002)
brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364b2-pcie for chip BCM4364/3
kernel: brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364b2-pcie.txt failed with error -2
kernel: brcmfmac 0000:03:00.0: brcmf_pcie_download_fw_nvram: FW failed to initialize
Presumably, this means that the firmwire didn’t load properly, but how do I fix this?
Well it’s Apple, where they don’t give a damn about if their hardware works outside of MacOS.
Running sudo journalctl -k --grep=brcmfmac should say something like blob found,loading like this:
Dec 24 22:34:19 hostname kernel: usbcore: registered new interface driver brcmfmac
Dec 24 22:34:19 hostname kernel: brcmfmac 0000:01:00.0: enabling device (0000 -> 0002)
Dec 24 22:34:20 hostname kernel: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4377b3-pcie for chip BCM4377/4
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,tahiti-SPPR-m-3.1-X0.bin failed with error -2
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,tahiti-SPPR-m-3.1.bin failed with error -2
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,tahiti-SPPR-m.bin failed with error -2
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,tahiti-SPPR.bin failed with error -2
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,tahiti-X0.bin failed with error -2
Dec 24 22:34:20 hostname kernel: brcmfmac: brcmf_c_process_txcap_blob: TxCap blob found, loading
Dec 24 22:34:20 hostname kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4377/4 wl0: Jul 16 2021 18:25:13 version 16.20.328.0.3.6.105 FWID 01-30be2b3a
Dec 24 22:34:20 hostname kernel: brcmfmac 0000:01:00.0 wlp1s0f0: renamed from wlan0
Download and run the script :
bash /path/to/firmware.sh
Then reprobe the wifi kernel module: sudo modprobe -r brcmfmac && sudo modprobe brcmfmac
Thanks, I will try this. I could live without the WiFi, as it is a desktop machine and I have ethernet connection, would just be nice to get it working…