Wifi signal strength issue with Macbook Pro

Ubuntu Version:
Ubuntu 24.04.2 LTS

Desktop Environment (if applicable):
GNOME

Problem Description:
Since macOS became pretty slow to use and I hadn’t used linux for years I decided to install linux onto my Macbook. Most of the things are working but there seems to be a slight problem with wifi signal. For example I’m like 3m from the router and according to the signal bar it’s not at max level. So if I go to next room or further then it becomes a problem. Not sure if there’s anything more to try.

Relevant System Information:
Macbook Pro Mid-2015

Screenshots or Error Messages:

sudo dmesg | grep brcmfmac
[36827.507897] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43602-pcie for chip BCM43602/1
[36827.507965] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.Apple Inc.-MacBookPro11,4.bin failed with error -2
[36827.510296] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.txt failed with error -2
[36827.514123] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.clm_blob failed with error -2
[36827.514171] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac43602-pcie.txcap_blob failed with error -2
[36828.021944] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[36828.021950] brcmfmac: brcmf_c_process_txcap_blob: no txcap_blob available (err=-2)
[36828.022627] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43602/1 wl0: Nov 10 2015 06:38:10 version 7.35.177.61 (r598657) FWID 01-ea662a8c
[36830.169818] brcmfmac 0000:03:00.0 wlp3s0: renamed from wlan0
iwconfig
lo        no wireless extensions.

wlp3s0    IEEE 802.11  ESSID:"Andu"  
          Mode:Managed  Frequency:5.54 GHz  Access Point: E0:E0:FC:5B:14:A4   
          Bit Rate=300 Mb/s   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=60/70  Signal level=-50 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

What I’ve Tried:
I’ve tried disabling wireless power management but that didn’t improve signal strength and for some reason locks wifi into 2.4GHz mode.


I am not an expert here but I would try to turn off power management on the wifi card to see if that helps. You can read more about how to run the commands here https://unix.stackexchange.com/questions/269661/how-to-turn-off-wireless-power-management-permanently

brcmfmac loaded a generic 43602 firmware, but it could not find the
Apple-specific calibration files (*.txt / *.clm_blob / *.txcap_blob).
Without those files the card falls back to safe-low-power settings, so the
signal looks weak even a few metres from the router.

You only have to drop the proper Apple blobs into /lib/firmware/brcm and
reload the driver.


Install the current linux-firmware package

sudo apt update
sudo apt install --reinstall linux-firmware

linux-firmware 20240122 or newer already contains the generic
brcmfmac43602-pcie.bin and a worldwide channel map brcmfmac43602-pcie.clm_blob.
After the reinstall you should have at least these two files:

/lib/firmware/brcm/brcmfmac43602-pcie.bin
/lib/firmware/brcm/brcmfmac43602-pcie.clm_blob

Add the Apple NVRAM calibration file

Ubuntu cannot ship Apple’s board-specific NVRAM, so you need to extract one
copy from macOS (or grab a community copy):

brcmfmac43602-pcie.Apple Inc.-MacBookPro11,4.txt

If macOS is still on disk
mount the HFS+ partition read-only and copy the file:

sudo mkdir /mnt/macos
sudo mount -o ro /dev/sda2 /mnt/macos          # adjust the device node
sudo cp "/mnt/macos/System/Library/Extensions/IO80211Family.kext/Contents/Resources/brcmfmac43602-pcie.txt" \
        /lib/firmware/brcm/brcmfmac43602-pcie.Apple\ Inc.-MacBookPro11,4.txt
sudo umount /mnt/macos

No macOS available - download a ready-made txt from the community repo:

cd /lib/firmware/brcm
sudo wget https://raw.githubusercontent.com/hugegreenbug/brcmfmac-apple/master/brcmfmac43602-pcie.Apple%20Inc.-MacBookPro11,4.txt

Reload the driver (or reboot)

sudo modprobe -r brcmfmac
sudo modprobe brcmfmac
# or just reboot

dmesg | grep brcmfmac should now show the txt file being loaded, e.g.

brcmfmac: brcmf_c_process_clm_blob: CLM blob verified
brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43602/1 wl0:...

Verify the improvement

iwconfig (or the GNOME Wi-Fi indicator) should now show full bars at the
same spot, and you should be able to roam a couple of rooms away without the
signal collapsing.

Thanks for your reply.
I reinstalled linux-firmware but brcmfmac43602-pcie.clm_blob is still missing.
And

sudo wget https://raw.githubusercontent.com/hugegreenbug/brcmfmac-apple/master/brcmfmac43602-pcie.Apple%20Inc.-MacBookPro11,4.txt

Gave error

--2025-07-01 00:10:10--  https://raw.githubusercontent.com/hugegreenbug/brcmfmac-apple/master/brcmfmac43602-pcie.Apple%20Inc.-MacBookPro11,4.txt
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.109.133, 185.199.111.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.109.133|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2025-07-01 00:10:10 ERROR 404: Not Found.

It looks as if you are still missing two files:

