omarchy icon indicating copy to clipboard operation
omarchy copied to clipboard

DRAFT: Fix Broadcom wifi on mid-2010s MacBooks (#1022) -- untested

Open adamavenir opened this issue 4 months ago • 17 comments

Based on pointers from @bcorcoran

This patch:

  • detects Broadcom BCM4360 which fail with "Operation failed" in iwctl
  • applies kernel param brcmfmac.feature_disable=0x82000
  • only when affected hardware should be detected (14e4:43a0, 14e4:43ba)

Needs to be tested. Untested (but attempting to test)

Notes:

  • Issue exists in current Arch (which makes sense ofc)
  • Omarchy ISO doesn't allow access to Arch's pre-load (afaict?) so need to test in Arch
  • Additional suggestions from @bcorcoran here not incorporated

adamavenir avatar Aug 26 '25 21:08 adamavenir

Could we extend the scope of this PR to also cover early 2010s macbooks? I have a 2012 MacBook Pro which requires the broadcom-wl firmware to enable WiFi. Will be happy to help out testing, if we include this in the scope.

I have requested it as part of the iso as well, but maybe it's better to deliver it here.

https://github.com/omacom-io/omarchy-iso/issues/22

brink-lab avatar Aug 28 '25 08:08 brink-lab

Yes please. Let's solve all the vintage MacBook wifi issues in this one.

dhh avatar Aug 31 '25 08:08 dhh

image

Gathering comments from the discord server so we can gain an overview over, which models work out of the box and which doesn't.

brink-lab avatar Sep 01 '25 07:09 brink-lab

Older MacBook Air working out of the box as well. Specs below

image image image

brink-lab avatar Sep 01 '25 10:09 brink-lab

Just to report on my progress here.

I spent a couple hours yesterday testing with the iso

  • first only adding the broadcom driver
  • then with the brcmfmac.feature_disable=0x82000 added

Have not gotten my wifi working yet in either iteration. Will test a bit more with some more variations and approaches based on what I've picked up so far; trying to approach scientifically rather than throwing everything at once.

If someone else has a clear fix, don't let me block you at all.

adamavenir avatar Sep 02 '25 14:09 adamavenir

I have had better luck with broadcom-wl-dkms and a modprobe "ban" file:

blacklist b43
blacklist b43legacy
blacklist bcm43xx
blacklist bcma
blacklist brcm80211
blacklist brcmfmac
blacklist brcmsmac
blacklist ssb

# this might not be necessary but won't cause any errors. 
# if you see a message about allhwsupport not existing in dmesg output, you can remove it
options b43 allhwsupport=1

FYI^ the blacklist entries above vary with hardware. The above is for BCM43602.

@adamavenir I think adding the flag to the actual kernel boot params may be necessary (as opposed to putting it as an options entry in a modprobe file like above)- this is the way it's listed in the Arch wiki and what has worked for me. From my time working with Hackintosh on another machine- I recall it has something to do with when the firmware is able to be written to the hardware. I could be totally wrong about this though (it was years ago now).

Additionally, I'm using NetworkManager and nmtui to manage wifi- iwctl never worked for me!

bcorcoran avatar Sep 02 '25 14:09 bcorcoran

Yeah I've actually been trying with the dkms version.

I intend to try the blacklist next! Thank you!

adamavenir avatar Sep 02 '25 15:09 adamavenir

I had a conversation with ChatGPT recently. In a nutshell it said that many of these macbooks would need the broadcom-wl firmware, while some even older models requires the opensource b43. So blacklisting b43 for everyone will maybe create issues for some older models?

(all this of course assumes that chatGPT is correct)

brink-lab avatar Sep 02 '25 15:09 brink-lab

I had a conversation with ChatGPT recently. In a nutshell it said that many of these macbooks would need the broadcom-wl firmware, while some even older models requires the opensource b43. So blacklisting b43 for everyone will maybe create issues for some older models?

(all this of course assumes that chatGPT is correct)

This is why I listed the FYI above (I edited it, so you may not have seen it via email). We will have to detect and include the appropriate blacklist entries based on the adapter device ids.

bcorcoran avatar Sep 02 '25 16:09 bcorcoran

Just to report on my progress here.

I spent a couple hours yesterday testing with the iso

  • first only adding the broadcom driver

  • then with the brcmfmac.feature_disable=0x82000 added

Have not gotten my wifi working yet in either iteration. Will test a bit more with some more variations and approaches based on what I've picked up so far; trying to approach scientifically rather than throwing everything at once.

If someone else has a clear fix, don't let me block you at all.

I tried this fix as well and it didn't fix the issue on my MacBook Pro 13,3. I'll keep poking around to see if I can find something that might be helpful.

joelgaff avatar Sep 02 '25 16:09 joelgaff

Someone on the Discord suggested the fix of:

EDITED: sudo iw dev wlan0 set txpower fixed 1000

This worked for me on my MBP 2016 (13,3).

It also worked with different values in place of '1000'

joelgaff avatar Sep 02 '25 18:09 joelgaff

@joelgaff Please provide the device id from lspci -vnn -d 14e4: Thanks!

bcorcoran avatar Sep 02 '25 18:09 bcorcoran

14e4:43ba

It appears I'm using the brcmfmac driver,too, fwiw.

I'm sure you all have checked out this page, but I'll add it here as a reference just in case:

https://wiki.archlinux.org/title/Broadcom_wireless#BCM43602_802.11ac_Wireless_LAN_SoC

joelgaff avatar Sep 02 '25 18:09 joelgaff

image

A user with BCM4360 also had to install broadcom-wl manually.

brink-lab avatar Sep 02 '25 19:09 brink-lab

and here's Philip's details:

lspci -vnn -d 14e4: 02:00.0 Multimedia controller [0480]: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570] Subsystem: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570] Flags: bus master, fast devsel, latency 0 Memory at c1500000 (64-bit, non-prefetchable) [size=64K] Memory at a0000000 (64-bit, prefetchable) [size=256M] Memory at c1400000 (64-bit, non-prefetchable) [size=1M] Capabilities:

03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Dual Band Wireless Network Adapter [14e4:43a0] (rev 03) Subsystem: Apple Inc. Device [106b:0117] Flags: bus master, fast devsel, latency 0, IRQ 18 Memory at c1200000 (64-bit, non-prefetchable) [size=32K] Memory at c1000000 (64-bit, non-prefetchable) [size=2M] Capabilities: Kernel driver in use: wl Kernel modules: bcma, wl

joelgaff avatar Sep 02 '25 19:09 joelgaff

Someone on the Discord suggested the fix of:

sudo iw dev wlan0 set txpower 1000

This worked for me on my MBP 2016 (13,3).

It also worked with different values in place of '1000'

This generally worked for me as well. One change is that the command is missing one argument. Note the inclusion of fixed below.

sudo iw dev wlan0 set txpower fixed 1000

14e4:43ba

Macbook Pro model A1707

Edit: This worked during install for me, but wifi still fails to connect after install. iw fails with command not found. Network is "known" in TUI, but fails to connect with operation failed.

Edit 2: Update after experimenting a bit this weekend. Installing iw and fixing or limiting power (..txpower fixed 1000 or txpower limit 1000 reliably works, however speeds are much slower than expected. (~25Mbps vs 460Mbps on a 1Gbps connection)

spencern avatar Sep 06 '25 21:09 spencern

Good catch, @spencern ! I'll edit my comment above.

joelgaff avatar Sep 06 '25 22:09 joelgaff

@ryanrhughes has done a full round of all the T1 and T2 fixes we needed and this is included. Thanks for working on it!

dhh avatar Sep 14 '25 18:09 dhh