Contribute
Register

The New Beginner's Guide to USB Port Configuration

I also tried disabling Legacy USB Support in the bios too, just for kicks. Made no difference. Any other ideas? I have no idea how to move forward on this. Any suggestions would be greatly appreciated.
 
I also tried disabling Legacy USB Support in the bios too, just for kicks. Made no difference. Any other ideas? I have no idea how to move forward on this. Any suggestions would be greatly appreciated.


Hi there.

Looks interesting ...

I think you are using a later version of IORegistryExplorer because I am not able to load it. I generally recommend v2.1 for historical reasons - plus it is easily available around here, and linked in post #1, unlike the later developer versions.

:)
 
I dove right into this thread because no USB3.0 devices were recognized after upgrading from Mojave 10.14.5 to Catalina 10.15.4.

Somewhere around updating my USBInjectAll.kext, all of my USB3.0 devices started showing up again.
Now as far as I can tell, occupying all of my I/O ports with USB3.0 devices all show up and they all perform at USB 3.0 speed verified by BlackMagic Disk Speed Test. I still recorded the port names I could discover. But seeing as how all of my devices are showing up and seemingly performing at USB3.0 speeds, should I even bother trying to make an SSDT or should I just leave things as they are?
 

Attachments

  • Screen Shot 2020-05-14 at 10.58.36 PM.png
    Screen Shot 2020-05-14 at 10.58.36 PM.png
    1.2 MB · Views: 50
Hi there.

Looks interesting ...

I think you are using a later version of IORegistryExplorer because I am not able to load it. I generally recommend v2.1 for historical reasons - plus it is easily available around here, and linked in post #1, unlike the later developer versions.

:)

Just checked, I was using version 3.0.2 (14). I had downloaded it directly from Apple's developer website, as that was where some other threads suggested getting it from. That was before I can across this thread and I missed the part about using an older version. Incidentally, I was able to open the exported ioreg file. I saw on the other thread you linked to about v3 not even being able to open it's own saved files. Perhaps that's fixed in 3.0.2 or 3.0.2 on Catalina?

Anyway, I used v2.1 and exported the ioreg file and it's attached. Any insights?
 

Attachments

  • GA-Z97x-Gaming G1 ver2.ioreg
    4.4 MB · Views: 63
I dove right into this thread because no USB3.0 devices were recognized after upgrading from Mojave 10.14.5 to Catalina 10.15.4.

Somewhere around updating my USBInjectAll.kext, all of my USB3.0 devices started showing up again.
Now as far as I can tell, occupying all of my I/O ports with USB3.0 devices all show up and they all perform at USB 3.0 speed verified by BlackMagic Disk Speed Test. I still recorded the port names I could discover. But seeing as how all of my devices are showing up and seemingly performing at USB3.0 speeds, should I even bother trying to make an SSDT or should I just leave things as they are?

Usb c port and red one are controlled by ASMEDIA controller, so they will not show up to hackintool either ioreg. It supposed to run native by Mac OS.

7 and 8 are the internal usb 3, the cable next from your RAM. So you can call them as USB 3 to hackintool.

My opinion is to make a file for your motherboard and disable the generic usb port patch.
 
Last edited:
Just checked, I was using version 3.0.2 (14). I had downloaded it directly from Apple's developer website, as that was where some other threads suggested getting it from. That was before I can across this thread and I missed the part about using an older version. Incidentally, I was able to open the exported ioreg file. I saw on the other thread you linked to about v3 not even being able to open it's own saved files. Perhaps that's fixed in 3.0.2 or 3.0.2 on Catalina?

Anyway, I used v2.1 and exported the ioreg file and it's attached. Any insights?


Hi there.

Thank you. Yes, you are probably correct about the latest version of IORegistryExplorer. Bugs were bound to be rectified. :thumbup: The reason we use v2.1 is because it's here and no-one needs to log-in to their Apple ID/Developer Downloads etc.

Anyway... The *.ioreg makes things easier to understand.

First step, understanding what you have ...

You have USBInjectAll.kext in place along with port-limit removal patches opening up everything.

XHC controllers - 20-ports open:

Currently your Logitech USB receiver is in port HS11

Currently your Hue Webcam is in HS12


EHC controllers - 14-ports open configured with 2x hubs containing 16x ports.

This EHC configuration is not "natural" because the Z97 chipset only has 14x EHC ports.

The two rear-panel ports you mapped as HP25 and HP26 are on controller EH02, as you know, but to identify which ports the "invisible" USB3 ports are we need a device plugged-in while the *.ioreg export is being done. I can't see one.


The Renesas piggy-back USB3 controller is "hooked" onto HS09 and SS05. The 4x USB3 ports show up in XHC in two places because, being high-speed ports, they can run at USB2 or USB3 speeds as necessary.


