Contribute
Register

USB Wake Issue

Status
Not open for further replies.
Joined
Jul 19, 2020
Messages
80
Motherboard
Asus Strix B550-A
CPU
Rysen 5 5600X
Graphics
Quadro K4200
Mobile Phone
  1. iOS
I have great build (Asus H310T with iGPU), connected to HP E240C screen with Webcam. Broadcom 93460 WiFi and BT work at m.2 slot. USB ports are mapped with USBInjectAll and SSDT-UIAC.aml (to get BT working). Issue is instant wake after sleep and gulprit is the monitor/hub/webcam. If I unplug USB cord from monitor, sleep works (I have tried different USB and USB3 ports, same. Also if I deny monitor sleep from monitor menu, Hackintosh sleep works - but obviously monitor and its internal USB hub stays powered on). What gives ?

I tried also setting upstrean USB port to 255, but no results. I tried even setting all ports 255, same... Port limit XHCI is disabled in config.plist

Funny is that when I use Hackintool to create USBPorts.kext, sleep works, but BT not (intenal BCM27020 hub not visible) due me excluding USBInjectAll. If I use both, USBInjetAll wins and USBPorts.kext does not have effect. I tried also USBMap, but then nothing - BT nor sleep, works.

SSDT-EC-USBX-DESKTOP-2.aml is in ACPI folder. What has USBPorts.kext included so that sleep works, what can carry over to my system ?
 

Attachments

  • Info.plist
    4.3 KB · Views: 51
  • SSDT-UIAC.dsl
    3.1 KB · Views: 50
I have great build (Asus H310T with iGPU), connected to HP E240C screen with Webcam. Broadcom 93460 WiFi and BT work at m.2 slot. USB ports are mapped with USBInjectAll and SSDT-UIAC.aml (to get BT working). Issue is instant wake after sleep and gulprit is the monitor/hub/webcam. If I unplug USB cord from monitor, sleep works (I have tried different USB and USB3 ports, same. Also if I deny monitor sleep from monitor menu, Hackintosh sleep works - but obviously monitor and its internal USB hub stays powered on). What gives ?

I tried also setting upstrean USB port to 255, but no results. I tried even setting all ports 255, same... Port limit XHCI is disabled in config.plist

Funny is that when I use Hackintool to create USBPorts.kext, sleep works, but BT not (intenal BCM27020 hub not visible) due me excluding USBInjectAll. If I use both, USBInjetAll wins and USBPorts.kext does not have effect. I tried also USBMap, but then nothing - BT nor sleep, works.

SSDT-EC-USBX-DESKTOP-2.aml is in ACPI folder. What has USBPorts.kext included so that sleep works, what can carry over to my system ?

Hi there.

As far as I can see, from checking the ASUS web-site, your motherboard doesn't have a USB Type-C connector ? You have one in your configuration files.

Any hub, monitor or otherwise, attached to a motherboard is soley controlled by the port on the motherboard it is plugged into. From your description I'm guessing that is HS14, but I don't see a port for Bluetooth. So maybe that's not correct..

Without seeing more detail - such as a Hackintool screengrab or an IOReg export file - it is difficult to diagnose your problem further.
 
You are right. I have USB-C port on case, but actually it is just another USB3. I changed it, but regarding sleep issue it did not help. And correct, HS14, the "internal" port is Bluetooth. Screenshot attached:

But I would like to stress again - disconnecting monitor hub from HS06 solves the issue but due webcam it is not feasible. Also USBPorts.kext somehow helps, but leaves BT not detected. So I either should take something from USBPorts to USBInjectAll to allow it sleep or other way, "teach" USBPorts how to detect BT Hub/HS14 correctly.

I also tried SSDT-GPRW.aml but even that did not allow sleep...
 

Attachments

  • Image.png
    Image.png
    167.3 KB · Views: 72
You are right. I have USB-C port on case, but actually it is just another USB3. I changed it, but regarding sleep issue it did not help. And correct, HS14, the "internal" port is Bluetooth. Screenshot attached:

But I would like to stress again - disconnecting monitor hub from HS06 solves the issue but due webcam it is not feasible. Also USBPorts.kext somehow helps, but leaves BT not detected. So I either should take something from USBPorts to USBInjectAll to allow it sleep or other way, "teach" USBPorts how to detect BT Hub/HS14 correctly.

I also tried SSDT-GPRW.aml but even that did not allow sleep...

Okay. :thumbup:

Remember that all your HS** ports are not physically USB2 (black). Some of those ports will be blue. Look at those two to the right of the DisplayPort on the back panel. If a HS** port is actually a Blue one then change the connector-type to USB3.

As an experiment, change HS06 to "Internal" and see if that helps the monitor hub. It might, it might not but worth a try.

:)
 
If you look my first post, then I tried setting HS06 Internal. I tried setting all ports Internal (helped one forum member). I tried now again after setting USB3 ports correctly acc. your recommendation. No change.

