Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
May 14, 2019
Messages
6
Motherboard
GA-H170M-DS3H
CPU
i5-6400
Graphics
GTX 750 Ti
Mac
iMac
Classic Mac
iMac
Mobile Phone
Android, iOS
My suggestion was just check the "port-count" value etc. you have used. It doesn't look right. But if you are happy "0x00" is correct, that's fine. Sorry I couldn't help.
Yes, you was right, fixed "port-count" and works!!! Thnk you!
 
Joined
Sep 20, 2012
Messages
45
Motherboard
ASUS ROG MAXIMUS HERO X Z370
CPU
i9-9900K
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi UtterDisbelief,

I gave it a try today and followed your guide, but I did not succeed.
Could you please give it a look ? I configured port HS01-HS09 + SS01-SS06.
In IOReg there's also something I don't quite understand;
HS14 is displayed as AURA LED controller, but I could not find this as an internal USB connection,
nor did I connect any RGB bling.
Do you think I can ignore HS14, or should I include it in the maximum of 15 ports ?

Thank you for all the help & efforts !

Kind regards,

Chimiel
 

Attachments

Last edited:
Joined
Apr 29, 2012
Messages
178
Motherboard
ASUS ROG Mamimus XI Hero (Wifi)
CPU
i9-9900K
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
Hello. Well, I guess I need some help. I've got a slew of Kext patches in my config.plist (see attached). Everything works, and I' a believer in "if it ain't broke..." BUT several folks who I respect and who know more than I do, swear up and down that my system will be more stable, faster, and make me breakfast in the morning, if I will just limit my ports to 15, and get rid of all those patches. Good enough. I'm all for rock-solid.

So, I thought I'd followed the instructions carefully. But in exchange, I got a 4-hour journey trying to even get access to my machine again. Even the original Unibeast stick wouldn't boot it. I'd get thru the second white apple... and the machine would do a hard reboot, no matter what I tried. (snip, thankfully... ;-)_ Well, I finally got back to my pre-adventure setup, and while this may be foolish, I'm willing to give it a go again, if it really will make things better.

One thing I may have fouled up, is that if a USB 3 port was ONLY going to be used for USB 3, then I thought I could just activate the SS and leave the HS out. Maybe wrong? Maybe wrong on HS01/SS01 even though SS01 didn't show as used?

I have 2 PCIe cards, which show up in the device tree as "USB 3.0 Bus"
Host Controller Driver: AppleUSBXHCIFL1100
PCI Device ID: 0x1100 PCI Revision ID: 0x0001 PCI Vendor ID: 0x1b73

the "USB 3.1 Bus" however seems to be "the one":
Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086

... so that's what I used for my SSDT-USB template (see attached)

I thought I was careful and cautious, thinking that if I left my kext patches in the config.plist, all would be well.
Just enough knowledge to be dangerous, and I obviously blew it up.

So: if you're seeking a few guffaws at my expense or are just bored, I've attached my config.plist, the SSDT-USB template I used, and screencap of the original HS/SS ports.

Thanks to any and all who care to dip their toes into this mess I've made.
orig ports.jpg
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,755
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hello. Well, I guess I need some help. I've got a slew of Kext patches in my config.plist (see attached). Everything works, and I' a believer in "if it ain't broke..." BUT several folks who I respect and who know more than I do, swear up and down that my system will be more stable, faster, and make me breakfast in the morning, if I will just limit my ports to 15, and get rid of all those patches. Good enough. I'm all for rock-solid.

So, I thought I'd followed the instructions carefully. But in exchange, I got a 4-hour journey trying to even get access to my machine again. Even the original Unibeast stick wouldn't boot it. I'd get thru the second white apple... and the machine would do a hard reboot, no matter what I tried. (snip, thankfully... ;-)_ Well, I finally got back to my pre-adventure setup, and while this may be foolish, I'm willing to give it a go again, if it really will make things better.

One thing I may have fouled up, is that if a USB 3 port was ONLY going to be used for USB 3, then I thought I could just activate the SS and leave the HS out. Maybe wrong? Maybe wrong on HS01/SS01 even though SS01 didn't show as used?

I have 2 PCIe cards, which show up in the device tree as "USB 3.0 Bus"
Host Controller Driver: AppleUSBXHCIFL1100
PCI Device ID: 0x1100 PCI Revision ID: 0x0001 PCI Vendor ID: 0x1b73

the "USB 3.1 Bus" however seems to be "the one":
Host Controller Driver: AppleIntelCNLUSBXHCI
PCI Device ID: 0xa36d
PCI Revision ID: 0x0010
PCI Vendor ID: 0x8086

... so that's what I used for my SSDT-USB template (see attached)

I thought I was careful and cautious, thinking that if I left my kext patches in the config.plist, all would be well.
Just enough knowledge to be dangerous, and I obviously blew it up.

So: if you're seeking a few guffaws at my expense or are just bored, I've attached my config.plist, the SSDT-USB template I used, and screencap of the original HS/SS ports.

Thanks to any and all who care to dip their toes into this mess I've made.View attachment 406838
Hi there.

No one's laughing. Getting a Hackintosh to work correctly, or as near as the real thing, can be fraught with problems. Like you I actually believe that "if it aint broke, don't fix it" too. I can understand why you want to get your system USB to work as a real Mac though.

Okay, looking at your files:

1) The IORegistryExplorer screen grab shows the port-limit removal patch is working nicely :thumbup:

2) In your config.plist you should remove or disable all the other port-limit removal patches except the one for your macOS. I'm guessing you have installed Mojave 10.14.5, so remove/disable all those 10.13 port-limit patches.

