Jump to content
10 posts in this topic

Recommended Posts

Looking for a few more set of eyes here. Any troubleshooting suggestions are appreciated.

 

Problem: Sleep does not work. Screens turns off, fans continue to run.

 

Applied ACPI changes:

1. DSDT modifications:

- Inclusion of a Darwin _OSI (aka "XOSI" patch method) entry

- Cosmetic rename of GLAN to GIGE

- Fixes for AML/DSL errors (duplicate "Case" entries)

2. Created SSDT files for the following Devices:

- UIAC (correcting map of active USB ports, including tagging Bluetooth as Internal)

- USBX (for USB Power settings)

- Fake EC

- MCHC and SBUS.BUS0 (for SMBIOS)

- PMCR (for Power Management - HID APP9876)

3. Created SSDT files for the following Methods:

- DTGP

- CPU APSS/ACST (plugin-type, frequency data, P-states, C-states)

 

Loaded kexts (3rd party):

- Lilu

- WEG

- USBInject

- HibernationFixup

- CPUFriend

- VirtualSMC

- IntelMausi

 

Findings:

- ACPI offers a H_EC device with PNP0C09 HID, but no other PNP0C09 HID such as EC/EC0/EC_DV (expected; desktop system)

- AppleACPICPU kext is loaded and bound to the CPU0; AppleACPIEventController, AppleAPICInterruptController and AppleACPIPCI kext's are loaded

- Native AMD graphics (AMD 5700 XT)

- IORegistryExplorer: The EC IOService is shown under AppleACPIPlatformExpert but the AppleACPIEC kext is not loaded

- Hackintool: All PCI/PCI-E devices show ASPM as disabled

- BIOS: All available Power Management settings are enabled; no overclock settings are applied (some BIOS disables PM features during overclock scenarios)

- Windows: Hibernate powers off the entire system during sleep as expected

 

Notes:

- I have reviewed multiple guides (Dortania, Olarila), used tools such as SSDTTime and ssdtPRGen, used guide provided SSDTs and did manual changes

- Mald0n has created a DSDT for me to no avail; reverted to original system DSDT

- Hardware details found on my signature (as iHackPro1,1)

- All kext's were built from sources, up to date from current code

Edited by Alex HQuest

you have to remove USBinjectall
deleterious kext that's okay to use only for first installation
Do you have hard drives, wi-fi or BT USB connected?
if you remove them and try the sleep without them

then ideal would be to map the USB using your own ACPI, but here you enter into another speech not very addressed on insanely and in the past maybe even a little opposed

Thanks @iCanaro for the suggestions.

 

The USB ports are correctly mapped to their matched connector types. Bluetooth is mapped as an internal port, as per all the guides recommendations. Without the USB Inject kext, I cannot map the USB connector types and/or disable unused USB ports - alone, the USBX/UIAC SSDT files do me no good.

 

I've disconnected everything USB (external hub/headset/keyboard/gaming mouse/keypad/webcam/USB to serial port adapter) and used a basic USB mouse to put the computer to sleep, to no avail.

 

I have no USB thumb drives, hard drives or the likes connected via USB. On my laptop (that has a valid ECDV device and proper EC ACPI configuration), even with a USB thumb drive attached, it sleeps like a real Apple hardware and behaves as a real Apple hardware, including complaining "a USB device wasn't disconnected correctly" - just like the real Apple hardware does.

 

All that said, the behavior of misconfigured USB is different. With USB devices waking up the system, that's exactly what happens: it goes to sleep then gets awoken immediately. Mine is not even entering sleep.

due to translators, maybe we find it hard to understand each other ...
but if the mapping has been done, USBinjectall is useless, and as I said before, it's a kext that causes problems. You don't even need USBX SSDT and UIAC
Give it a try and use USBPorts.kext only for USB

Since, I've ran out of ideas, I'm following advices and trying similar scenarios. I have removed the unsupported USB-Inject-All kext and gave new attempts with both headkaze's Hackintool and corpnewt's USBMap tools. Removed the EC, USBX and UIAC SSDT files, plus the USB kexts, added the files created from these two tools (UIAC SSDT is, again, un-necessary and does not work for me, so 

I'm sticking with the generated kext). Sleep still does not work, same symptoms as before.

 

So I did one last back to the basics run, with no USBX/UIAC/kexts whatsoever, only the EC file (from USBMap), still no go.

 

This is again telling me, since the system does not even enter sleep mode, USB is not the problem. Appreciated, again, for the ideas.

Seems like a bit of persistency pays off.

 

I've added a few items into my DSDT that somehow doesn't like to be on SSDT files. Namely, the MCHC device under the _SB.PCI0 scope. I also added _PRW (Power Resources for Wake) entries for my discrete/external GPU card under devices PEG0/PEG1/PEG2. Hit the sleep button, my computer is silent like a sleeping baby!

 

With that said, my take is that while SSDT files can solve problems, not all of them can be solved by one, and DSDT updates will still be required. Overall, happy I've learned something new!

Hey @pico joe, sorry for the delay. Yeah, adding this device was what gave me some better results, although it was still unreliable. While doing more research I found there are much more CPU related changes to be added in order to properly configure this processor for sleep. I ended up ditching the iMacPro SMBIOS in favor of a regular iMac, which natively uses Intel Core CPU types instead of the Xeon types as found on the iMacPro, and that solved all the unexplained issues I was facing.

 

Unfortunately, with this move I lost the DRM support for my discrete (5700 XT) card, meaning Netflix, Amazon Videos and Apple TV+ videos are not playing anymore (Lilu user land patching is broken ATM), but I realized I almost never play any of those videos on my computer anyway - I either see them on my Apple TV or other devices on a TV. So the trade off was worth it (for now).

Edited by Alex HQuest
  • 3 weeks later...

The connection that tells the laptop to go on standby has most likely broke somewhere, if it matters to you a lot id recommend taking it to a local repair store but don't take it to a place like geek squad are they are know to scam their customers out of more money then necessary.

×
×
  • Create New...