FIX: WiFi Not Connecting To Available Networks on 2018 Macbook Air A1932

I originally posted this on reddit as an issue - but I solved it and figured I’d share here in case anyone else may have ran into the issue before and/or anyone runs into it in the future.

----- Original Post
Hi,

I normally don’t have an issue researching and working my way through issues on my own but for the first time I find myself stuck to the point of frustration. I’m hoping some savior out there has EOS installed on the same Macbook Air as me that can help me.

ISSUE: WiFi sees available networks, but will not connect to any - asks for key, I enter it, it spins forever and asks for key again. Direct ethernet connection works fine.

So, here’s the the full spec for reference:

2018 MACBOOK AIR A1932 - EMC 3184 - MACBOOK AIR 8,2
(Neofetch lists 8,2 but I see in quite a few places it lists it as 8,1 - So I am not certain of how to confirm this)

  • CPU: i5-8210Y (4) @ 3.5GHz
  • GPU: Intel UHD 617
  • MEM: 16GB
  • WiFi: BCM4355

I believe the BCM4355 is the issue, as I cannot find the firmware anywhere (The whole disk was wiped so don’t have original OS to pull from).

Steps I’ve taken:

  1. Burned this ISO to usb via balena:
    https://github.com/t2linux/EndeavourOS-ISO-t2/releases/tag/Endeavour-T2

  2. Following this guide:
    https://wiki.t2linux.org/distributions/endeavouros/installation/

     * I updated pacman.conf replacing the mirror.funami.tech source with https://github.com/NoaHimesaka1873/arch-mact2-mirror/releases/download/release to get the install to work.
    
  •     I formatted the drive before I started the installer and gave it a gpt partition table.
    
  •     Let EOS manage the partioning, tried with swap file and no swap (irrelevant but just being thorough)
    
  •     Installed all three additional kernels
    
    •         Xanmod
      
    •         LTS Xanmod
      
    •         LTS
      

      On reboot, everything works except wifi - as mentioned, it detects it, sees available networks, but simply won’t connect to any - Just keeps asking for the password. Ethernet works fine.

      I tried running the script from the t2 guys that pulls a recovery image and installs the firmware

      [https://wiki.t2linux.org/tools/firmware.sh](https://wiki.t2linux.org/tools/firmware.sh) (direct download, not a guide)
      

https://wiki.t2linux.org/guides/wifi-bluetooth/ (guide)

I chose option 6 (reccomended) for the recovery image version - if i recall correctly it was Ventura.
Got through the steps successfully, rebooted, same issue.

Lastly, I decided to try building my own from the latest eos
https://github.com/t2linux/EndeavourOS-ISO-t2

Used this guide at the bottom, pulled https://github.com/endeavouros-team/EndeavourOS-ISO/releases/tag/24.06.2.1

wget https://github.com/endeavouros-team/EndeavourOS-ISO/archive/refs/tags/24.06.2.1.tar.gz
tar -xvf 23.11.1.2.tar.gz
cd "EndeavourOS-ISO-23.11.1.2"
./prepare.sh
sudo ./mkarchiso -v "."

Then i burned the iso from the /out directory and installed like before. Still the issue persists. I know it can’t be that the hardware is incompatible with my wifi config (channel / band) because it connected fine on MacOS.

I tried looking at linux-hardware and saw that someone had the EOS t2 installed on the same hardware and it was working, so it has to be possible. I feel like i am stupid or something and missing something simple.

Anyhow, all this to say - I have no issue working through problems myself, doing the research and reading to figure out my own problems, and i’ve tried for 2 days. But now, I am at a loss and need some help. Hopefully someone out there has the same laptop and has gone through this.

Other ideas i’ve tried:

  • wl-dkms & banning the others in the modprobe config
    
  • reinstalling the apple-bcm-firmware
    

– Followup with solution:

UPDATE: I solved it!!!

If anyone else runs into the same, here was my solution:

Create this file:
/etc/NetworkManager/conf.d/00-wifi-powersave.conf

Add:
[connection]
wifi.powersave=2

Save it and exit.

Then:
sudo pacman -S iwd
sudo systemctl stop wpa_supplicant
sudo systemctl mask wpa_supplicant
sudo systemctl enable --now iwd.service
sudo systemctl daemon-reload
sudo systemctl start iwd.service

Lastly, edit:
/etc/NetworkManager/NetworkManager.conf

Add:
[device]
wifi.backend=iwd

And restart. Viola.

2 Likes