Jump to content

Bizarre USB Behaviour on Catalina OpenCore Z370 Build

Recommended Posts

Motherboard: Asus Z370-P II (Bios version 1203)

CPU: i5 9600k

Graphics: Radeon RX 5500XT

Hi guys! I'm new to Hackintosh and I'm having some trouble with my build. I'm trying to be a good question-asker and provide you with as much detail as possible. I would really appreciate if someone could weigh in with their expertise.


I installed Catalina with the Dortania OpenCore vanilla guide and had no problems. The guide was comprehensive and easy to follow, I was lucky enough that my .aml requirements could be fulfilled "the easy way" using SSDTTime and the precompiled USBX.aml. However, I discovered some strange USB behaviour.

My initial EFI uses the XhciPortLimit patch without USBInject all or any sort of USB map. Many of my USB devices work fine, my keyboard and mouse receiver works, as does my bluetooth adapter and my USB mic. My external RAID enclosure even works perfectly. What doesn't work is any other USB storage device, including a portable external HDD and USB sticks (both USB 2.0 and 3.0 ports). This behaviour is the same with all USB ports. Sometimes, the system will get laggy when one of these "unsupported" devices are plugged in. On verbose boot, if one of these devices is plugged in, this flashes across the screen a solid minute before booting (this happens with all the different EFI's I've made).

What's more confusing to me is that if I go to system report or IO explorer, I can see the devices being added, but they are not shown in disk utility at all. On my initial config, it will occasionally freeze after plugging in or unplugging any of these non-working devices.

What I've Tried

At first, I though that building a USB map would be the answer. I used a dummy USB to test different EFIs, and tried building a USB map using the USBMap tool by u/corpnewt  . I did include USBinjectAll when attempting this. I found that after booting with the EFI from the USB, the hackintosh was extremely slow, and would almost always freeze during the discovery process while I plugged or unplugged USB devices, requiring me to cut power to turn the computer off. This happened with the port limit patch enabled or disabled.

Here is a picture I took before one of the freezes. One thing I noticed is that all of the devices are added 3 times, with one being stacked under the USR2 section, which I've never seen in any of the guides or videos I watched.

I decided to try using the USBMap tool with my initial, more stable EFI without USBInjectAll. Here is a picture of the discovery process. I noticed that this time, instead of all of the devices stacking in the USR2 slot, they stacked in the SS02 spot, also it seems some of the ports I had previously mapped to other slots have not changed (TR004 stayed in the same port in the 2 screenshots, yet it went from HS05 to HS03). I was able to finish mapping this time though. I tried the .kext method and the SSDT method. I tested both methods using a dummy USB and got the same results as before, the system was extremely laggy, the USB behaviour was unchanged, and the system froze and crashed upon plugging or unplugging some devices.

Here is my initial EFI, with a screenshot here.

Here is a log using this same EFI on a regular boot, all of the "supported" USB devices are plugged in and worked upon boot.

Here is a log using the same EFI with one of the "unsupported" USB devices plugged in.

Here is the most recent EFI I made with the USBMap patch. Here is a screenshot.

Questions / Theories

Excuse me if these don't make sense:

1) I've used a dummy USB to test all of the EFI variants I've made. I assume that MacOS does not recognize it once booted (because it's on a USB stick - which doesn't work), I can see the device in system report but not in Disk Utility, Finder or using the MountEFI tool. I wonder if at some point during boot, MacOS loses track of it and it causes issues. I've been too scared to move these EFI's over to my HDD because they are often so laggy, but maybe the fact they are being booted from a dummy USB is causing the lagginess.

2) EHCI/XHCI Hand-off was not an option in my BIOS, I wonder if this has anything to do with it.

3) I used SSDT Time to make SSDT-EC, but I'm wondering if something is wrong with it. I used the pre-compiled USBX and also tried the one created by the USBMap tool, and saw no difference.

4) I looked and I didn't think that I need SSDT-AWAC. But if i did would it even let me boot without it? Or could it potentially cause this problem? (I realize this one if far fetched).

5) I may very well be using the USBMap Tool wrong. I tried following this guide, but I feel like I'm missing something because it didn't actually go through the process of using the tool. However I did find the readme on corpnewt's github page helpful.

Sorry for the essay. I've spent a lot of time looking down rabbit holes and I hope you guys may be able to help me decide which one to go down next.

Link to post
Share on other sites
3 hours ago, ddpruel said:

2) EHCI/XHCI Hand-off was not an option in my BIOS, I wonder if this has anything to do with it.

May be this, but EHCI/XHCI Hand-off enabled isn't mandatory at all just in case boot stalls or USB devices are disconnected but, as you said "Many of my USB devices work fine"

I'm not an expert, but to the most obvious are:

  1. wrong ou incomplete usb map (most probably)
  2. wrong ACPI tables

What to try

  1. make a usb map is much more easy with Hackintool: remove other attempts, put usbinjectall.ket, restart, plug and unplug each usb (2.0 and 3.0) to enable selected port and when all ports are discovered remove all unnecessary and create a USBPorts.kext, replace usbinjectall with this one and done
  2. At OpenCore, EC and USBx may be merged to be a single SSDT-EC-USBx and you may try also SSDT-AWAC
  • Like 1
Link to post
Share on other sites
20 minutes ago, MaLd0n said:

use bios in default, disable only csm and vt-d just if need

Thanks, I'm not sure how exactly to implement the DSDT. All the forums I've seen online only talk about clover. I put in the the ACPI folder and replaced the SSDT's. I then referenced it in the config.plist file. I also implemented your bios settings. It booted normally but the problem didn't change. Am I using the DSDT file correctly?

Link to post
Share on other sites
  • Administrators
6 hours ago, ddpruel said:

The problem persists, but ignore my previous comment about my RAID enclosure, I had accidentally removed my USB map kext but it is back now.

use USBInjectAll.kext and XHCI-unsupported.kext + xhcilimit port patch, reboot and generate a injector with hackintool with full ports, put usbports.kext in clover/kexts/other remove USBInjectAll.kext and XHCI-unsupported.kext, reboot

  • Thanks 1
Link to post
Share on other sites
22 hours ago, MaLd0n said:

use USBInjectAll.kext and XHCI-unsupported.kext + xhcilimit port patch, reboot and generate a injector with hackintool with full ports, put usbports.kext in clover/kexts/other remove USBInjectAll.kext and XHCI-unsupported.kext, reboot

Thanks for your continued help. I did exactly what you said (using a hackintool kext as well as another time with aUSBMap tool kext) and the behaviour remains unchanged. The mystery goes on...

Edited by ddpruel
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

:cap-Please Disable Your ADBlocker-:cap