Funny thing is that sleep kind of works. Probably worked all along. I just was not patient enough. If computer goes sleep monitor shuts off little after that and this impulse at USB port wakes it up again (instant wake). But if I wait 1 minute comp. goes sleep again ! This is much better than before. But it works once. If I wake it, it does not fall asleep again.

Still would be great to know what is the trick USBPorts.kext provides that sleep works perfectly. Or how can I teach USBPorts.kext to see my BT.
 
I assume your WiFi/BT card is connected from the M.2 Socket 1, i.e. the CNVI/WiFi connector on the motherboard. That the USB connection is directly from the CNVI connector, not via a USB header cable. As your Asus motherboard lacks any PCIe slots.

I know from working on a few Z390 systems that the CNVI connector can be problematic in macOS. So much so that an SSDT was created to disable this connector on the Z390 and X299 boards.

You need to post a copy of your IOReg so we can see what is happening and how things are connected.

Before your make a copy of your IOReg, I would suggest resetting your system to use the XhciPortLimit quirk in OpenCore or the USB port limit patches in Clover, along with adding USBInjectAll.kext to your bootloader's kext folder, so all your USB ports are active when you make the copy of your IOReg.

Use this guide to create a copy of your IOReg, that we can open and read - https://www.tonymacx86.com/threads/guide-how-to-make-a-copy-of-ioreg.58368/
 
to UtterDisbelief: I did not meant to be nosey, sorry.

Yes, m.2 socket 1. No header cable. USBInjectAll.kext is already in bootloader's kext folder.
 
OK, so you are using an SDDT-UIAC.aml with that kext, yes.

These are the USB ports on your motherboard, according to the specification page - https://www.asus.com/Motherboards-Components/Motherboards/All-series/PRIME-H310T/techspec/:

Screenshot 2021-04-17 at 19.05.36.png
Only the 4 x USB 3.1 and the 4 x USB 2.0/1.1 ports should be contained in your SSDT-UIAC.aml, as they use an Intel chipset.

The Genesys Logic (GLog) GL852G ports should not be included, as they use a different chipset. You need to find a different solution, i.e. kext, in order to get these 3 USB 2.0 ports working. If possible it might be better if you can disable these GLog USB ports in the Bios.

I am going to assume that the 12 ports contained in your SSDT-UIAC.aml are the Intel ports. In that case you should have the following port connectors in your SSDT-UIAC.aml:

4 x USB3 (3) - 4 physical USB3 ports, 2 physical ports on rear I/O and 2 ports from motherboard header.
4 x USB3 (3) - 4 Virtual USB2 ports, from the 4 USB3 physical ports.
2 x USB2 (0) - 2 physical USB2 ports on rear I/O plate.
2 x Internal (255) - 2 physical USB2 Header ports on motherboard.

There should be no USBConnector Type '9', as that represents a USB Type-C port, which your motherboard lacks.

So form the off I can see that HS01 is set incorrectly as is SS01, both should probably be set as USB3.

The likelihood is that HS02, HS03 and HS04 should also be set as USB3, i.e. USBConnector 3.

That leaves question marks over ports HS05, HS06 and HS07. Two of these are likely to be correct as they will be representing the two USB2 ports on the rear I/O plate. One will be wrong, as it will be from the USB Header port on the motherboard. Do you know which ports serve which physical connection? It is likely to be HS07 activates the internal header port, that's my best guess. With HS08 not being activated from the Internal Header.

I am again assuming that HS14 is an internal port, which is connected to your M.2 Socket 1 connector and serving the Bluetooth module. I think this could be one of the GLog USB2 ports. But I am not sure.

As a guess I would go with this set-up for your USB ports.

Your original SSDT-UIAC.aml My proposed SSDT-UIAC.aml, based on the above.
Screenshot 2021-04-17 at 19.04.28.png Screenshot 2021-04-17 at 19.31.42.png

A copy of the revised SSDT-UIAC.dsl, named SSDT-UIACv2.dsl is attached for you to compile and try in your system.

It may need adjusting depending on what you come back with regarding USB port identification for the internal headers and the GLog ports.
 

Attachments

  • SSDT-UIACv2.dsl.zip
    1.3 KB · Views: 39
Thanks. I can say that all your assumptions are correct. Attached is my updated dsl file what I modified after inital post in this thread due advise from UtterDisbelief. You can see it matches your file !
Besides port count - you have 12 there, I have 20 (matches nr. of last port). If I use 12, BRCM20702 is not found !
Only thing I can not answer, is HS14 being one of the GLog USB2 ports. How can I find that out ?
I have other GLog ports (9/10/11 long diabled in BIOS). But after all that sleep situation is same !
 

Attachments

  • SSDT-UIAC.dsl
    3.1 KB · Views: 45
Status
Not open for further replies.
Back
Top