Contribute
Register

Curious case of iServices not working with Intel AX200 on certain motherboards

When using Airportitlwm.kext, I always rename the kext so I know which kext should be used for each OS, i.e. Airportitlwm.kext for Monterey would be renamed Airportitlwm-Monterey.kext. Then when I use the OC Clean Snapshot feature in ProperTree I don't need to think about renaming or differentiating the kext in the config.plist.

This is a screenshot showing the contents of a sub-folder in my Hackintool_Kexts folder showing what I mean.

Screenshot 2023-12-15 at 18.09.33.png Intel WiFi & BT folder contents

I don't mix the 2.2.0 Release and 2.3.0 Alpha kexts. I use the kexts from one version on any given system, lately that has been the v2.3.0 Alpha release as I have been installing Sonoma.

This is only when I have more than one Airportitlwm.kext in the /EFI/OC/Kexts folder, it makes life easier when setting the correct Min/MaxKernel entry in the config.plist. So the wrong kext isn't used by the wrong OS by mistake.

I don't use OCAT, not because it is a bad app or anything it's just my personal preference to use ProperTree.

Then when an EFI doesn't work I'm not wondering did the app do something wrong, am I using the wrong or too old a version etc. I know I made the error and I have to find and fix it.

I have had to reschedule switching the Intel card to the B550M system, that won't happen now till tomorrow afternoon.
 
Am I alone in hoping Sherlock Holmes chimes in on this thread - "When first we discount the impossible, then anything left, however improbable, may turn out to be the cause of iMessage failing".

:D
 
When using Airportitlwm.kext, I always rename the kext so I know which kext should be used for each OS, i.e. Airportitlwm.kext for Monterey would be renamed Airportitlwm-Monterey.kext. Then when I use the OC Clean Snapshot feature in ProperTree I don't need to think about renaming or differentiating the kext in the config.plist.
Good approach, I'll have to do the same to avoid making the build un-bootable.
 
Am I alone in hoping Sherlock Holmes chimes in on this thread - "When first we discount the impossible, then anything left, however improbable, may turn out to be the cause of iMessage failing".

:D
Maaan, I feel that

I spent hours doing various tests and stuff before making the thread. Turning on/off various SSDTs, playing with random quirks offered by OpenCore. Madness lies that way, I tell ya...
Nothing worked even though it should just be working out of the box.
 
OK, I installed macOS Monterey on the Asus TUF Gaming B550M Plus WiFi II, Ryzen 7 5700G, PowerColor RX 5700 XT system.

Prior to installing macOS, I physically removed the MediaTek WiFi/BT card from the built-in M.2 connector and replaced it with an Intel AX200 NGW WiFi/BT card.

The macOS installation went well, no issues using my existing OC EFI that I used to run Ventura. I then proceeded to install my standard fare of apps, Hackintool, Python, ProperTree, MaciASL and IORegistryExplorer, Microsoft Office 365 for Mac.

A copy of the OpenCore EFI is attached below, with my MacPro7,1 SMBIOS data removed.
I didn't activate the iCloud account during the macOS installation, as I wanted to check everything was in order before signing in with my Apple ID.

Same with the WiFi network, I didn't connect the system via WiFi during the installation.

When I booted in to the desktop on Monterey the WiFi & BT weren't working as I had expected. So I went on a wild goose chase trying to figure out what was wrong. I triple checked each and every kext, setting and option that would cause these services not to work. Couldn't find anything wrong.

The reason for these two services not working wasn't found for some time. It came to me while I was updating Monterey from 12.6.9 to 12.7.2. I suddenly released, while watching the macOS update, that I hadn't enabled the WiFi or Bluetooth services in the Bios!

I had been using a PCIe adapter with my Broadcom WiFi/BT card I had purposely disabled both these built-in devices in the bios, as I never planned to use the MediaTek card. Felt like a complete idiot when I realised what I had done!

I entered the Bios, enabled the services and rebooted to macOS Monterey, to find just the WiFi service was working. I had already removed the previous USBMap.kext and enabled the XhciPortLimit patch, as I knew the built-in M.2 USB2 port wasn't active. Went searching around to find a solution and while looking at Corpnewt's USBMap script saw an option for generating a new SSDT for USB reset (SSDT-RHUB-Reset). Selected the option and looked at the SSDT. Found it was a bit different to the one I was currently using, so saved and renamed the new SSDT-RHUB-Reset.dsl to SSDT-USB-Reset.aml so I could replace the one that was currently in my /EFI/OC/ACPI folder without having to change the config.plist.

