Skip to content

Latest commit

 

History

History
116 lines (91 loc) · 5.84 KB

Slimming_Intel_WiFI_BT_Kexts.md

File metadata and controls

116 lines (91 loc) · 5.84 KB

How to compile slimmed AirportItlwm, itlwm and IntelBluetoothFirmware kexts for Intel Wi-Fi/BT Cards

The size of the Intel Wireless and BluetoothFirmare kexts for Intel Cards can be reduced drastically by about a factor of 10 by deleting all the unnecessary firmwares for other Wi-Fi cards except the one for your WiFi/BT Card.

Note

The screenshots in this guide show firmware files used by the Intel AC-9560 Wifi/BT card.

Preparations

Identifying the used firmwares

Wi-Fi Firmware

  • Open IORegistryExplorer
  • If you are using AirportItlwm.kext, search for Airport
  • Take note of the entry for IOModel ("iwm-…"):
    Airport

Note

Identifying the Wi-Fi firmware does not work when using Itlwm.kext, so you must use AirportItlwm.kext!

Bluetooth Firmware

  • In IORegistryExplorer, locate the entry InteBluetoothFirmware
  • Check the entry for fw_name
  • Take note of the value:
    btfirmware

Note

If the field fw_name is empty, you need to use Linux to find the firmware:

  • Prepare a bootable USB flash drive with Ventoy
  • Download a Linux distro of your choice (as .iso)
  • Put the .iso on the Ventoy USB Stick
  • Boot from the Ventoy USB stick
  • Select the Linux distro
  • Run Linux in live mode, don't install it
  • Once you reach the desktop, run Terminal
  • Enter dmesg | grep ibt
  • This will show you the used BT Firmware files ("ibt…"):
    linux
  • Take note of the two files, reboot into macOS and continue with the guide

Install Xcode

  • Download the correct version of Xcode
  • Move the Xcode app to the "Programs" folder – otherwise compiling might fail.

Prepare the itlwm source code

  • Download itlwm source code (click on "Code" and select "Download zip")
  • Unzip the file – "itlwm-master" folder will be created
  • Run Terminal
  • Enter cd ~/Downloads/itlwm-master
  • Next, download MacKernelSDK into the "itlwm-master" folder. Enter: git clone https://github.com/acidanthera/MacKernelSDK
  • Leave the Terminal window open for later use
  • Download the DEBUG version of Lilu, extract it and place the kext in the itlwm-master folder
  • In Finder, navigate to ~/Downloads/itlwm-master/itlwm/firmware
  • Delete every file except the iwm-… file for your Intel Wifi/BT card.

Tip

Instead of deleting unnecessary firmware files manually, you can also use Terminal to do this. The following command deletes all firmwares except the one specified under -name 'iwm…'. So before using it, you have to adjust the name of the firmware to match the one required by your card: find itlwm/firmware/ -type f ! -name 'iwm-7265-*' -delete

Prepare the IntelBluetoothFirmware source code

  • Download IntelBluetoothFirmware source code (click on "Code" and select "Download zip")
  • Unzip the file – "IntelBluetoothFirmware-master" folder will be created
  • Run Terminal
  • Enter: cd ~/Downloads/IntelBluetoothFirmware-master
  • Next, download MacKernelSDK into the "IntelBluetoothFirmware-master" folder. Enter: git clone https://github.com/acidanthera/MacKernelSDK
  • Leave the Terminal window open for later use
  • Download the DEBUG version of Lilu, extract it and place the kext in the IntelBluetoothFirmware-master folder
  • In Finder, navigate to ~/Downloads/IntelBluetoothFirmware-master/IntelBluetoothFirmware/fw
  • In the fw folder delete all the firmware files except the two: ibt-….ddc and ibt-….sfi files for your card
  • If present, also delete FwBinary.cpp from /IntelBluetoothFirmware-MASTER/IntelBluetoothFirmware

Compiling the kexts

Compiling AirportItlwm and Itlwm

Enter the following commands (the lines without #) in Terminal and execute them one by one to build itlwm as well as AirportItlwm kexts for all versions of macOS:

# navigate to the itlwm folder (if it is not your working directory already)
cd ~/Downloads/itlwm-master

# remove generated firmware
rm include/FwBinary.cpp

# generate firmware
xcodebuild -project itlwm.xcodeproj -target fw_gen -configuration Release -sdk macosx

# building the kexts
 xcodebuild -alltargets -configuration Release

Once building the kexts is completed they will be located under ~/Downloads/itlwm-master/itlwm/build/Release:
kexts

Compiling InteBluetothFirmware

Enter the following commands (the lines without #) in Terminal and execute them one by one to build the IntelBluetoothFirmware kext:

# Navigate to the IntelBluetoothFirmware folder (if it is not your working directory already)
cd ~/Downloads/IntelBluetoothFirmware-master

# build the kext
xcodebuild -alltargets -configuration Release

The compiled kexts will be located under ~/Downloads/IntelBluetoothFirmwar-master/build/Release:
itlbtfw

Testing

  • Copy the newly compiled kexts to EFI/OC/Kexts, replacing the existing ones
  • Reboot
  • Check if WiFi and Bluetooth are working.

Important

  • itlwm.kext requires the Heliport app to connect to Wi-Fi Hotspots
  • If you are having issues with the slimmed kexts, I suggest you use the pre-compiled version from the OpenIntelWireless repo instead

Credits