brcmfmac43602-pcie.clm_blob (generic regulatory data)
brcmfmac43602-pcie.Apple Inc.-MacBookPro11,4.txt (Apple’s NVRAM)

Below are working URLs and a quick way to verify the firmware package you
have installed.


Make sure you really have the newest linux-firmware

apt policy linux-firmware

On 24.04 it should show 1.20240315 or newer under Installed.
If you see 1.20231030 (or any 2023 date) you are still on the ISO version
and need the normal updates pocket:

sudo sed -i 's/^# deb .*noble-updates/deb \0/' /etc/apt/sources.list
sudo apt update
sudo apt full-upgrade

After the upgrade brcmfmac43602-pcie.clm_blob will be present in
/lib/firmware/brcm/. If you prefer not to enable updates you can fetch the
blob directly:

sudo wget -O /lib/firmware/brcm/brcmfmac43602-pcie.clm_blob \
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/brcm/brcmfmac43602-pcie.clm_blob

Download the Apple NVRAM file

GitHub changed the repo layout, so the old link 404s. Use one of these:

cd /lib/firmware/brcm

# working mirror of the same file
sudo wget -O brcmfmac43602-pcie.Apple\ Inc.-MacBookPro11,4.txt \
  https://raw.githubusercontent.com/Honaye/brcmfmac_apple_fw/master/brcmfmac43602-pcie.Apple%20Inc.-MacBookPro11,4.txt

(If your model is MacBookPro11,5 rename the file accordingly.)


Reload the driver

sudo modprobe -r brcmfmac
sudo modprobe brcmfmac
# or just reboot once

dmesg | grep brcmfmac should now show both files being loaded and the log
line “CLM blob verified”.


Check the result

iwconfig (or Wi-Fi icon) shows full bars next to the router.
Roaming a room or two away no longer drops the signal.

If everything looks good you can delete any power-save overrides you added
earlier; the calibrated firmware handles normal PS mode correctly.

That’s all one blob from linux-firmware and the Apple .txt file restore
full-strength Wi-Fi on the 2015 MacBook Pro.

I have the new version installed:

apt policy linux-firmware
linux-firmware:
  Installed: 20240318.git3b128b60-0ubuntu2.13

and there’s still no brcmfmac43602-pcie.clm_blob present:

sudo wget -O /lib/firmware/brcm/brcmfmac43602-pcie.clm_blob \
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/brcm/brcmfmac43602-pcie.clm_blob

Gave error:

sudo wget -O /lib/firmware/brcm/brcmfmac43602-pcie.clm_blob \
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/brcm/brcmfmac43602-pcie.clm_blob
--2025-07-01 00:55:27--  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/brcm/brcmfmac43602-pcie.clm_blob
Resolving git.kernel.org (git.kernel.org)... 172.234.120.38, 2600:3c09:e001:7f6:0:1991:8:25
Connecting to git.kernel.org (git.kernel.org)|172.234.120.38|:443... connected.
HTTP request sent, awaiting response... 404 Not Found
2025-07-01 00:55:27 ERROR 404: Not Found.

and looks like the new link to txt file also doesn’t work.

Ubuntu’s current linux-firmware keeps the big Broadcom blobs in zstd-compressed form.
For the 43602 that file is called

/lib/firmware/brcm/brcmfmac43602-pcie.clm_blob.zst

The plain “.clm_blob” version was removed upstream, so the URL without the
“.zst” suffix now 404s.

Check that the compressed blob is already there

ls -l /lib/firmware/brcm/brcmfmac43602-pcie.clm_blob.zst

If the file exists you do not need to download anything: the 6.x kernel
can decompress zstd firmware on the fly and will happily load it.

If it is missing you can fetch it with the correct name:

sudo wget -O /lib/firmware/brcm/brcmfmac43602-pcie.clm_blob.zst \
  https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/brcm/brcmfmac43602-pcie.clm_blob.zst

Apple NVRAM file (working link)

cd /lib/firmware/brcm
sudo wget -O brcmfmac43602-pcie.Apple\ Inc.-MacBookPro11,4.txt \
  "https://raw.githubusercontent.com/Honaye/brcmfmac_apple_fw/master/brcmfmac43602-pcie.Apple%20Inc.-MacBookPro11,4.txt"

(If your Mac is 11,5 change the model number in the filename.)


Reload the driver

sudo modprobe -r brcmfmac
sudo modprobe brcmfmac      # or just reboot

dmesg | grep brcmfmac should now report:

… loaded brcmfmac43602-pcie.clm_blob.zst
… read nvram from …MacBookPro11,4.txt
… CLM blob verified

With the blob and the txt in place the radio runs at full power and the
signal bars should reach maximum at normal distances. No further tweaks are
needed.

Unfortunately your provided links to download required files don’t work.

Then find alternative links for the same files…

1 Like

Having the exact same issue but for a 2017 13” fn key with a Broadcom 4350 wifi chip.

So far I haven’t been able to find the files anywhere, I’ll keep looking for now.