Contribute
Register

The New Beginner's Guide to USB Port Configuration

So this might be a silly question.

But say I have an external USB 3.0 hub that I use with both USB 3.0 and USB 2.0 devices.

On the port that the hub is connected to on my hack, do I need to enable the HS and SS ports for USB 2.0 devices to work on the hub?
Yes, you will.
 
thanks for the guide, however i had much better luck just following the steps listed in Hackintool in the USB section help.

the reasons why:
I needed to run 2 passes, one with uia_exclude on my SS ports, and one for my HS ports (as listed in the Hackintool help steps).

Also it wasn't 100% clear in the guide that Hackintool actually stores the USB ports state across reboots, and that you need to clear all and refresh in order to start over and/or get the current ports. This is good as it allows you to build a full list of ports by rebooting with different sets of ports excluded, but if you dont realize that and think you're getting a "live" readout of your current ports like you do in IOReg, it can be very confusing.

Thanks for the feedback. Much appreciated.

Sorry the guide wasn't any use for you.

Out of interest, a few notes for anyone else reading who might now be put off following it ...

It covers both Clover and OpenCore bootloader options.

If you use the port-limit removal patch you don't need to use any USBInjectAll command-line options like "uia_exclude*". Yes, they are there but not necessarily "beginner friendly". Instead the PLRP allows you to see all you have on one screen. I thought this more "visual" for the target audience.

You are correct, Hackintool has much more to it than this guide intended to show. The port state you mention can cause confusion, that's why - again aimed at beginnners - I show IORegistryExplorer giving a more accurate "live" view.

Of course there are a dozen different ways to get any job done. Writing a guide you have to pick one :thumbup:
 
Last edited:
Sorry the guide wasn't any use for you.

The guide was still very helpful! And thankyou again for creating it. I used it too, but the hackintool help pushed me across the finish line. :)

If you use the port-limit removal patch you don't need to use any USBInjectAll command-line options like "uia_exclude*".

I think this is the issue - for me this is not true.

for example, using no excludes, i have HS devices that incorrectly show up in hackintool on the SS side (like my bluetooth card), HS devices with wrong ID when using a device like a hub that has both HS/SS, and i have certain SS ports that dont work at all.

When i exclude all HS devices, those SS ports start working again and have correct IDs - I can make a USBPorts.kext that works properly when i use those values.
 
The guide was still very helpful! And thankyou again for creating it. I used it too, but the hackintool help pushed me across the finish line. :)



I think this is the issue - for me this is not true.

for example, using no excludes, i have HS devices that incorrectly show up in hackintool on the SS side (like my bluetooth card), HS devices with wrong ID when using a device like a hub that has both HS/SS, and i have certain SS ports that dont work at all.

When i exclude all HS devices, those SS ports start working again and have correct IDs - I can make a USBPorts.kext that works properly when i use those values.

Hi there.

I'm guessing that the Z370N you have there is a Gigabyte ? If so the port errors do seem a little odd. Double-check with IORegistryExplorer, remove any other USB kexts you might have installed except USBInjectAll.kext and rebuild the caches. A particular offender is FakePCIID_XHCIMux.kext.

If, by excluding the HS ports, your SS ports show correctly that, in itself, suggests the port-limit removal patch is not working. However if this is because you prefer not to use one for the reasons you mention, that's fine and what you see is what you would expect from a 15-port system. Also check you are using the latest USBInjectAll.kext.

Using hubs for port detection is what @RehabMan recommends in his expert guide and I understand why, however hubs cause confusion sometimes (folk always ask if these ports count in the Apple 15) which is why I prefer to use a USB flash-drive. As long as you know the chipset port contingent you can calculate the correct port addresses for the SS ports from the HS ones. I cover this in my previous USB SSDT creation guide. That should work for a Z370.

:)
 
Last edited:
UtterDisbelief thank you for this great guide. I have two little problem with my current build related to usb that's driving me crazy. USB port mapping went smooth:
1. I have USBPort.kext in EFI/Clover.
2. I removed Limit Patch from config.plist.
3. I removed USBInject.kext.
4. IOReg shows port's correctly according to my mapping.
5. Hackintool have problems with Z390 showing ports incorrectly but that's another story.