3) In your SSDT there is an error for your HS14 bluetooth header port. You have the port address as "0x03" when I think it should be "0x0e".

Otherwise all looks good.

Once the USB ports are all working as intended you can then disable the port-limit removal patch. Leave USBInjectAll.kext in place though.

If the problem persists then check what other kexts you installed to work with USB.

:)
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,755
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hi UtterDisbelief,

I gave it a try today and followed your guide, but I did not succeed.
Could you please give it a look ? I configured port HS01-HS09 + SS01-SS06.
In IOReg there's also something I don't quite understand;
HS14 is displayed as AURA LED controller, but I could not find this as an internal USB connection,
nor did I connect any RGB bling.
Do you think I can ignore HS14, or should I include it in the maximum of 15 ports ?

Thank you for all the help & efforts !

Kind regards,

Chimiel
Hi there,

1) There is one error in the SSDT I can see. For the package type at the top you have "8086_a2f" but this should be "8086_a2af". The second 'a' is missing.

2) Looking at your IORegistryExplorer output it shows you have the port-limit removal patch in place and all available chipset ports enabled on XHCI so that is fine :thumbup:

3) The Aura internal USB port can be configured if you want to, but if you don't and are not going to use the LED lighting, then it should be okay to ignore it.

4) Your motherboard features an additional ASMedia chipset controller for the Red ports on the back and case-front ports (according you ASUS Specs etc). These seem to be showing up okay in the XHCI tree - which is a good thing.

:)
 
Joined
Sep 20, 2012
Messages
45
Motherboard
ASUS ROG MAXIMUS HERO X Z370
CPU
i9-9900K
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi there,

1) There is one error in the SSDT I can see. For the package type at the top you have "8086_a2f" but this should be "8086_a2af". The second 'a' is missing.

2) Looking at your IORegistryExplorer output it shows you have the port-limit removal patch in place and all available chipset ports enabled on XHCI so that is fine :thumbup:

3) The Aura internal USB port can be configured if you want to, but if you don't and are not going to use the LED lighting, then it should be okay to ignore it.

4) Your motherboard features an additional ASMedia chipset controller for the Red ports on the back and case-front ports (according you ASUS Specs etc). These seem to be showing up okay in the XHCI tree - which is a good thing.

:)
YES YES YES !
It works !
Thank you sooooooooooo much !
 

Attachments

Joined
Apr 29, 2012
Messages
178
Motherboard
ASUS ROG Mamimus XI Hero (Wifi)
CPU
i9-9900K
Graphics
Vega 64
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
iOS
Hi there.
No one's laughing. (snip)
Well, I'm smiling at least: your catches of my errors worked just fine, and I've finally ready to settle down and start using this beast.

Deepest thanks for your help and courtesy!
 
Joined
Sep 21, 2013
Messages
554
Motherboard
Gigabyte Aorus Z370 GA-7
CPU
i7-8700K
Graphics
RX 580
Mac
MacBook, MacBook Pro, Mac mini
Classic Mac
Classic, iBook, Power Mac, PowerBook, Quadra, SE/30
Mobile Phone
Android, iOS
Hello there. I just did a bunch of port discovery activities today using i/o and observed the same conditions using Hackintool, just to see if that program contradicted my findings. I have some lists regarding my mobo and my Fractal case.
Although I've discovered my mobo (and case) ports, I'm finding it difficult to wrap my head around editing an existing SSDT patch, even with the required software tools.

I'm also wondering about the latest USB Port Limit Patches #1, #2, and #3 by PMHeart (found in the kext patch drop-down menu in Clover Configurator) and its possibility of eliminating the need for the USBInjectAll.kext or XHC USB type of kext. -I just don't know which method is "better" –I just want to make my build as awesome as possible.
Thanks in advance for bearing with me here. CC: @jb007
 

Attachments

Last edited:

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,755
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Hello there. I just did a bunch of port discovery activities today using i/o and observed the same conditions using Hackintool, just to see if that program contradicted my findings. I have some lists regarding my mobo and my Fractal case.
Although I've discovered my mobo (and case) ports, I'm finding it difficult to wrap my head around editing an existing SSDT patch, even with the required software tools.

I'm also wondering about the latest USB Port Limit Patches #1, #2, and #3 by PMHeart (found in the kext patch drop-down menu in Clover Configurator) and its possibility of eliminating the need for the USBInjectAll.kext or XHC USB type of kext. -I just don't know which method is "better" –I just want to make my build as awesome as possible.
Thanks in advance for bearing with me here. CC: @jb007
Hi there.

Which method you go with is basically your call. Hackintool produces both a USBPorts.kext, which allows removal of USBInjectAll.kext - AND - it now produces an SSDT_UIAC.aml which does need USBInjectAll.kext (because the SSDT is a configuration file for the kext). So it caters for both approaches in one go. Some people prefer the original Hackintool method using a codeless kext. If you want to explore that avenue further you should check out the ASUS Guide here, by @MacMan . It shows you how to implement this method and if you keep reading you'll see other members have used this to configure Gigabyte motherboards too.

Your port-limit removal patches seem to be working fine in that screen grab. (Remember there is a new patch for 10.14.5 now).

The reason why your Red USB back-panel port appears in the "RP" section of the IORegistryExplorer tree is because it is controlled by an ASMedia chipset. Similarly your Thunderbolt 3 card appears here too, even though it is an Intel chipset, as it is not the main Z370 XHC etc.

All of this of course, is way beyond a Beginner's Guide!

If you have a specific problem a good idea would be to start a new thread so that the experts out there will take a look. They are rarely going to investigate a beginner's guide etc. :thumbup:

:)
 
Top