Jump to content

Sleep instant wake when using Intel AX210 Bluetooth


miliuco
 Share

23 posts in this topic

Recommended Posts

Good afternoon.

Some of us have tested Intel Wi-Fi + Bluetooth combo devices and we have seen that it is a valid solution for macOS Sonoma with the added advantage that it is not necessary to apply patches to the system or lower the security level. Specifically, I have AX210 in 2 hacks.


Both parts work well, Wi-Fi and BT, good connectivity and ease of installation. Problems that appeared in the latest betas of macOS Sonoma are being fixed by the developers.


But when using BT from the Intel card I have an important problem with sleep. The system seems to go into sleep, lights and fans turn off but, after a few seconds, they come back on.
BT is active after waking up the system and always when booting, that is not the problem but sleep.
I have tested even the latest beta versions of IntelBluetoothFirmware.kext (2.4.0), IntelBTPatcher.kext (2.4.0) and itlwm.kext (2.3.0).
I have tried adding and removing the parameters related to BT in NVRAM.
I've tried with and without NVMeFix.kext, at some point I got the impression that it might be related.


Anyway, if I enable BT on the Intel card I lose sleep. For me it is not very important because I usually work with Intel Wi-Fi and Fenvi BT (Broadcom) but it is something that I have not been able to fix.


Have those of you who use BT of Intel cards observed this problem?

Edited by miliuco
  • Like 3
  • Sad 1
Link to comment
Share on other sites

Sorry to hear about your sleep problem with AX210.

Unfortunately I removed the AX210 Card after testing and replaced the T-919 with patched Sonoma.

Tomorrow (InShaAllah) I will put AX210 Card and Sonoma Test Disk back and test sleep for you.

  • Like 2
Link to comment
Share on other sites

@miliuco Good day Bro, as promised here you are.

I replaced the Test Disk with 14.4 Beta2 and the AX210 Card and as you found Sleep is not operational with this Card.

Tried auto Sleep, no good also tried induced Sleep, Monitor goes off but LED lights and fans still going.

 

I would say your initial find about Sleep and this Card is well founded.

If I can be anymore help, please let me know. Cheers.

Now if you don't mind, back to 14.3.1, OCLP and T-919. :)

Spoiler

Screenshot2024-02-10at10_58_10.thumb.png.10d4870f8b4476e631b86d83dc5e1c13.pngScreenshot2024-02-10at11_10_01.png.fc84bb7b65e525493357fe5d8197e5d9.png

 

  • Like 2
Link to comment
Share on other sites

Hi @miliuco im notice that my Lenovo E470 doing well to sleep with only intel AX210 Card, with Bluetooth intel and WiFi6. Im think is a SSDT-XXX   HotPatch that need for laptops, and depending of model, maybe check S3 sleep IDLE if was turn on or off. 

 

Maybe guys can try debug this issue. 

 

log show --last 1d | grep "Wake reason" 

 

Ru in terminal and see log 

 

Look this guide from GITHUB 

 

https://github.com/jsassu20/OpenCore-HotPatching-Guide/tree/master/00-Overview 

 

Or use this SSDT to try fix 

 

 

SSDT-8-S3.dsl.zip

Edited by Max.1974
  • Like 2
Link to comment
Share on other sites

Current status of the topic.

@Extreme™ who is looking for a fix and all who have helped with their posts and tests (thanks).


1. SSDT-S3

I have tried SSDT-8-S3 uploaded by @Max.1974, this SSDT enables sleep (wake from keyboard, mouse or power button) but... disables Bluetooth.

DefinitionBlock ("", "SSDT", 1, "APPLE ", "SSDTS3", 0x00001000)
{
    Name (_S3, Package (0x03)  // _S3_: S3 System State
    {
        0x05, 
        0x05, 
        Zero
    })
}


2. SSDT-GPRW

I have tested SSDT-GPRW which is used in cases where the system wakes up from sleep immediately after entering it. This SSDT enables sleep which works fine again but it only wakes up from power button, it doesn't wake up from keyboard or mouse. Bluetooth works fine, even when waking up from sleep.

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPRW", 0x00000000)
{
    External (XPRW, MethodObj)    // 2 Arguments

    Method (GPRW, 2, NotSerialized)
    {
        If (_OSI ("Darwin"))
        {
            If ((0x6D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x6D, 
                    Zero
                })
            }

            If ((0x0D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x0D, 
                    Zero
                })
            }
        }

        Return (XPRW (Arg0, Arg1))
    }
}

SSDT-GPRW only works if it is linked to ACPI >> Patch >> Rename GPRW to XPRW, both things are necessary.

	<key>ACPI</key>
	<dict>
		<key>Patch</key>
		<array>
			<dict>
				<key>Base</key>
				<string></string>
				<key>BaseSkip</key>
				<integer>0</integer>
				<key>Comment</key>
				<string>Change GPRW to XPRW, needs SSDT-GPRW.aml</string>
				<key>Count</key>
				<integer>0</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>R1BSVwI=</data>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data></data>
				<key>OemTableId</key>
				<data></data>
				<key>Replace</key>
				<data>WFBSVwI=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
				<key>TableLength</key>
				<integer>0</integer>
				<key>TableSignature</key>
				<data></data>
			</dict>
		</array>
	</dict>


