Contribute
Register

The New Beginner's Guide to USB Port Configuration

Hi there.

Well from what I can see you've done a great job configuring everything already.:thumbup:

There are a couple of things I would consider, but whether they affect functionality given the results you've had, well, as they say, the jury's out.

1) Normally we need to rename any EHC* controllers to EH0*. For that Clover Configurator has them ready-made in the ACPI pull-down. EHC1 to EH01 and EHC2 to EH02 etc. However, if macOS sees them, and uses them, then that's one myth busted.

2) The only way I can think of to put a label against each port to identify its location is in the SSDT-UIAC.dsl template. Hackintool doesn't give you access to this but I show you how to use it in my 'old' SSDT creation guide - Step 5 Completing the Template. Here you can use the comment section for each port and identify it. Comments don't get compiled though, so don't show in the finished SSDT-UIAC.aml.

3) The 'extra' ports in Hackintool look like the EHC controllers. Here's a side-by-side, your screengrab and IOReg:

View attachment 450189

Each EHCI controller has 3x ports. They have the same names but are on different nodes and have different location-IDs.

It can get complicated if you wish to configure both XHC and EHC in your SSDT-UIAC because instead of using just "XHC", as the "Package (0x04)" identifier, you would need to use the Device IDs: "8086_8C31" (replaces "XHC"), "8086_8C2D" and "8086_8C26" in three separate sections. @RehabMan shows this in his expert guide.

Remember Hackintool caches the original ports and until you refresh, any you've removed with the delete button still show up next time round.

You've got the XHC ports looking good, correctly typed. Not sure I would advise anything major now - unless you have a specific problem. :)

I have another approach without editing the SSDT-UIAC.dsl file, I would prefer just make use of USBInjectAll.kext info.plist (since all the data is already in the plist)

open the info.plist with plist editor, delete the ports that not needed, rename the USBInjectAll.kext to something more meaningful such as USB-Z370N-WIFI.kext

(1) copy the untouched USBInjectAll.kext to /EFI/CLOVER/kexts/Off folder, in case you want to use it for testing
(2) copy the modified "USBInjectAll.kext" to /EFI/CLOVER/kexts/Other folder
(3) done

Screen Shot 2020-02-17 at 22.16.27.png
 
I have another approach without editing the SSDT-UIAC.dsl file, I would prefer just make use of USBInjectAll.kext info.plist (since all the data is already in the plist)

open the info.plist with plist editor, delete the ports that not needed, rename the USBInjectAll.kext to something more meaningful such as USB-Z370N-WIFI.kext

(1) copy the untouched USBInjectAll.kext to /EFI/CLOVER/kexts/Off folder, in case you want to use it for testing
(2) copy the modified "USBInjectAll.kext" to /EFI/CLOVER/kexts/Other folder
(3) done

View attachment 450379

Yes, that works. :thumbup:

But you may as well just use USBPorts.kext and modify that instead. By doing so you don't even need to be using the executable code in USBInjectAll.kext. It's basically closer to simply writing an ACPI patch ...

Or go "Machine Code Ninja" (Okay, not quite) and just write a patch for your DSDT dump and merge it with ACPI at boot.

:)
 
Yes, that works. :thumbup:

But you may as well just use USBPorts.kext and modify that instead. By doing so you don't even need to be using the executable code in USBInjectAll.kext. It's basically closer to simply writing an ACPI patch ...

Or go "Machine Code Ninja" (Okay, not quite) and just write a patch for your DSDT dump and merge it with ACPI at boot.

:)

@itwas and @UtterDisbelief it works using USBKext and Xcode to edit the info.plist. Awesome guys thanks for the help.
I added one space after the "HS01" so (HS01 Front Right) and look at this its right above the blue. Now for some more testing to see if I can name it USB Front Right instead of HS01?

Screen Shot 2020-02-17 at 8.53.33 AM.png
 
@itwas and @UtterDisbelief it works using USBKext and Xcode to edit the info.plist. Awesome guys thanks for the help.
I added one space after the "HS01" so (HS01 Front Right) and look at this its right above the blue. Now for some more testing to see if I can name it USB Front Right instead of HS01?

View attachment 450392

That is a really good find :thumbup:

My turn to say "Awesome!" :D I'm going to experiment with that ...
 
That is a really good find :thumbup:

My turn to say "Awesome!" :D I'm going to experiment with that ...

Check this out, it works with no HS01, and SSP1 and the port operates with a 2.0 stick as well as a 3.0 stick.

Thanks again @itwas and @UtterDisbelief this is awesome for mapping out ports and easy naming implementation.

Screen Shot 2020-02-17 at 9.41.52 AM.png
 
Last edited:
Check this out, it works with no HS01, and SSP1 and the port operates with a 2.0 stick as well as a 3.0 stick.

Thanks again @itwas and @UtterDisbelief this is awesome for mapping out ports and easy naming implementation.