So what's the problem?

1) Obvious point is that there are more than 15-ports being configured.

2) We would normally ignore a third-party, add-on controller because macOS treats them as "external", just like a PCI-e card in a real Mac Pro. Where some chipsets differ is the "hook" method. A completely stand-alone system appears elsewhere in the PCI component tree, not XHC. Possibly RP or PX. This means they do not interfere. Ones that "hook" do, interfere.

3) Do you have any *.aml files in your EFI/CLOVER/ACPI/patched folder?

What to do?

Personally I would set the BIOS XHCI Mode to Enabled. Smart Auto and Auto routes through EHCI first. However I no longer have a Z97 board to test this on, unfortunately.

Double-check what kexts you have installed in Drive: Library/Extensions for any rogue USB ones.

You know the Location IDs for the Renesas ports : 14910000 to 14940000 and 14310000 to 14340000 so discovering them when you plug in a device with IORegistryExplorer running, instead of Hackintool, should let you see which physical ports they are. You've probably done this already.

The Motherboard only has 8x Intel USB2 ports and 4x Intel USB3, for a total of 16x ports (8+4+4 etc). The Z97 however has 10x USB2 ports so these will be in the list but untouchable. Any other ports beyond these are "imaginary" caused by shoehorning macOS into PC hardware.

Working on the port-map with the above info is the logical thing to do.

Harking back to your original questions, I think they're covered now.

(Yes, this is way beyond a Beginner's Tutorial :lol:).
 
Hi there.

Thank you. Yes, you are probably correct about the latest version of IORegistryExplorer. Bugs were bound to be rectified. :thumbup: The reason we use v2.1 is because it's here and no-one needs to log-in to their Apple ID/Developer Downloads etc.

Anyway... The *.ioreg makes things easier to understand.

First step, understanding what you have ...

You have USBInjectAll.kext in place along with port-limit removal patches opening up everything.

XHC controllers - 20-ports open:

Currently your Logitech USB receiver is in port HS11

Currently your Hue Webcam is in HS12


EHC controllers - 14-ports open configured with 2x hubs containing 16x ports.

This EHC configuration is not "natural" because the Z97 chipset only has 14x EHC ports.

The two rear-panel ports you mapped as HP25 and HP26 are on controller EH02, as you know, but to identify which ports the "invisible" USB3 ports are we need a device plugged-in while the *.ioreg export is being done. I can't see one.


The Renesas piggy-back USB3 controller is "hooked" onto HS09 and SS05. The 4x USB3 ports show up in XHC in two places because, being high-speed ports, they can run at USB2 or USB3 speeds as necessary.


So what's the problem?

1) Obvious point is that there are more than 15-ports being configured.

2) We would normally ignore a third-party, add-on controller because macOS treats them as "external", just like a PCI-e card in a real Mac Pro. Where some chipsets differ is the "hook" method. A completely stand-alone system appears elsewhere in the PCI component tree, not XHC. Possibly RP or PX. This means they do not interfere. Ones that "hook" do, interfere.

3) Do you have any *.aml files in your EFI/CLOVER/ACPI/patched folder?

What to do?

Personally I would set the BIOS XHCI Mode to Enabled. Smart Auto and Auto routes through EHCI first. However I no longer have a Z97 board to test this on, unfortunately.

Double-check what kexts you have installed in Drive: Library/Extensions for any rogue USB ones.

You know the Location IDs for the Renesas ports : 14910000 to 14940000 and 14310000 to 14340000 so discovering them when you plug in a device with IORegistryExplorer running, instead of Hackintool, should let you see which physical ports they are. You've probably done this already.

The Motherboard only has 8x Intel USB2 ports and 4x Intel USB3, for a total of 16x ports (8+4+4 etc). The Z97 however has 10x USB2 ports so these will be in the list but untouchable. Any other ports beyond these are "imaginary" caused by shoehorning macOS into PC hardware.

Working on the port-map with the above info is the logical thing to do.

Harking back to your original questions, I think they're covered now.