Rebooted the system, used the ResetNvramEntry from the OC boot screen, and when I booted in to macOS the Bluetooth module was working!

So with both wireless network devices and my Ethernet working I signed in to my iCloud account, all went well.

Opened Messages:
  • I had automatically been signed in to Messages as part of the iCloud setup.
  • I selected Messages > Preferences from the drop down menu, then went to the Message tab.
  • While on this tab I ticked 'Enable Messages in iCloud' before selecting the 'Sync Now' button.
  • Messages from my iPhone and other Hacks & Macs were populated in the main Messages window.
So other than realising that the SSDT-USB-Reset.aml table I had generated using Corpnewt's SSDTTime script was not correct for this system, I am not sure I have found any reason for your AX200 WiFi/BT card not working correctly and enabling the iServices in macOS Monterey.

You could try removing the SSDT-USB-Reset.aml table from your system, if you have generated one. See if that helps.

You could also try generating a new SSDT using Corpnewt's USBMap script to see if you see any difference between the two SSDTs.

Sorry I can't offer a better solution for this issue.
 

Attachments

  • EFI-B550M.zip
    32.5 MB · Views: 11
So other than realising that the SSDT-USB-Reset.aml table I had generated using Corpnewt's SSDTTime script was not correct for this system, I am not sure I have found any reason for your AX200 WiFi/BT card not working correctly and enabling the iServices in macOS Monterey.
Many thanks for extensive attempts. I agree is completely strange it does not work here, there is no sensible reason what it could be.

I am now more than positive that iServices login succeeds but that something else in Apple's code fails when it comes to syncing the state of the services - active conversations, alternative phone/emails etc. The login itself certainly goes through, I even got notification on my various iOS devices that a new Mac has access to my Messages and FaceTime.
You could try removing the SSDT-USB-Reset.aml table from your system, if you have generated one. See if that helps.
You could also try generating a new SSDT using Corpnewt's USBMap script to see if you see any difference between the two SSDTs.
I have a fully mapped-out USB setup using USBToolbox. But I also tried this - disabling the kext and using SSDT-USB-reset from SSDTTime – no difference.

I spent some time over the weekend looking through the full boot logs and there's a clear moment when things go sideways for all iServices. But no luck figuring out what is the culprit.
 
Last edited:
In the mean time, I poked around this build without getting anywhere near the desired outcome.
I am pretty sure that Intel AX200 WiFi card is irrelevant. I disabled it in BIOS and use only Ethernet — completely the same result: iCloud works perfect, iMessage / FaceTime nope.

So it's something else in the BIOS / motherboard. I proceeded to turn various settings OFF in the BIOS, none yielding any particular success

- Security Device: Disabled
- Disabled ports related to all 3 USB headers on the motherboard

I am pretty confident that this here from the logs is very relevant:

Code:
imagent: (IDSFoundation) [com.apple.Registration:KeychainManager] Purged keychain reader
identityservicesd: [com.apple.Registration:KeychainManager] Forcing save of registration objects from keychain dictionary, 10 entries  1 auth certs
identityservicesd: [com.apple.Registration:KeychainManager] ** Saving registration data to keychain: Begin **
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.photostream  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.bulletinboard  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.multiplex1  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.itunes  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.maps  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: Calling  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: iMessage  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: Multiway  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.arcade  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: FaceTime  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Not saving, got a nil dictionary representation
identityservicesd: [com.apple.Registration:KeychainManager] Final keychain data array count: 0
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding 1 auth certs for users <private>
identityservicesd: [com.apple.Registration:KeychainManager]   => We don't have any SMS signatures to save
identityservicesd: [com.apple.Registration:KeychainManager]   => We don't have any temp phone credentials to save
identityservicesd: [com.apple.Registration:KeychainManager] Flushing registration objects from keychain dictionary, 10 entries  1 auth certs
identityservicesd: [com.apple.Registration:KeychainManager] Saving 2204 bytes under service: com.apple.facetime   account: <private>   accessGroup: (null)   saveIdentifier: 710344107
identityservicesd: [com.apple.Registration:KeychainManager] ** Saving registration data to keychain: Done **
callservicesd: (IDSFoundation) [com.apple.Registration:KeychainManager] Purged keychain reader
transparencyd: (IDSFoundation) [com.apple.Registration:KeychainManager] Purged keychain reader
imagent: (IDSFoundation) [com.apple.Registration:KeychainManager] Purged keychain reader

But still no luck figuring out what exactly is the cause of this. Fun.
 