3. USB wake properties

I have added properties to USB DeviceProperties that typically allow wake from keyboard or mouse but, while SSDT-GPRW is loaded, these properties do not seem to work.

			<key>PciRoot(0x0)/Pci(0x14,0x0)</key>
			<dict>
				<key>acpi-wake-gpe</key>
				<data>bQ==</data>
				<key>acpi-wake-type</key>
				<data>AQ==</data>
			</dict>

Summary: I can have Intel BT working without proper sleep or Intel BT + sleep working but waking only from power button.

 

I don't know if there is a way to have both features, I see that SSDT-GPRW by design disables wake from USB devices and I don't know how to recover this feature while keeping proper sleep.

 

Disabling Intel Bluetooth, everything returns to normal.

 

Note: @chris1111 has sleep working while using Intel Bluetooth. Systems have different behaviors. Or it may be that the laptop does not go into sleep S3 since there is a blinking light.

 

EDIT: also tried a DSDT made by @MaLd0n for my system time ago, no success, instant wake after sleep but Intel Bluetooth works fine.

 

 

Edited by miliuco
  • Like 2
Link to comment
Share on other sites

HI @miliuco my Master, so glad to help you. 

 

If you want check more SSDT patches of mine, this S3 that you refer im extract from my MacBook Air 2020 intel i7 

 

Im sure that you fix that soon 

 

 

Im not use GPRW or UPRW on Laptop, because mine is _PRW. 

 

Im find another way. 

 

You can try use this too 

 

 

 

SSDT-PCI0.LPCB-Wake-AOAC.zip

Edited by Max.1974
  • Like 2
Link to comment
Share on other sites

3 hours ago, miliuco said:

Current status of the topic.

@Extreme™ who is looking for a fix and all who have helped with their posts and tests (thanks).


1. SSDT-S3

I have tried SSDT-8-S3 uploaded by @Max.1974, this SSDT enables sleep (wake from keyboard, mouse or power button) but... disables Bluetooth.

DefinitionBlock ("", "SSDT", 1, "APPLE ", "SSDTS3", 0x00001000)
{
    Name (_S3, Package (0x03)  // _S3_: S3 System State
    {
        0x05, 
        0x05, 
        Zero
    })
}


2. SSDT-GPRW

I have tested SSDT-GPRW which is used in cases where the system wakes up from sleep immediately after entering it. This SSDT enables sleep which works fine again but it only wakes up from power button, it doesn't wake up from keyboard or mouse. Bluetooth works fine, even when waking up from sleep.

DefinitionBlock ("", "SSDT", 2, "DRTNIA", "GPRW", 0x00000000)
{
    External (XPRW, MethodObj)    // 2 Arguments

    Method (GPRW, 2, NotSerialized)
    {
        If (_OSI ("Darwin"))
        {
            If ((0x6D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x6D, 
                    Zero
                })
            }

            If ((0x0D == Arg0))
            {
                Return (Package (0x02)
                {
                    0x0D, 
                    Zero
                })
            }
        }

        Return (XPRW (Arg0, Arg1))
    }
}

SSDT-GPRW only works if it is linked to ACPI >> Patch >> Rename GPRW to XPRW, both things are necessary.

	<key>ACPI</key>
	<dict>
		<key>Patch</key>
		<array>
			<dict>
				<key>Base</key>
				<string></string>
				<key>BaseSkip</key>
				<integer>0</integer>
				<key>Comment</key>
				<string>Change GPRW to XPRW, needs SSDT-GPRW.aml</string>
				<key>Count</key>
				<integer>0</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>R1BSVwI=</data>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data></data>
				<key>OemTableId</key>
				<data></data>
				<key>Replace</key>
				<data>WFBSVwI=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
				<key>TableLength</key>
				<integer>0</integer>
				<key>TableSignature</key>
				<data></data>
			</dict>
		</array>
	</dict>


3. USB wake properties

I have added properties to USB DeviceProperties that typically allow wake from keyboard or mouse but, while SSDT-GPRW is loaded, these properties do not seem to work.

			<key>PciRoot(0x0)/Pci(0x14,0x0)</key>
			<dict>
				<key>acpi-wake-gpe</key>
				<data>bQ==</data>
				<key>acpi-wake-type</key>
				<data>AQ==</data>
			</dict>

Summary: I can have Intel BT working without proper sleep or Intel BT + sleep working but waking only from power button.

 

I don't know if there is a way to have both features, I see that SSDT-GPRW by design disables wake from USB devices and I don't know how to recover this feature while keeping proper sleep.

 

Disabling Intel Bluetooth, everything returns to normal.

 

Note: @chris1111 has sleep working while using Intel Bluetooth. Systems have different behaviors. Or it may be that the laptop does not go into sleep S3 since there is a blinking light.

 


Thank you very much @miliuco for your tests. SSDT-GPRW is right for me and I will test it immediately: in fact I always use the power button to wake up from sleep.
Thanks also to @Max.1974for his contribution.

  • Like 2
Link to comment
Share on other sites

 Share

×
×
  • Create New...