Contribute
Register

CustoMac Desktop USB Fixes - 10.11+ Reference

I'm having an issue with my new build (GA-Z270X-UD5) and USB3. So I have the 200-series injector and the USBInjectAll kext along with the USB port limit patch but I'm not able to use USB3 devices on any of the USB3 ports (the single USB3.1 port on the back works with USB devices).

I've been trying to read all the different posts on USB issues but I'm a little lost on what my next steps should be. When I look in IOReg under the XHC device, I only see HS ports listed there (HS01-HS14) along with a USR1. I believe I should be seeing a number of SS ports along with a USR2 under there as well.

Could someone point me in the right direction? I've attached all the usual information for troubleshooting.
 

Attachments

  • Andrews-iMac.zip
    1.9 MB · Views: 94
Last edited:
I used the port limit patch for 200 series boards that was in MultiBeast. Is there an error with MultiBeast then?

The correct port limit patch is in my guide.
I don't use Multibeast, so cannot say what patch you may have applied or whether it is correct for the version you have installed.
 
The correct port limit patch is in my guide.
I don't use Multibeast, so cannot say what patch you may have applied or whether it is correct for the version you have installed.

That was it, I compared the patch in your thread to the patch installed by MultiBeast 9.2. It appears there's a bug in MultiBeast and it's installing the 10.11.x patch instead of the 10.12.x patch.

Now that I can finally see all the ports, time to do a little port discovery. :)

@tonymacx86 is there any mechanism for reporting bugs in MultiBeast? That USB port patch should probably get fixed so it doesn't confuse others.
 
The correct port limit patch is in my guide.
I don't use Multibeast, so cannot say what patch you may have applied or whether it is correct for the version you have installed.

I got everything working, did port discovery on the USB bus and built a SSDT injecting the ports I'm using along with documenting *all* the USB ports on the motherboard for future reference/enabling and was able to disable the port limit patch. Once I get everything else finished up and finalized I'll create a guide for this motherboard along with the UIAC file defining all the ports for others to use.

I did create another thread with a request to review and let me know if I'm missing something in my build. If you have the time, please take a look at https://www.tonymacx86.com/threads/configuration-help-requested.230473/
 
Last edited:
Got my USB ports working on a GA-Z77X-UD5H:
Installed FakePCIID.kext, FakePCIID_XHCIMux.kext, and USBInjectAll.kext with Kext Wizard.
Copy pasted the content of OS-X-USB-Inject-All/config_patches.plist found on the USB Inject all GitHub page into my clover configuration file (in the correct areas ofcourse).

Clover screenshots:
ACPI
Screen Shot 2017-09-19 at 16.02.32.png

Screen Shot 2017-09-19 at 16.02.41.png


Kernel and Kext Patches:
Screen Shot 2017-09-19 at 16.03.03.png


I hope this post will help others out getting their USB ports to work correctly.
 
Got my USB ports working on a GA-Z77X-UD5H:
Installed FakePCIID.kext, FakePCIID_XHCIMux.kext, and USBInjectAll.kext with Kext Wizard.
Copy pasted the content of OS-X-USB-Inject-All/config_patches.plist found on the USB Inject all GitHub page into my clover configuration file (in the correct areas ofcourse).

Clover screenshots:
ACPI
View attachment 279482
View attachment 279483

Kernel and Kext Patches:
View attachment 279484

I hope this post will help others out getting their USB ports to work correctly.

Keep in mind _OSI->XOSI patch requires SSDT-XOSI.aml.
 
Got my USB ports working on a GA-Z77X-UD5H:
Installed FakePCIID.kext, FakePCIID_XHCIMux.kext, and USBInjectAll.kext with Kext Wizard.
Copy pasted the content of OS-X-USB-Inject-All/config_patches.plist found on the USB Inject all GitHub page into my clover configuration file (in the correct areas ofcourse).

This kext attempts to inject all ports for each controller, and for hubs as well. You can use this kext (temporarily) to enable all ports so you can determine which ports really need to be in the final injector. Only the (potential) hub on EH01.PRT1 and EH02.PRT1 are injected. Other hubs would require modifications. So far, I haven't seen internal hubs connected to other ports. The kext automatically determines the ports (and their addresses) based on the specifc USB controller chipsets.

I'm finally trying to fix my USB's on my GA-Z77X-UD5H-TH motherboard.

I'm not a complete noob, but I'm missing the overall steps of using the USBInjectAll.kext to "determine which ports need to be on the final injector". I modified the makefile of OS-X-USB-Inject-All-Master to install the USBInjectAll.kext, I corrected the BUILDPATH variable. The make seemed to work correctly and installed and rebuilt the kernel.

I rebooted. Where do I get the information, or how do I generate the information to determine the ports for the ACPI injection? I can't find any instructions or steps that describe that part of the process. I looked in the console, examined the logs, I don't see any text in them containing USBInjectAll string. I don't see an enumeration of the USB ports. Am I missing something, process or purpose of the kext?

Then I quote Juggernaut1987 as their posting on a similar motherboard ( I would guess the same USB hub/ports ) seems to say one injects all 3 kexts, and then adds the text in the ACPI portion of the clover config plist and reboots, et viola it's working.

But your read me indicated that the USBInjectAll.kext is a TEMPORARY utility/driver/extension to identify the ports, but then you don't describe removing it, or where it's information is placed or logged.

I'm confused. Sorry for length of posting. Hopefully someone won't smash over this posting that I took hours to work through.
Thanks for all your contributions.
 
Overview

One of the serious issues most users will face with 10.11.x (and later, including 10.12.x) is the new USB stack in OS X/macOS. It has a much heavier reliance on ACPI, and as a result is much more likely to expose bugs in your ACPI implementation of _PLD, and _UPC.

Darn. Is this posting of yours what I was supposed to read first?
 
Back
Top