Front case (header) usb port (in my case HS08 and SS08) is working fine with USB 2.0 drives but when I plug USB 3.0 everything is good (i can see it correctly in finder and IOReg). Problem starts when i try to read or write something on this drive. At first it works and then I can see in IOreg it disconnect and then again connect. Transfer is frozen. Drive itself is OK, becouse on every other port it works like a charm. Second problem is with mouse that is on receiver (Logitech MX) but I had this problem before on generic mouse and other builds so it's not mouse related. The problem is sometime one of the mouse button is stuck, right click or left click (after boot or after sleep). What works is to unplug and plug receiver or cable again and then everything works fine. Looks like USB problem. Sorry for no log I'm out of home right know but I can deliver logs if you willing to help :)
 
UtterDisbelief thank you for this great guide. I have two little problem with my current build related to usb that's driving me crazy. USB port mapping went smooth:
1. I have USBPort.kext in EFI/Clover.
2. I removed Limit Patch from config.plist.
3. I removed USBInject.kext.
4. IOReg shows port's correctly according to my mapping.
5. Hackintool have problems with Z390 showing ports incorrectly but that's another story.

Front case (header) usb port (in my case HS08 and SS08) is working fine with USB 2.0 drives but when I plug USB 3.0 everything is good (i can see it correctly in finder and IOReg). Problem starts when i try to read or write something on this drive. At first it works and then I can see in IOreg it disconnect and then again connect. Transfer is frozen. Drive itself is OK, becouse on every other port it works like a charm. Second problem is with mouse that is on receiver (Logitech MX) but I had this problem before on generic mouse and other builds so it's not mouse related. The problem is sometime one of the mouse button is stuck, right click or left click (after boot or after sleep). What works is to unplug and plug receiver or cable again and then everything works fine. Looks like USB problem. Sorry for no log I'm out of home right know but I can deliver logs if you willing to help :)

Hello,

They sound like two tricky problems.

The first one - disconnecting - sounds like the port is not delivering USB3 power. Did you also install the SSDT-EC.aml ? Another thing to consider is that because it's a front case port maybe the wire used from motherboard to port is not up to the job? Only a possibility, not likely I guess.

The second, mouse button sticking, is very unusual. I was going to suggest that these new "gamer" style mice have more buttons than Apple knows how to deal with BUT as you say this happens with a normal, generic mouse too, that has me stumped. Perhaps check the port you are using. If possible use USB2.0 and perhaps a back-panel port with an extender so you can test other ports?

:)
 
Last edited:
Step 3) Port Discovery

To identify which port on your motherboard you are going to keep and configure, you need to test each one with a USB flash-drive to see where it appears in the output of Hackintool.

Thank you for interesting guide.

There is one topic you did not cover! Thats if the same port can use both, USB2 and USB3 devices, how to configure system so you still can use both devices not loosing the speed for USB3 devices!
 
Hi
I have tried to follow KGP guide for specific board kext creation / and Rehab Custom SSDT for USBInjectAll.kext specific to my board but both of these guide requires IOREG to come up with XHCI@14 USB port report , which has failed so far as you can see from attached photos.
I am using USBInjectAll.kext on EFI folder on clover EFI/Clover/kexts/other , and also on Library/Extension of main drive.
I have arrived at this thread hoping to get a help, I followed your steps in the beginning until IOREG which show no ports under XHCI@14

Note: I have installed macOS Catalina using USB 3.1 Gen 2 Type A and currently using this port with a splitter in order to use mouse and keyboard

any advice please

many thanks
 

Attachments

  • EFI.zip
    10.7 MB · Views: 45
  • Screenshot 2020-02-01 at 12.07.36.png
    Screenshot 2020-02-01 at 12.07.36.png
    303.4 KB · Views: 56
  • Screenshot 2020-02-01 at 12.15.33.png
    Screenshot 2020-02-01 at 12.15.33.png
    110 KB · Views: 64
  • iMac,Pro 1,1.ioreg
    4.4 MB · Views: 69
Last edited:
Back
Top