View attachment 450400

Ha! Cool!

Just goes to show why there can be SS and SSP and HP etc., if they are simply labels. Have to guess the location ID is the clincher and why, when folk get those duplicated, they get problems.

Learning all the time.

:)
 
Ha! Cool!

Just goes to show why there can be SS and SSP and HP etc., if they are simply labels. Have to guess the location ID is the clincher and why, when folk get those duplicated, they get problems.

Learning all the time.

:)

You'll have to update your first page! This is nice, totally customized USB naming.
 
Hi all -
Just getting around to getting this done after tweaking a sound issue with my Catalina build (now working).

Most of the USB ports work on this machine, but I was trying to get this optimized, as there are a few that don't.

I am up to part three of the original guide on page 1. See the attached screenshot.

There are four USB 3 ports on the back panel of the motherboard (Gigabyte GA-Z97X-UD7 TH) which do not work under MacOS but do under Winblows and Linux.

Also, there are four USB 2 ports on the front panel (attached to ports on the motherboard) which do work but don't show up when I plug a flash drive into them - I assume because the front panel ports are seen as the USB 2.0 Hub?

It also appears that per your notes, that I'm already up to 15 ports.

HS03 and SSP4 I can't find - I assume they're unconnected motherboard ports - are they safe to delete? And by doing so, will I possibly gain one of the rear-panel ones that currently don't work?

HS01/SSP1, HS09/SSP5 and HS10/SSP6 are front-panel ports (the latter two are fed by the only two rear-panel ports that do work) that I need to keep alive.

Haven't had time to go through all 41 previous pages - sorry if I'm restating a question which has been previously asked.

Much appreciated!
 

Attachments

  • Screen Shot 2020-02-17 at 16.10.59.png
    Screen Shot 2020-02-17 at 16.10.59.png
    194.9 KB · Views: 101
Last edited:
Hi all -
Just getting around to getting this done after tweaking a sound issue with my Catalina build (now working).

Most of the USB ports work on this machine, but I was trying to get this optimized, as there are a few that don't.

I am up to part three of the original guide on page 1. See the attached screenshot.

There are four USB 3 ports on the back panel of the motherboard (Gigabyte GA-Z97X-UD7 TH) which do not work under MacOS but do under Winblows and Linux.

Also, there are four USB 2 ports on the front panel (attached to ports on the motherboard) which do work but don't show up when I plug a flash drive into them - I assume because the front panel ports are seen as the USB 2.0 Hub?

It also appears that per your notes, that I'm already up to 15 ports.

HS03 and SSP4 I can't find - I assume they're unconnected motherboard ports - are they safe to delete? And by doing so, will I possibly gain one of the rear-panel ones that currently don't work?

HS01/SSP1, HS09/SSP5 and HS10/SSP6 are front-panel ports (the latter two are fed by the only two rear-panel ports that do work) that I need to keep alive.

Haven't had time to go through all 41 previous pages - sorry if I'm restating a question which has been previously asked.

Much appreciated!

Hello there.

1) I would review the USB-related kexts you may have installed. Looking at the Hackintool screen-grab the Location IDs of the ports is out of kilter. For example, have you installed FakePCIID_XHCIMux.kext?

2) To get an alternative view I would take a look at the ports using IORegistryExplorer. It will show clearly how the ports are arranged in the ACPI. For example the two EHCI controllers and which XHCI ports are Intel and which are not because ...

3) Your motherboard features and add-on Renesas USB chipsest used to "boost" USB2 ports to USB3 standards. These comprise 4x ports on the back-panel. This technique always adds confusion to what you see.

Recommendations:

Remove FakePCIID_XHCIMux.kext and GenericUSBXHCI.kext if they are present. Rebuild caches and reboot. Once done re-check the sort order in Hackintool and IORegistryExplorer.

If that makes no difference upload a copy of the IORegistryExplorer export (an *.ioreg files) or if you'd rather not do that, at least post screen grabs of the XHC and EH01/02 nodes.

:)
 
@UtterDisbelief - Thanks very much. FakePCIID_XHCIMux.kext and GenericUSBXHCI.kext are not installed (see kextstat output). Also find attached the sections of the IOReg that you requested. Much appreciated!
 

Attachments

  • Screen Shot 2020-02-19 at 12.42.55.png
    Screen Shot 2020-02-19 at 12.42.55.png
    192.2 KB · Views: 82
  • Screen Shot 2020-02-19 at 12.39.38.png
    Screen Shot 2020-02-19 at 12.39.38.png
    210.4 KB · Views: 93
  • Screen Shot 2020-02-19 at 12.40.48.png
    Screen Shot 2020-02-19 at 12.40.48.png
    65.4 KB · Views: 115
  • Screen Shot 2020-02-19 at 12.41.28.png
    Screen Shot 2020-02-19 at 12.41.28.png
    68.2 KB · Views: 69
Back
Top