Making WiFi work on Big Sur unsupported Macs with “failed with 66” error

Andrey Viktorov
5 min readJun 24, 2020

TRY THIS FIRST

ASentientBot has found a way to disable snapshot boot, if you’re experiencing “failed with 66”, try this first:

Only if this doesn’t helped you and you still get “failed with 66” like I do, then proceed with the guide below.

HUGE DISCLAIMER, PLEASE READ IT:

Run this only if sudo mount -uw / returns “failed with 66” on your machine!

This guide is complicated, requires multiple reboots and has large chance of damaging your Big Sur installation, close to 100%.

I’m not responsible for any device or OS damages that may occur during this process. Proceed at your own risk and confidence, and always have ways to recover your machine.

Never run it on mission-critical machines or ones that have important data.

I’ve warned you. If something wrong will happen —blame yourself, not me. It’s nearly impossible to troubleshoot. Follow EVERY STEP closely. Output of commands should look the same!

Just buy a wifi adapter or wait for a better solution, if you don’t want to take such risk.

Do not proceed if you’re not familiar with macOS and don’t know how to work in Terminal.

DON’T TRY TO UPDATE YOUR BIG SUR INSTALLATION WHEN UPDATES WILL ARRIVE BEFORE THERE WILL BE CONFIRMATION THAT EVERYTHING WORKS.

Huge thanks to MacRumors community and especially mac_4eva, jackluke and highvoltage12v for their research!

Step Zero

To proceed, you will need two things:

  1. 16 GB+ USB drive with bootable USB installer of Big Sur, you can create one with createinstallmedia inside installer, just like with any previous macOS
  2. Unzipped kext from this link, copied to your USB drive next to “Install macOS Beta” application: https://forums.macrumors.com/threads/macos-11-big-sur-on-unsupported-macs-thread.2242172/page-15?post=28595200#post-28595200

Step One: remembering Volume Group UUID and preboot disk

Boot into installed Big Sur, run Terminal and run sudo kcditto

Look for this line and the line next to it:

And photograph it. Knowing this UUID and preboot disk is necessary for future steps.

Step Two: disabling authenticated root

  1. Reboot to your usb drive with Big Sur installer and copied kext.
  2. If you have FileVault enabled — well, good luck then, haven’t tested. Enter password for the Big Sur installation.
  3. Open Terminal
  4. Enter csrutil authenticated-root disable
  5. Reboot to the USB

Step Three: mounting volume

After reboot, open Terminal and:

  1. Mount your Big Sur system partition, not data one. diskutil mount /Volumes/<Volume\ Name>. From there and to the end of the guide, replace <Volume\ Name> with the name of your volume. Always prepend spaces in volume name with \, for example: diskutil mount /Volumes/Big\ Sur
  2. Remount it as readwrite: mount -uw /Volumes/<Volume\ Name>
  3. Make a snapshot to restore if something wents wrong:
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "BeforeWifiKexts" -v /Volumes/<Volume\ Name>

Step Four: replacing kext

  1. cd /Volumes/<Volume\ Name>/System/Library/Extensions
  2. Backup current kext: mv IO80211Family.kext IO80211Family.kext.backup
  3. Copy new kext from the usb drive, usb is always mounted at /Volumes/Image\ Volume : cp -r /Volumes/Image\ Volume/IO80211Family.kext .

Step Five: installing kexts

Really dangerous things starts now.

Run this command: kmutil install --update-all --volume-root /Volumes/<Volume\ Name>

You should see “Brcm4331”, “Brcm4360” and some other kexts in the output.

There must be NO ERRORS DURING THIS PROCESS.

Step Six: creating snapshot and making it bootable

First, we will create a new APFS snapshot for our volume, it’s a one long command:

/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -s "WifiKexts" -v /Volumes/<Volume\ Name>

Second, mark it as bootable:

/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "WifiKexts" -v /Volumes/<Volume\ Name>

The only difference between these two commands, is “-s” after apfs_systemsnapshot replaced with “-r”

Step Seven: copying updated BootKernelExtensions to the Preboot

Mount your preboot disk from step one, in my case it’s /dev/disk3s2, look up the photo you took on first step: diskutil mount /dev/<yourprebootdisk>

Create backup of Preboot data, replace 1-2-3-4 with UUID from the first step:

cd /Volumes/Prebootcp -r 1-2-3-4 1-2-3-4.beforewifikexts

Navigate to the correct folder in Preboot with UUID from first step:

cd /Volumes/Preboot/<UUID>/boot/System/Library/KernelCollections

Copy BootKernelExtensions from your volume to preboot:

cp /Volumes/<Volume\ Name>/System/Library/KernelCollections/BootKernelExtensions.kc .cp /Volumes/<Volume\ Name>/System/Library/KernelCollections/BootKernelExtensions.kc.elides .

Step Eight: final

  1. Reboot to your installed Big Sur from the usb
  2. If you’re stuck on boot after approx 10 minutes, well, you’re fucked.
  3. Log in, wifi still should not work
  4. Open terminal and run: sudo kcditto
  5. Reboot
  6. Voila, wifi should work now.

Bonus Step: in case something went wrong

  1. Boot into your Big Sur USB and open Terminal
  2. Make backup snapshot bootable, notice “-r” instead of “-s”:
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -r "BeforeWifiKexts" -v /Volumes/<Volume\ Name>

3. Mount preboot as listed in step seven, cd /Volumes/Preboot

4. mv 1-2-3-4 1-2-3-4.broken where 1-2-3-4 is your volume group UUID

5. cp -r 1-2-3-4.beforewifikexts 1-2-3-4 where 1-2-3-4 is your volume group UUID

6. Reboot and check. After that, you can try again, but don’t create BeforeWifiKexts snapshot and don’t copy preboot again! It’s meant to be done once.

This guide took two days of pain, research, trial and error, and four Big Sur reinstallations. If it helped you, consider supporting me here: https://lynx.pink/buymeacoffee/

--

--