Contribute
Register

The New Beginner's Guide to USB Port Configuration

Make sure you have config.plist > System Parameters > Inject Kexts > Yes.

Also, config.plist > Graphics > Inject ATI > No.

dear pastrychef, I working on my USB ports. but I read a lot that is more better and is intended for macOS and clover to the kexts be detected instead of injected. my system work great with inject kext. but now I try to be "detect" only have fakesmc. in other. so if I put the this kext for the USB ports in there it does not work. could I put it in /L/E ? is a way to only inject that kext? or has to be Inject Kexts set to "yes" mandatory
 
dear pastrychef, I working on my USB ports. but I read a lot that is more better and is intended for macOS and clover to the kexts be detected instead of injected. my system work great with inject kext. but now I try to be "detect" only have fakesmc. in other. so if I put the this kext for the USB ports in there it does not work. could I put it in /L/E ? is a way to only inject that kext? or has to be Inject Kexts set to "yes" mandatory

If injecting works, why change??? I have been using inject only for several years now with zero problems.

Installing and/or updating kexts in /Library/Extensions/ on Catalina is more of a pain than it has ever been before.
 
Okay, before we tackle USB ...

A few suggestions for config.plist if hardware is as your profile. I may be wrong so take care experimenting:

1) The only ACPI Rename you need is probably the HDAS to HDEF.

2) Un-tick all the ACPI "Fixes" and then tick the "FixShutdown" one.

3) Remove boot-flag "-disablegfxfirmware"

4) In the Graphics section deselect "InjectATI" (un-tick if using Clover Configurator).

Right, on to USB:

Your motherboard has 7x USB3 ports and 2x USB2 ports. This makes for a maximum number of ports of 16x.

Therefore you should see HS01 to HS14 and SS01 to SS07 in Hackintool. However it is possible Gigabyte have altered the usual layout and the port numbers do not correlate.

I get the impression you have USBInjectAll.kext installed in Library/Extensions ? It should not be used if USBPorts.ext is in place. Otherwise it will just confuse the scenario.

You can use USBInjectAll and the port-limit removal patches to open up all possible ports, however Gigabyte do not implement the full contingent on such a small motherboard. USBInjectAll will still open all it finds and the patch aims to reveal 26. Hence the USR ports.

I take it you have removed Gigabyte's default wifi/BT card and installed your own Broadcom one?

Let me know how you get on, then we can move forward.

:)

Thanks I'll try those changes in config.plist, my profile is up to date.

USBInjectAll.kext is not installed on L/E or anywhere else. Original BT is replaced with Apple Card from iMac2017 and its in the M.2 slot with adapter. I also have the BT and Wifi antennas from that iMac inside the case.
 
Hi UtterDisbelief, I have trouble to configure/reconfigure USB ports. Details are specified in this thread. Would you please provide some insight?
 