(Yes, this is way beyond a Beginner's Tutorial :lol:).

Wow. Thanks for the detailed response! Can't wait to dig into this in more depth tonight. Quick question regarding the end goal here: to generate a USBPorts.kext file using Hackintool which only contains the ports I want to use and somehow excludes or disables all of the others. Is that correct? So as long as I know the LocationIDs for the ports I want to keep, I almost don't care what any of the Renesas or internal header port numbers are. Is that also correct?

Second, quick clarification: my front two USE 3.0 ports off the internal header show up fine in Hackintool. My rear two Intel USB 3.0 ports do not show up in Hackintool despite working fine in macOS. This is the problem I'm trying to solve - finding the IDs for these two "hidden" ports so I can generate a correct USBPorts.kext.

Lastly, there are 4 rear USB 3.0 ports that do NOT work in macOS. I always assumed they were the Renesas ports. Out of curiosity, how did you determine that 14910000 was a Renesas port? Only reason I ask is IORegEx is showing "v125w", my USB 2.0 drive (working in macOS) at 14910000, lodged under IOUSBHostDevice 14900000. See attached screenshot. I also assumed macOS would not recognize or mount anything plugged into a Renesas chipset port.

I'll check again in EFI/CLOVER/ACPI/patched and S/L/E/ and L/E for anything amiss. This is a clean install of Catalina using the latest Unibest and Multibeast. I thought Multibeast only put stuff in EFI/CLOVER/kexts/other on the latest iteration.

Thanks for persevering with me in this! I do greatly appreciate it. I will be quite excited to finally have conquered this aspect of Hackintoshing.
 

Attachments

  • IORegistryExplorer screenshot 1.png
    IORegistryExplorer screenshot 1.png
    164.8 KB · Views: 33
Wow. Thanks for the detailed response! Can't wait to dig into this in more depth tonight. Quick question regarding the end goal here: to generate a USBPorts.kext file using Hackintool which only contains the ports I want to use and somehow excludes or disables all of the others. Is that correct? So as long as I know the LocationIDs for the ports I want to keep, I almost don't care what any of the Renesas or internal header port numbers are. Is that also correct?

Second, quick clarification: my front two USE 3.0 ports off the internal header show up fine in Hackintool. My rear two Intel USB 3.0 ports do not show up in Hackintool despite working fine in macOS. This is the problem I'm trying to solve - finding the IDs for these two "hidden" ports so I can generate a correct USBPorts.kext.

Lastly, there are 4 rear USB 3.0 ports that do NOT work in macOS. I always assumed they were the Renesas ports. Out of curiosity, how did you determine that 14910000 was a Renesas port? Only reason I ask is IORegEx is showing "v125w", my USB 2.0 drive (working in macOS) at 14910000, lodged under IOUSBHostDevice 14900000. See attached screenshot. I also assumed macOS would not recognize or mount anything plugged into a Renesas chipset port.

I'll check again in EFI/CLOVER/ACPI/patched and S/L/E/ and L/E for anything amiss. This is a clean install of Catalina using the latest Unibest and Multibeast. I thought Multibeast only put stuff in EFI/CLOVER/kexts/other on the latest iteration.

Thanks for persevering with me in this! I do greatly appreciate it. I will be quite excited to finally have conquered this aspect of Hackintoshing.


Hi there.

Basically, yes, you are correct. Choose what you need and block the rest. To do this ideally we properly identify all the Intel ports so we can cut down the ones not in use to get to the magic 15-limit. Ports that work but don't show up in Hackintool should be Renesas. It's still a good idea to try to discover the internal Intel ports, if for no other reason than you can select them to be removed by Hackintool if they are not in use. You have to be Sherlock Holmes sometimes to figure them out. Most folk have a USB lead to their wifi card inserted in one and that makes a good starting point.

It would be beneficial to have IORegistryExplorer open when you plug a device into one of those 4x apparently dead rear-panel ports. My guess is they will appear somewhere ... buried in a "hub".

Actually Hackintool seems a bit hit and miss in showing third-party controllers in the top panel of the USB page. I don't know the reason for this. I recommend the USBPorts method nowadays because it is a codeless kext and will work, hopefully, even when Apple starts its kext use lockdown very soon. USBInjectAll may not.

Lastly the secret to finding the Renesas ports is IORegistryExplorer and Vendor IDs. My head is full of them. There you go. You are now an honorary member of the Magic Circle because you know the secret! :thumbup:
 
Wow. Well OK then. Looks like I have my work cut out for me. I'm surprised too that macOS would mount anything connected to the Renesas USB ports, since I was sure I read somewhere that they were dead on macOS 10.11 and up. Oh well.
 
Wow. Well OK then. Looks like I have my work cut out for me. I'm surprised too that macOS would mount anything connected to the Renesas USB ports, since I was sure I read somewhere that they were dead on macOS 10.11 and up. Oh well.


Like I mentioned before, there's a difference in 3rd party controller use - piggy-back or stand-alone. You can drop a pci-e USB card in a Mac Pro and of course it will work, but unconfigured. Even better if the manufacturer supplies a driver.

Maybe considered unusable since El Cap because @RehabMan 's GenericUSB.kext has not been updated since 2015 and it supported 3rd party chipsets.
 
Back
Top