Broadcom WiFi BCM4634 Not Recognised By EndeavourOS

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:d3:cd:6c brd ff:ff:ff:ff:ff:ff

I have tried a few things suggested on the internet, including

  1. installing broadcom-wl-dkms and restarting
  2. installing b43-firmware and restarting
  3. 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?

1 Like

You need kernel patches and specific firmware.

see https://wiki.t2linux.org/guides/wifi-bluetooth/

1 Like

That’s not the WiFi adapter?

no, the first two letters ‘en’ mean ethernet, ‘wl’ stands for wlan.

hello @vjanjic80,
welcome to the purple universe :enos_flag: :enos: :penguin_face: :rocketa_purple: :purple_heart:

Thanks, enjoying it so far :slight_smile: Wll try the instructions that ainz sent, and then I will hopefully enjoy it even more.

3 Likes

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!

1 Like

Tried this earlier, with no luck :frowning:

Here’s a link: https://wiki.archlinux.org/title/Broadcom_wireless

I’m not using any macs, but if I remember correctly, some blacklisting might be required.

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.

Someone managed to get the firmware (see 1 Answer):

Also, see:

(Eventually leading to the link, @ainz already posted above.)

2 Likes

So it does need the firmware and i was looking at that same page as @ainz

Edit: Also looked at that this one too.

1 Like

Edit:
This post was deleted due to being gibberish!

Thank you, @ricklinux! :wink:

Updating / Building kernel on Arch Linux for T2-Macs (FAQ):

https://wiki.t2linux.org/distributions/arch/faq/#updating-kernel

1 Like

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?

Perhaps someone with more experience in compiling their own kernel can help here?

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

output for this?
modinfo brcmfmac | grep 4387

If it doesn’t output anything, then try this older Wi-Fi guide. https://github.com/t2linux/wiki/blob/a4b46a7cfbe7efcbb6a0b6111e22172b0f5c4a77/docs/guides/wifi.md

Links that maybe of some help:

or if this does’t work then you could get a USB wifi dongle

1 Like

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…

1 Like

modinfro brcmfmac | grep 4387 outputs

firmware: brcm/brcmfmac4387c2-pcie.clm_blob
firmware: brcm/brcmfmac4387c2-pcie.bin

But I still don’t see a WiFi card detected anywhere, even after doing systemctl restart NetworkManager. Am I missing something?