Not sure the log above tells you anything really usefull/helpful. Other than the Identity Services Directory in your setup is borked.

At the bottom of the log it says the credentials for FaceTime were saved to the Keychain directory. While the information above says that iMessage and a Nine (9) other elements weren't saved, as they provided a 'Nil' directory representation.

I would recommend you get hold of a spare SSD or NVMe drive, temporarily remove any other drives installed in the system. Run a clean installation of macOS on the spare drive, follow my example above where I didn't sign into iCloud until I reached the macOS Desktop, and then see what if anything changes.

Whatever you do with the clean installation, do not migrate your current setup to the spare drive. As all this will do is import the current issues to the spare/clean installation of macOS.

With regards your BIOS settings, I would recommend using the Optimised Defaults option on the Exit tab, to reset anything you have previously changed. Then only apply the Bios settings required for macOS on an AMD system, settings linked below. Do not mess with the USB port settings, as all that will do is cause more unnecessary issues.

 
I would recommend you get hold of a spare SSD or NVMe drive, temporarily remove any other drives installed in the system. Run a clean installation of macOS on the spare drive, follow my example above where I didn't sign into iCloud until I reached the macOS Desktop, and then see what if anything changes.

Whatever you do with the clean installation, do not migrate your current setup to the spare drive. As all this will do is import the current issues to the spare/clean installation of macOS.
I already did that, twice; when initially making this build and then going nuclear again (post #10 in this thread).
I'm well versed in the drill and know the required steps but this one just don't want to give in.

Continuing to poke and peek. :)
 
I connected my iPhone today to this build, did the entire trust device dance and wanted to see if some continuity camera features work.

- using iPhone as microphone works
- using iPhone as video camera does not. It appears in QuickTime Player as camera but fails to start the recording
- "take a photo using iPhone" in macOS's Notes app works as expected

I then figured, what the heck — maybe this did something for iServices, since this iPhone uses the same Apple ID.

I ran FaceTime app and instead of login screen, it showed me "choose country to..." drop down. My country (Serbia) is not present on this list for whatever lousy Apple reason so I chose Croatia and then it let me login with my iCloud account. Calling appears to be working, it's ringing but call never goes through and does not ring on the other side. I specifically tried to call family mambers to either their phone number of Apple ID email — same outcome. FaceTime video does not start the camera - my iPhone screen shows "Connected to Mac Pro" but neither FaceTime app on Mac nor iPhone itself show the camera running.

I then tried Messages which also logged-in (!) and I got alert on my other devices that a new Mac Pro has access to iMessage. Which looked promising but fails to send a message to anyone thus some similar issue as with FaceTime calling.

So — some progress but not there yet. I wish I knew what exactly is the source of the progress (apart from connecting an iPhone to the Mac).

Oh, and this log is now quite different:

Code:
identityservicesd: [com.apple.Registration:KeychainManager] Forcing save of registration objects from keychain dictionary, 10 entries  1 auth certs
identityservicesd: [com.apple.Registration:KeychainManager] ** Saving registration data to keychain: Begin **
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: com.apple.private.alloy.multiplex1  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: iMessage  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: <private>  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: <private>  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 28 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: <private>  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: <private>  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: Calling  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 28 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: Multiway  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 28 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: <private>  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 27 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding registration for service: FaceTime  ID: <private>  to keychain dictionary
identityservicesd: [com.apple.Registration:KeychainManager]      => Registration <private>
identityservicesd: [com.apple.Registration:KeychainManager]     => Dictionary has 28 key-value pairs
identityservicesd: [com.apple.Registration:KeychainManager] Final keychain data array count: 10
identityservicesd: [com.apple.Registration:KeychainManager]   => Adding 1 auth certs for users <private>
identityservicesd: [com.apple.Registration:KeychainManager]   => We don't have any SMS signatures to save
identityservicesd: [com.apple.Registration:KeychainManager]   => We don't have any temp phone credentials to save
identityservicesd: [com.apple.Registration:KeychainManager] Flushing registration objects from keychain dictionary, 10 entries  1 auth certs
identityservicesd: [com.apple.Registration:KeychainManager] Saving 87658 bytes under service: com.apple.facetime   account: <private>   accessGroup: (null)   saveIdentifier: 1173198087
identityservicesd: [com.apple.Registration:KeychainManager] ** Saving registration data to keychain: Done **
callservicesd: (IDSFoundation) [com.apple.Registration:KeychainManager] Purged keychain reader
 
Back
Top