Hello, I just came from this thread where pastrychef has already helped me a lot. I started with a clean installation of Mojave and then jumped directly to Catalina because I wanted to restore my old MBP backup, which was created on Catalina, and I wanted to have this state for further use.
Now a freeze of the computer led me here, whereupon pastrychef recommended two guides, this one here of UtterDisbelief an this following quoted guide (I stepped to the beginners version of balazs631:
Thank you for the findings and for writing this guide RehabMan, I could make it work on my build! :clap:

I wrote a shorter guide for beginners not familiar with Hackintosh topics and the common inspector tools we use:
  • 1.) You can read "ioreg" several places but I cannot find a link or description at post #1 what ioreg actually is... So if you're wondering how you can view ioreg, there is an application called IORegistryExplorer (version 2.1 !), which you can download from here: https://www.tonymacx86.com/threads/guide-how-to-make-a-copy-of-ioreg.58368/ If you open it up it will show you a list in alphabetical order.. Look for the name "EC" (Embedded Controller), it will be before the FAN labels... If you can find the element called "EC" in there, continue with step 5.)
  • 2.) If the "EC" element is not there in the IORegistryExplorer, you need to check if you have EC0 or the H_EC name (or neither) under the hood in so called ACPI. There is another application to check that: MaciASL. It's also not mentioned in post #1, you can download it from here: RehabMan / OS-X-MaciASL-patchmatic / Downloads — Bitbucket. Open it up, press Command + F, and search for these terms: "Device (H_EC)" and "Device (EC0)". You will hopefully find the H_EC or the EC0 code block (not both). Don't bother with the meaning of the code you see, you don't have to understand it. There will be a code block in a few lines down, starting with "Method (_STA, ....". If you see a "Return (Zero)" in this {} block, then it means it's ignored as per post #1.
    So what we done in this step: You have to check if you have EC0 or H_EC device or neither in MaciASL. If you find EC0 or H_EC you need to check if it's ignored: "Return (Zero)" or not. Remember your findings...
  • 3.) Now you know what you have under the hood...
    • If you didn't have EC0 or H_EC device or it's returning Zero in method _STA, then you need to copy the file SSDT-EC.aml (attached to this post) to your main macOS drive's EFI partition, under EFI/CLOVER/ACPI/patched.
    • If you have found the EC0 or H_EC device in IORegistryExplorer and it's not returning Zero in method _STA, then you need to add a Clover config patch in EFI/CLOVER/config.plist to rename "EC0 to EC" or "H_EC to EC". Choose which one you have. The patch can be seen in post #1, under the title: "Insuring AppleBusPowerControllerUSB loads". In the picture, the config.plist file was opened in an application called Xcode, available free from the Mac App Store.
  • 4.) Restart you PC. Once macOS is loaded, open IORegistryExplorer again and check weather you see EC in the list. If "EC" shows up, everything is fine, continue with step 5.) If the name "EC" is still not there in IORegistryExplorer, start it over from 1.), more carefully.
  • 5.) Check your system definition in a built in macOS app called "System Information". Under the "Hardware Overview" section, you can find your system definition at "Model identifier", for example: iMac 18,3
    • If you have newer system definition than Macbook8,1 or MacBookAir7,2 or MacBookPro12,1 or MacPro6,1 or MacMini7,1 or iMac15,2 THEN copy the file SSDT-USBX.aml (attached to this post) to your main macOS drive's EFI partition, under EFI/CLOVER/ACPI/patched.
    • If you use one of the system def listed above or older, then you have nothing to do, continue with step 6.)
  • 6.) Restart your PC. Once macOS is loaded, plug in an iPhone or iPad to your Hackintosh with a USB cable. Open System Information app and choose the "USB" section from the left sidebar. Click on the iPhone or iPad in the list. If you can see all 4 lines you're won! ;)
    • Current Available (mA):
    • Current Required (mA):
    • Extra Operating Current (mA):
    • Sleep current (mA):
If all 4 lines are there, it's the obvious indicator of working USB power under macOS.

Hope this post will help others to understand the process described in post #1.

I have successfully completed this quoted guide of balazs631.
Arrived at this guide here, I am stuck at step 3.
When I plug in a USB 2/3 stick, it always appears on 2 ports simultaneously in the Hackintool program. See the attached pictures. So I can't filter out which port is not needed, or am I just not able to see the forest for the trees?
Does anyone here have any advice?

EDIT: After just taking a USB 3 drive to test the Ports, I got the following results:
Bild2-1.jpg

Bild2-2.jpg

Therefore I deleted every not used Port in Hackintool -> USB, exportet the USBPorts.kext -> Replaced the USBInjectall.kext in EFI/CLOVER/kexts/Other with the just exported USBPorts.kext.

After rebooting the system doesnt boot anymore, but is in a panic loop and keeps rebooting.
This got solved after pastrychef's tip of disabling all the 15 port limit KextsToPatches in config.plist.
 

Attachments

  • Bild-1.jpg
    Bild-1.jpg
    1.5 MB · Views: 54
  • Bild-2.jpg
    Bild-2.jpg
    1.3 MB · Views: 60
  • Bild-3.jpg
    Bild-3.jpg
    1.4 MB · Views: 87
Last edited:
Hello, I just came from this thread where pastrychef has already helped me a lot. I started with a clean installation of Mojave and then jumped directly to Catalina because I wanted to restore my old MBP backup, which was created on Catalina, and I wanted to have this state for further use.
Now a freeze of the computer led me here, whereupon pastrychef recommended two guides, this one here of UtterDisbelief an this following quoted guide (I stepped to the beginners version of balazs631:


I have successfully completed this quoted guide of balazs631.
Arrived at this guide here, I am stuck at step 3.
When I plug in a USB 2/3 stick, it always appears on 2 ports simultaneously in the Hackintool program. See the attached pictures. So I can't filter out which port is not needed, or am I just not able to see the forest for the trees?
Does anyone here have any advice?

EDIT: After just taking a USB 3 drive to test the Ports, I got the following results:
View attachment 443377
View attachment 443378
Therefore I deleted every not used Port in Hackintool -> USB, exportet the USBPorts.kext -> Replaced the USBInjectall.kext in EFI/CLOVER/kexts/Other with the just exported USBPorts.kext.

After rebooting the system doesnt boot anymore, but is in a panic loop and keeps rebooting.
This got solved after pastrychef's tip of disabling all the 15 port limit KextsToPatches in config.plist.

Hi there.

Happy to help, but I don't want to try to repeat all the good work @pastrychef has already done.

However I can check over your USB configuration if you have followed this guide. I need something to go on - config.plist, USBPorts.kext and a list of what's in EFI/CLOVER/kexts/Other (I've seen L/E in your previous thread) would help. Even an export from IORegistryExplorer.

