Contribute
Register

XHC USB Kext Creation Guideline

Status
Not open for further replies.
Hello
Here are my IOReg with and without the patch USBportlimit.
(It's the right patch for 10.13.6)

I see no difference .... I need help I'm clueless !!
Thanks in advance.

Are you booting your PC without any USB kext in your EFI-Folder for the initial port discovery? It does not seem to be the case when investigating your IOREG results.. Also it seems that yet you are still not using any adequate port limit patch. What is exactly your current 10.13.6 macOS build version?

I would expect the following OSX emergency XHC USB Configuration (no USB kext in your EFi-Folder) with a working port limit patch:

Code:
HS01
HS02
HS03
HS04
HS05
HS06
HS07
HS08
HS09
HS10
HS11
HS12
HS13
HS14
SS01
SS02
SS03
SS04
SS05
SS06

Cheers,

KGP
 
Last edited:
Are you booting your PC without any USB kext in your EFI-Folder for the initial port discovery?
Yes I think so. My kexts folder is attached.
What is exactly your current 10.13.6 macOS build version?
SystemInfo.png
Also it seems that yet you are still not using any adequate port limit patch.
My config.plist is attached.
I would expect the following OSX emergency XHC USB Configuration (no USB kext in your EFi-Folder) with a working port limit patch:

Code:
HS01
HS02
HS03
HS04
HS05
HS06
HS07
HS08
HS09
HS10
HS11
HS12
HS13
HS14
SS01
SS02
SS03
SS04
SS05
SS06
Yes I agree, and that is very clear in your GUIDE.
Thanks again for helping
 

Attachments

  • kexts.zip
    1.2 MB · Views: 104
  • config.plist
    22 KB · Views: 134
I try to boot
- with USBInjectAll.kext, All HSxx ans SSxx Port in IOregisteryExplorer, but none SSxx port are active when I try to discover the SSxx port by plugging an USB 3.0 devices.
- with USBInjectAll.kext and XHCI-unsupported.kext, All HSxx ans SSxx Port in IOregisteryExplorer, and SSxx Show the USB 3.0 when I try to discover the SSxx port. ....
I don't understand why
I think I need to follow the RehabMan Guide ....
Any advice is much appreciated.
Thanks in advance
 
Last edited:
I try to boot
- with USBInjectAll.kext, All HSxx ans SSxx Port in IOregisteryExplorer, but none SSxx port are active when I try to discover the SSxx port by plugging an USB 3.0 devices.
- with USBInjectAll.kext and XHCI-unsupported.kext, All HSxx ans SSxx Port in IOregisteryExplorer, and SSxx Show the USB 3.0 when I try to discover the SSxx port. ....
I don't understand why
I think I need to follow the RehabMan Guide ....
Any advice is much appreciated.
Thanks in advance

I don't understand the problem. If you now see all HS and SS ports in IOREG, you can also complete your XHC USB kext. Once you boot your system with the fully implemented XHC USB kext (with all HS and SS ports required for your onboard USB connectors/headers implemented and configured) in your EFI-Folder, all SS-ports will be also active when plugging a USB3.0 device. Subsequently, you can perfectly create the truncated 15-port XHC USB kext out of it, having all necessary information available.

BTW.. There is something weird with your config.plist. Following your profile, you are employing a i9-7900X but you are using FakeCPUID 0x040674 and xcpm_pkg_scope_msrs © Pike R. Alpha as well as Broadwell-E performance patch PMHeart. Remove all!

Good luck,

KGP
 
If you now see all HS and SS ports in IOREG, you can also complete your XHC USB kext
Okay. I will do that. But you mention specifically in you guide not to have any other USBxxxx.kext for SSxx port discovery. I've learn something Thanks
BTW.. There is something weird with your config.plist.
It's not my Hackintosh, thus I clearly write the motherboard model in the message.
I can add it to my signature, it doesn't bother me

Thanks again.
 
First I have to apologise to everybody here, for using the knowledge of the community for years now, without giving something back. Thanks to KGP and RehabMan for lots of knowledge, regarding this topic.

I made the kext for the Gigabyte z170x designare and will upload it as soon as possible.
I have thrown out everything useless and also the USB2 connectors at the Front Panel.
The Problem, that took me a while, was that I had to change "XHCI" to just "XHC" as IONameMatch in the "info.plist".

btw: my "restart issue" is also solved since I stayed within the Portlimit. I use no Portlimit Patch (config.plist) and no USBinjectAll.kext (EFI kext folder).

I will do kexts for Asus ROG Maximus Hero X (z370) and Gigabyte z390 Designare in the next days as well.


I found also another solution for the Portlimit-Problem. You can also throw out unused ports in Clover Configurator.

Example: "uia_exclude=HS03;HS04;HS05;HS06;HS07;HS08;HS09;HS10;HS11;HS12;SS01;USR1;USR2" (under "Boot").

This seems to be the easiest way? Everything works after that. Is this a "bad" way?


Update 01.01.2019: Port Layout updated, Both internal USB2.0 connectors checked but disabled

edited: actual kexts attached
 

Attachments

  • Racke-iMac17.3-Gigabyte-Z170-Designare-XHC-15Port.kext.zip
    3.8 KB · Views: 59
  • Racke-iMac17.3-Gigabyte-Z170-Designare-XHC.kext.zip
    3.7 KB · Views: 56
Last edited:
First I have to apologise to everybody here, for using the knowledge of the community for years now, without giving something back. Thanks to KGP and RehabMan for lots of knowledge, regarding this topic.

I made the kext for the Gigabyte z170x designare and will upload it as soon as possible.
I have thrown out everything useless and also the USB2 connectors at the Front Panel.
The Problem, that took me a while, was that I had to change "XHCI" to just "XHC" as IONameMatch in the "info.plist".

btw: my "restart issue" is also solved since I stayed within the Portlimit. I use no Portlimit Patch (config.plist) and no USBinjectAll.kext (EFI kext folder).

I will do kexts for Asus ROG Maximus Hero X (z370) and Gigabyte z390 Designare in the next days as well.


I found also another solution for the Portlimit-Problem. You can also throw out unused ports in Clover Configurator.

Example: "uia_exclude=HS03;HS04;HS05;HS06;HS07;HS08;HS09;HS10;HS11;HS12;SS01;USR1;USR2" (under "Boot").

This seems to be the easiest way? Everything works after that. Is this a "bad" way?


Update: I am new to GitHub and am not allowed to upload. Can somebody please upload the file for me?

You can even disable USB ports in your mobo BIOS. Clover seems another way.

It would be gorgeous if you could upload here both fully implemented and truncated 15-port XHC USB kexts for the motherboards you mention above. Each kext should also implement a port-layout.rtf for the specific mainboard.

As soon as possible, I will revise your XHC USB kexts and come back to you in case of necessary improvements. As soon as all kexts are properly implemented, I will add them to the respective Github library. Many thanks in advance for all your contributions.
 
This has been challenging with this board Asus Tuf Z390m-Pro Gaming. The USB identifier is native so without any USB kext all USB ports are recognized, but only 2 SS ports work for USB 3.0. Never can I remove or add any ports. with or without following your guide, removing ports in bios or clover. Attached IORegistryExplore never changes except to show my kext from your guide was loaded, but no ports listed under IOPowermanagment.
 

Attachments

  • Screen Shot 2018-12-31 at 6.43.09 PM.png
    Screen Shot 2018-12-31 at 6.43.09 PM.png
    221.6 KB · Views: 54
  • iMacPro-Asus Tuf Z390m-XHCI (15).kext.zip
    2.7 KB · Views: 62
  • config.plist
    25.5 KB · Views: 119
This has been challenging with this board Asus Tuf Z390m-Pro Gaming. The USB identifier is native so without any USB kext all USB ports are recognized, but only 2 SS ports work for USB 3.0. Never can I remove or add any ports. with or without following your guide, removing ports in bios or clover. Attached IORegistryExplore never changes except to show my kext from your guide was loaded, but no ports listed under IOPowermanagment.

Remove some of the HS ports from the kext or disable some USB ports in clover or BIOS and you will find the not yet implemented SS ports. Without implementing all SS ports, most of your USB3.0 connectors will only work as USB2.0. If your mobo requires more than 15 HS/SS ports it is no surprise that only 2 SS ports are implemented.

How to establish a XHC USB kext under a macOS build without working port limit patch is explicitely explained at the end of my guide in the originating post of this thread.

Good luck
 
Thanks kgb,

I've throughly read your guide several times and understand what your saying. That's exactly what I've done is eliminate HS ports to make room for the six SS ports.
Still no joy. Yes I've tried the USB port elimination from BIOS and clover too.

If you or someone can glance at my iMac pro Asus kext that I created following your guide and give me any advice I would greatly appreciate it. Thanks.
 
Last edited:
Status
Not open for further replies.
Back
Top