AX201 on Z690 Alder Lake not supported
phantom-8 opened this issue · 65 comments
TL; DR
July 20, 2022 update:
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)
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
@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.
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?
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?
I don't know, honestly. But does the AX201 work on other chipsets such as Z490 or z590? Or even older ones? Os the issue related to the wlan module or only to the z690 chipset?
Also, does tlit work on z690 chipsets but with older macOS versions like BigSur?
Has the macOS Ventura beta bluetooth stack been looked at yet?
Latest M2 MacBook specs for Wireless/BT:
Wi-Fi
802.11ax Wi-Fi 6 wireless networking
IEEE 802.11a/b/g/n/ac compatible
Bluetooth
Bluetooth 5.0 wireless technology
Latest M2 MacBook specs for Wireless/BT: Wi-Fi
802.11ax Wi-Fi 6 wireless networking IEEE 802.11a/b/g/n/ac compatible Bluetooth
Bluetooth 5.0 wireless technology
in China main hackintosh forum pcbeta.com i just do not get any info about ax201 with bt5.2s compatibility with macOS Ventura, hope to get some results from global sites. that
s quite bad news, b cause just bought a asus TUF b660m -wifi d4 motherboard & intel i5-12600KF to update my pc, looks cant`t use for quite a while.
BT5.2 is also not supported yet on Ventura like on Monterey, it seems that the bluetooth stack are the same.
BT5.2 is also not supported yet on Ventura like on Monterey, it seems that the bluetooth stack are the same.
Thanks for the update and the hard work.
May I ask if BT5.2 support has to come from Apple or if it's something you're planning to work on yourself? I'm also facing the same situation with a B660-i ASUS ITX Wifi Motherboard
So.. According to your update, this won't be fixed in a near future, till Apple supports 5.2 again? Can we replace the adapter with an older version of AX201, or use a USB external bluetooth adapter?
So.. According to your update, this won't be fixed in a near future, till Apple supports 5.2 again? Can we replace the adapter with an older version of AX201, or use a USB external bluetooth adapter?
Will ee1a800 solve this problem?
So.. According to your update, this won't be fixed in a near future, till Apple supports 5.2 again? Can we replace the adapter with an older version of AX201, or use a USB external bluetooth adapter?
All correct, alternatively you can consider using Big Sur.
Will ee1a800 solve this problem?
Unfortunately it doesn't. The project is only a firmware uploader written as a kernel extension. The issue is caused by Apple's bluetoothd which runs in user-space.
So.. According to your update, this won't be fixed in a near future, till Apple supports 5.2 again? Can we replace the adapter with an older version of AX201, or use a USB external bluetooth adapter?
I have an external Bluetooth adapter (not Intel based) and it only works with Sound output. It crashes as soon as I try sound input with my Sony headset. It used to do the same thing with the v1 of this Intel kext.
@laggykiller @marlonmsilva @tanyangxf So now we are supposed to use BT5.2 and BT5.3 on Monterey/Ventura after patching the stack, you can now add this kext to your EFI and see if the BT is working. Also please update the Lilu.kext
to the latest 1.6.2-beta one and the latest beta IntelBluetoothFirmware.kext
. Waiting for yours testing result.
IntelBTPatcher.kext.zip
@zxystd thanks for making the new version. I am trying to use the IntelBTPatcher.kext, but I need to get latest beta IntelBluetoothFirmware.kext. I tried to compile it following instruction, but when running xcodebuild -alltargets -derivedDataPath build
it shows xcodebuild: error: The flag -scheme, -testProductsPath, or -xctestrun is required when specifying -derivedDataPath.
Edit: Seems like I should run xcodebuild -alltargets
instead
@zxystd The kext works under Monterey! I used the IntelBTPatcher.kext
you provided here, IntelBluetoothFirmware.kext
compiled from latest master, and Lilu.kext
version 1.6.1
@laggykiller OK, thank you.
@laggykiller OK, thank you.
May i ask??
So with new version of kext we only need IntelBtPatcher.kext + IntelBluetoothFirmware.kext??? No need for BluetoolFixup.kext???
And how about Big sur below?? Still we need IntelBluetoothInjector.kext? or just replace it with IntelBTPatcher.kext??
I ask because no documentation yet for this new kext
@laggykiller OK, thank you.
May i ask??
So with new version of kext we only need IntelBtPatcher.kext + IntelBluetoothFirmware.kext??? No need for BluetoolFixup.kext???
And how about Big sur below?? Still we need IntelBluetoothInjector.kext? or just replace it with IntelBTPatcher.kext??
I ask because no documentation yet for this new kext
In addition to inject the IntelBTPatcher.kext, extra usage are the same as before.
It doesn't work in Asus ROG Maximus Z690 Hero with Intel Intel Wifi 6E AX210 (I have set BluetoolFixup.kext + IntelBTPatcher.kext + IntelBluetoothFirmware.kext, all is latest commit version. I built it with XCode)
@andreszerocross Hi, can you confirm IntelBTPatcher is loaded using kextstat? If possible, please install debugenhancer.kext and upload logs from sudo dmesg | grep 'BTPatcher'
.
@zxystd
Thanks for your hard work! Perfectly on MSI-PRO-Z690-A-WIFI-D4-12700K-Monterey 12.5.
I wonder which time would you release the next version of both IntelBluetoothFirmware and the IntelBTPatcher?
We could only build from source or fetch from this page now.
Thanks again, just niubi to you.
IntelBtPatcher + latest lilu from sources + latest IntelBluetoothFirmware from sources works perfectly on B660-i ASUS ITX Wifi Motherboard on Monterrey 12.4
Thanks a lot ! So happy to have native bluetooth!! :)
Attaching my kexts in case it allows more people to test
You didn't use BluetoolFixup.kext???
It looks still problem in AX210 (and good for AX201)
@andreszerocross Hi, can you attach logs from IntelBTPatcher and bluetoothd?
Logs from IntelBTPatcher requires DebugEnhancer to be installed first, then run sudo dmesg | grep BTPatcher > ~/Desktop/BTPatcher.log
Logs from bluetoothd can be obtained by running log show --last boot | grep bluetoothd > ~/Desktop/bluetoothd.log
EDIT: please provide a IOReg file as well, thank you.
@zxystd
IntelBtPatcher + latest lilu from sources + latest IntelBluetoothFirmware from sources works perfectly on B660-i ASUS ITX Wifi Motherboard on Monterrey 12.4
Thanks a lot ! So happy to have native bluetooth!! :)
Attaching my kexts in case it allows more people to test
Kexts.zipYou didn't use BluetoolFixup.kext???
Yes I did it's included in the zip
@williambj1 WOW, this is some accomplishment!!!
Installed the kexts from the zip provided and Bluetooth is almost 100% working on my z690-AERO-G-DDR4.
I tested it with a Logitech T651 trackpad.
Handoff works as well.
What doesn't work is Airdrop. It will find my iPhone but file transfers don't work atm. My iPhone also doesn't see my computer in Airdrop.
Logs and IOREG attached.
Archive.zip
IntelBtPatcher + latest lilu from sources + latest IntelBluetoothFirmware from sources works perfectly on B660-i ASUS ITX Wifi Motherboard on Monterrey 12.4
Thanks a lot ! So happy to have native bluetooth!! :)
Attaching my kexts in case it allows more people to test
@jamesst20 Thanks for your share.
I successfully drive my bluetooth.
@zxystd 感谢作者的无私付出
ASUS TUF GAMING Z690-PLUS DDR5 WIFI
Intel Wi-Fi 6E AX211 160MHz
睡眠唤醒后有一定几率无法连接,需要重开关蓝牙才可以,比如刚刚睡眠一晚上。无法连接时 launchd,bluetoohd 会占用很高 CPU
I did used same Kexts from above comment, but My BT is not fully working. It doesn't show scan results for my Realme Bud Q and Mivi Roam 2 Headset. But shows my Samsung F62 smart phone and I can connect to the phone and transfer files. Only issues with the headphones or speakres. All 3 devices are on Bluetooth 5.0.
Mobo: GIgabyte Z690 UD AX with Wi-Fi 6E AX211 and Bluetooth 5.2
Hi there,
Very useful topic indeed, I have successfully built a Z690M-ITX/ax / i5-12600 yesterday and thanks to the kexts shared by @zxystd, Bluetooth is woking natively: great!
However, I cannot manage to have WiFi working (it works well in Windows): the interface does not exist in the Network preference pane.
Can anyone confirm that WiFi is supposed to work out of the box on Monterery? Or is there some specific steps to make it work?
Thanks a lot in advance!
[EDIT] My bad, I did not catch that I had to install itlwm.kext also. Now it works well. A huge thanks to all contributors to this great work!
Supported since v2.2.0
@williambj1 WOW, this is some accomplishment!!!
Installed the kexts from the zip provided and Bluetooth is almost 100% working on my z690-AERO-G-DDR4.
I tested it with a Logitech T651 trackpad. Handoff works as well. What doesn't work is Airdrop. It will find my iPhone but file transfers don't work atm. My iPhone also doesn't see my computer in Airdrop.
Logs and IOREG attached. Archive.zip
Would you be willing to share you Opencore settings and which kexts are loaded? I'm trying to follow CaseySJ's instructions from TonyMac but nothings working for me. I've got the same motherboard with a clean working EFI version 0.8.3 and no matter which kexts I load, nothing works. Any help?