IntelBluetoothFirmware
IntelBluetoothFirmware copied to clipboard
AX201 on Z690 Alder Lake not supported
TL; DR
July 20, 2022 update:
https://github.com/OpenIntelWireless/IntelBluetoothFirmware/issues/369#issuecomment-1188698431
July 2, 2022 update:
- Newer batches of AX201 share the same Bluetooth chip with AX210, we call it Gen3 Bluetooth for easier reference.
- Older batches (Gen2) are able to downgrade to Bluetooth 5.1
- The minimal Bluetooth version for Gen3 is Bluetooth 5.2
- Bluetooth 5.2 is supported on macOS Big Sur or earlier.
- Apple messed up Bluetooth 5.2 support since macOS Monterey.
- The bluetooth stack in Monterey and newer is ported from iOS and crashes with status 718 after sending LE Scan Stop to Bluetooth 5.2 firmware.
- The bug remains in Ventura
Original Post:
Description IntelFirmware failed to initialize due to "Intel version event size mismatch". This is probably due some changes in the AX201 under the new Alder Lake CPU.
Environment AX201 on MSI Pro Z690-A WIFI DDR4 m/b with Intel i7-12700K CPU running Monterey 12.0.1
- Kext Version: IntelBluetoothFirmware v2.0.1, BlueToolFixup v2.6.1
- WiFi Card Model: AX201 bundled with m/b
- Product ID: 0x8087:0x0026
- macOS Version: Monterey 12.0.1
Info in System Report - Bluetooth
Bluetooth Controller:
Address: NULL
State: Off
Chipset: BCM_4350C2
Discoverable: Off
Firmware Version: v0 c0
Product ID: 0x0001
Supported Devices: 0x382039 < HFP AVRCP A2DP HID Braille AACP GATT Serial >
Transport: USB
Vendor ID: 0x004C (Apple)
Logs
log show --last boot | grep IntelFir
< empty output >
dmesg Logs
[ 1315.747125]: IntelFirmware: Driver init()
[ 1315.747130]: IntelFirmware: Driver Probe()
[ 1315.747315]: IntelFirmware: name=IOUSBHostDevice, class=IOService, vendorID=0x8087, productID=0x0026
[ 1315.747355]: IntelFirmware: Driver Start()
[ 1315.747403]: IntelFirmware: virtual bool BtIntel::initWithDevice(IOService *, IOUSBHostDevice *)
[ 1315.747406]: IntelFirmware: virtual bool USBDeviceController::init(IOService *, IOUSBHostDevice *)
[ 1315.747414]: IntelFirmware: virtual bool USBDeviceController::initConfiguration()
[ 1315.747433]: IntelFirmware: set configuration to 1
[ 1315.747716]: IntelFirmware: virtual bool USBDeviceController::findInterface()
[ 1315.747719]: IntelFirmware: Found interface!!!
[ 1315.747727]: IntelFirmware: virtual bool USBDeviceController::findPipes()
[ 1315.747728]: IntelFirmware: Found Interrupt endpoint!
[ 1315.748233]: IntelFirmware: Found Bulk out endpoint!
[ 1315.748715]: IntelFirmware: Found Bulk in endpoint!
[ 1315.749227]: IntelFirmware: BT init succeed
[ 1315.750272]: IntelFirmware: Intel version event size mismatch (act: 6, ver: 10)
[ 1315.750274]: IntelFirmware: Intel Read version failed
[ 1315.750275]: IntelFirmware: resetToBootloader
[ 1315.900787]: IntelFirmware: Clean up...
Screenshots
Just compiled the IntelBluetoothFirmware from latest source date Dec 8, 2021 (aaf4247). Same problem as the official v2.0.1 release.
Please disable all these drivers, do a fully shutdown, then boot to Windows or Linux, then reboot to macOS, to check if it is the same.
I'm not sure if I understand completely. Are the following procedures correct?
- Boot into macOS, disable both IntelBluetoothFirmware.kext & BlueToolFixup.kext
- Shutdown the PC, remove power cord and wait for a while
- Boot to Windows or Linux.
- Shutdown and reboot to macOS.
- Check result.
Since both IntelBluetoothFirmware.kext & BlueToolFixup.kext are disabled, what's the purpose of checking the result after rebooting to macOS as these drivers aren't even loaded?
I've performed the above testing. The Bluetooth Info in system report is the same as previous. As for dmesg log, there is no entry for IntelFirmware as expected. If I misunderstood your testing procedures, please let me know and I'll re-run them.
same problem in my laptop
Same problem here: Motherboard Aorus Pro Wifi Z390
BCM_4350C2
Bluetooth Controller: Address: NULL State: Off. Chipset: BCM_4350C2 Discoverable: Off.
It works on macOS 11. Just macOS 12 does not work from our testing (master branch).
It works on macOS 11. Just macOS 12 does not work from our testing (master branch).
@vit9696 Sounds like an incompatibility issue with the new bluetoothd in Monterey with Bluetooth 5.2. (Firmware that allows the device to run in Bluetooth 5.2 is compatible with IOBluetoothFamily). Firmware for AX201 in this repo is downgraded to use Bluetooth 5.1 instead, make sure to fully shutdown the system if it has previously booted into another OS.
Not sure if newer batches that come with Z690 are using Bluetooth modules the same as AX210 (not able to downgrade to Bluetooth 5.1) though. Screenshot of Sysreport -> Bluetooth from Big Sur and logs from bluetoothd & IntelBluetoothFirmware in Monterey will help for identifying the issue.
The logs from @phantom-8 are quite odd and theoretically would not work for Big Sur as well.
Since both IntelBluetoothFirmware.kext & BlueToolFixup.kext are disabled, what's the purpose of checking the result after rebooting to macOS as these drivers aren't even loaded?
I think @zxystd might forget to mention that this process should be done in macOS Big Sur. The firmware uploaded by another OS will stay in the device if a warm reboot is performed.
@williambj1 it was the chip that cannot be downgraded to BT 5.1 indeed, the chips were AX210 or something.
cc @vandroiy2013, could you please provide some logs on our Z690 build, just in case they happen to be useful?
It started working for me after changing order of loading Kexts in Monterey.
All latest kexts for Lilu, Airport, Bluetooth, BlueToolFixup and Brcm
Now it displays as THIRD_PARTY_DONGLE in System raport and works great on 12.1 (Without airdrop - but this has never worked for me)
It started working for me after changing order of loading Kexts in Monterey.
All latest kexts for Lilu, Airport, Bluetooth, BlueToolFixup and Brcm
Now it displays as THIRD_PARTY_DONGLE in System raport and works great on 12.1 (Without airdrop - but this has never worked for me)
This thread is about z690, not some older SoC.
I got the same issue with MSI PRO B660M-A WIFI DDR4. I am using i7-12700F and Monterey 12.3. It also has AX201. The USB mapping is correct and the bluetooth internal USB device is detected. You can see the sample EFI in my repository for reference. The IntelFirmware log message repeats many time during boot before giving up and boot into desktop environment. The error message in dmesg is exactly the same. I have even tried to boot Big Sur installation media, and I keep seeing error messages about bluetooth in installer log. Since the situation is very similar, I am commenting here. Let me know if I should open a new issue about this.
@laggykiller can you please upload the log or dmesg here?
Since I got the same part of log mentioned in the top post, I am providing my full dmesg log, ioreg and opencore log
Logs created while booting into Monterey 12.3
dmesg.txt msi-pro-b660m-a-wifi-ddr4.ioreg.txt opencore-2022-05-04-145906.txt
I will try to install Catalina and Big Sur on a spare hard drive, then upload the results
Since I got the same part of log mentioned in the top post, I am providing my full dmesg log, ioreg and opencore log
Logs created while booting into Monterey 12.3
dmesg.txt msi-pro-b660m-a-wifi-ddr4.ioreg.txt opencore-2022-05-04-145906.txt
I will try to install Catalina and Big Sur on a spare hard drive, then upload the results
[ 70.853115]: IntelFirmware: Driver init()
[ 70.853126]: IntelFirmware: Driver Probe()
[ 70.853407]: IntelFirmware: name=IOUSBHostDevice, class=IOService, vendorID=0x8087, productID=0x0026
[ 70.853433]: IntelFirmware: Driver Start()
[ 70.853477]: IntelFirmware: virtual bool BtIntel::initWithDevice(IOService *, IOUSBHostDevice *)
[ 70.853481]: IntelFirmware: virtual bool USBDeviceController::init(IOService *, IOUSBHostDevice *)
[ 70.853492]: IntelFirmware: virtual bool USBDeviceController::initConfiguration()
[ 70.853497]: IntelFirmware: set configuration to 1
[ 70.854131]: IntelFirmware: virtual bool USBDeviceController::findInterface()
[ 70.854136]: IntelFirmware: Found interface!!!
[ 70.854149]: IntelFirmware: virtual bool USBDeviceController::findPipes()
[ 70.854152]: IntelFirmware: Found Interrupt endpoint!
[ 70.854539]: IntelFirmware: Found Bulk out endpoint!
[ 70.854931]: IntelFirmware: Found Bulk in endpoint!
[ 70.855317]: IntelFirmware: BT init succeed
[ 70.856395]: IntelFirmware: Intel version event size mismatch (act: 6, ver: 10)
[ 70.856399]: IntelFirmware: Intel Read version failed
[ 70.856401]: IntelFirmware: resetToBootloader
[ 70.939553]: Sandbox: CommCenter(435) deny(1) mach-lookup com.apple.lsd.mapdbSystem Policy: CommCenter(435) deny(1) file-read-data /private/var/folders/kj/8_7f3ddj5md8x7vrzwmyf93r0000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-3027-v2.csstoreSystem Policy: CommCenter(435) deny(1) file-read-metadata /private/var/folders/kj/8_7f3ddj5md8x7vrzwmyf93r0000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-3027-v2.csstore2 duplicate reports for System Policy: CommCenter(435) deny(1) file-read-metadata /private/var/folders/kj/8_7f3ddj5md8x7vrzwmyf93r0000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-3027-v2.csstoreSandbox: CommCenter(435) deny(1) mach-lookup com.apple.lsd.modifydb000070.997672 HS10@14a00000: AppleUSBHostPort::terminateDevice: destroying 0x8087/0026/0002 (IOUSBHostDevice): connect change interrupt
[ 71.006858]: IntelFirmware: Clean up...
[ 71.006862]: IntelFirmware: virtual void BtIntel::free()
[ 71.006866]: IntelFirmware: virtual void USBDeviceController::free()
[ 71.006890]: IntelFirmware: Driver Stop()
[ 71.007021]: IntelFirmware: Driver free()
CC @zxystd
For Catalina and Big Sur, I disabled BlueToolFixup.kext and added IntelBluetoothInjector.kext. Catalina opencore-2022-05-05-042506-catalina-nopatch.txt dmesg-catalina-nopatch.txt msi-pro-b660m-a-wifi-ddr4-catalina-nopatch.ioreg.txt
Big Sur opencore-2022-05-05-044901-bigsur-nopatch.txt dmesg-bigsur-nopatch.txt msi-pro-b660m-a-wifi-ddr4-bigsur-nopatch.ioreg.txt
I have also tried to add IntelBTPatcher.kext Catalina (With IntelBTPatcher.kext) opencore-2022-05-05-043035-catalina-patched.txt dmesg-catalina-patched.txt msi-pro-b660m-a-wifi-ddr4-catalina-patched.ioreg.txt
Big Sur (With IntelBTPatcher.kext) opencore-2022-05-05-043912-bigsur-patched.txt dmesg-bigsur-patched.txt msi-pro-b660m-a-wifi-ddr4-bigsur-patched.ioreg.txt
@laggykiller IntelBluetoothFirmware.kext.zip Please check this one.
@laggykiller IntelBluetoothFirmware.kext.zip Please check this one.
Tested on Monterey, bluetooth still not working, but the error message has changed, plus IntelFirmware does not loop many times during boot.
msi-pro-b660m-a-wifi-ddr4.ioreg.txt opencore-2022-05-05-203157.txt dmesg.txt
$ sudo dmesg | grep IntelFirmware
[ 2.122615]: IntelFirmware: Driver init()
[ 2.122619]: IntelFirmware: Driver Probe()
[ 2.122622]: IntelFirmware: name=IOUSBHostDevice, class=IOService, vendorID=0x8087, productID=0x0026
[ 2.122626]: IntelFirmware: Driver Start()
[ 2.122640]: IntelFirmware: virtual bool BtIntel::initWithDevice(IOService *, IOUSBHostDevice *)
[ 2.122641]: IntelFirmware: virtual bool USBDeviceController::init(IOService *, IOUSBHostDevice *)
[ 2.122646]: IntelFirmware: virtual bool USBDeviceController::initConfiguration()
[ 2.123205]: IntelFirmware: set configuration to 1
[ 2.123400]: IntelFirmware: virtual bool USBDeviceController::findInterface()
[ 2.123403]: IntelFirmware: Found interface!!!
[ 2.123410]: IntelFirmware: virtual bool USBDeviceController::findPipes()
[ 2.123411]: IntelFirmware: Found Interrupt endpoint!
[ 2.123554]: IntelFirmware: Found Bulk out endpoint!
[ 2.123746]: IntelFirmware: Found Bulk in endpoint!
[ 2.123892]: IntelFirmware: BT init succeed
[ 2.126247]: IntelFirmware: Intel boot parameters size mismatch
[ 2.126249]: IntelFirmware: Clean up...
[ 2.126250]: IntelFirmware: virtual void BtIntel::free()
[ 2.126251]: IntelFirmware: virtual void USBDeviceController::free()
[ 2.126263]: IntelFirmware: Driver Stop()
[ 2.126287]: IntelFirmware: Driver free()
@laggykiller Well, Intel mixed the gen2 and gen3 BT variants with the same USB id, need to refactor and write compat code. Please wait a moment, I am busy right now.
@laggykiller please test this one. IntelBluetoothFirmware.kext.zip
Boot freezes, but each time at different location
I have also tried using itlwm.kext instead of AirportItlwm.kext, but still freezes
@laggykiller IntelBluetoothFirmware.kext.zip Little modifications.
Getting closer, it successfully booted, and I can 'turn on' bluetooth. However, I cannot see and pair any devices, and it takes quite a long time to open the bluetooth setting page. It also seems like bluetooth does not want to be turned off (From GUI).
Here are the logs:
dmesg.txt bluetoothd.log opencore-2022-05-08-104343.txt ioreg.ioreg.txt
@laggykiller You are using Monterey right? This chip must be BT5.2 and is not currently supported by Monterey, what the firmware kext's work is to upload the firmware to the BT chip.
I suggest to test it on BigSur or Catalina.
Tested to work in Big Sur (Using IntelBluetoothFirmware.kext + IntelBluetoothInjector.kext)
Here are the logs for reference
dmesg-bigsur.txt ioreg-bigsur.ioreg.txt opencore-2022-05-09-023656-bigsur.txt bluetoothd-bigsur.txt
@laggykiller Ok, thank you! I will commit the changes tonight.
@zxystd Are there plans to support AX201,BT5.2 on Monterey?
So, if my understanding is correct, for the AX201 working on Monterey we just need apple to update the OS and making bt5.2 compatible, right?
So, if my understanding is correct, for the AX201 working on Monterey we just need apple to update the OS and making bt5.2 compatible, right?
But from what I know, AX200 (With bluetooth 5.2) works under Monterey?