:)
 
Thank you for your offer!
As you said @pastrychef already did a great job helping me!
However I'm glad you would take a look at my USB config.
The current status is:
For getting to the 15 port limit, I deleted USR1, USR2 because I don't know what these are. Pastrychef already confirmed that this is fine.
I also deleted HS03 and SS03, that is a blue USB 3.0 Port at the Back I/O Panel. I will just not use it to plug a drive in.
Then I generated a new USBPorts.kext file, replaced it in the EFI and rebooted. See attached files.
USB seems fixed for now, but maybe you could confirm that I did it the right way :)
 

Attachments

  • USBPorts.kext.zip
    1.2 KB · Views: 52
  • EFI:Clover:kexts:other.png
    EFI:Clover:kexts:other.png
    175.1 KB · Views: 51
  • config.plist
    12.5 KB · Views: 58
  • iOReg_iMac Pro.ioreg
    6.9 MB · Views: 61
  • Hackintool_USB.png
    Hackintool_USB.png
    127.1 KB · Views: 53
Thank you for your offer!
As you said @pastrychef already did a great job helping me!
However I'm glad you would take a look at my USB config.
The current status is:
For getting to the 15 port limit, I deleted USR1, USR2 because I don't know what these are. Pastrychef already confirmed that this is fine.
I also deleted HS03 and SS03, that is a blue USB 3.0 Port at the Back I/O Panel. I will just not use it to plug a drive in.
Then I generated a new USBPorts.kext file, replaced it in the EFI and rebooted. See attached files.
USB seems fixed for now, but maybe you could confirm that I did it the right way :)

Okay ...

I can see some serious problems but getting to the root cause is not straight forward.

USBPorts.kext seems to be 'in error' because it has allocated the same address to more than one port - HS13 has the same as SS01, and HS14 the same as SS02.

This is why neither of the SS ports appear in IORegistryExplorer. They do appear in Hackintool. So it seems Hackintool has a bug. I can not see what other factor might cause ports to have the same addresses.

So, how to remedy this?

I would:

1) remove USBPorts.kext

2) Install USBInjectAll.kext

3) Install/enable the port-limit removal patches for your macOS version.

4) Reboot and check IORegistryExplorer again. See the true layout of your ports.

It is also important to note that ASUS uses an add-on USB chipset by ASMedia for those Gen 2 ports. The Type-C and the Type-A (Red?) so they appear in the RP01 area of the IOReg tree. They are not a part of the configuration process we are trying to do.

:)
 
Okay ...

I can see some serious problems but getting to the root cause is not straight forward.

USBPorts.kext seems to be 'in error' because it has allocated the same address to more than one port - HS13 has the same as SS01, and HS14 the same as SS02.

This is why neither of the SS ports appear in IORegistryExplorer. They do appear in Hackintool. So it seems Hackintool has a bug. I can not see what other factor might cause ports to have the same addresses.

So, how to remedy this?

I would:

1) remove USBPorts.kext

2) Install USBInjectAll.kext

3) Install/enable the port-limit removal patches for your macOS version.

4) Reboot and check IORegistryExplorer again. See the true layout of your ports.

It is also important to note that ASUS uses an add-on USB chipset by ASMedia for those Gen 2 ports. The Type-C and the Type-A (Red?) so they appear in the RP01 area of the IOReg tree. They are not a part of the configuration process we are trying to do.

:)
Okay that does not sound good :D

Well, I just came from the USBInjectAll.kext and the patches. Are you sure I should roll back all the way?
So you get the true port layout when I do this and we can do it right?
Thanks for your help :)
 
Okay that does not sound good :D

Well, I just came from the USBInjectAll.kext and the patches. Are you sure I should roll back all the way?
So you get the true port layout when I do this and we can do it right?
Thanks for your help :)

I can only hope.

Your choice what we do, to be honest. I'm just trying to figure out why and where things went wrong. If this *is* a bug in Hackintool and not something else, we need to use a different way to configure your ports.

At present I can only see a problem with Hackintool, so using the older method should highlight any issues.
 
Back
Top