Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Wao. My system is becoming unstable and I think it's all down to the USB issue. Having read this post, I set out to attempt to tame the myriad USB ports I have on the system. However Hackingtool is showing me some strange USB hosts in addition to the XHC. I'm not sure whether to delete them and leave only the XHC or what to do. See attached for the mess that's in my system.
 

Attachments

  • Screenshot 2020-10-26 at 1.09.08 PM.png
    Screenshot 2020-10-26 at 1.09.08 PM.png
    167.5 KB · Views: 91
Wao. My system is becoming unstable and I think it's all down to the USB issue. Having read this post, I set out to attempt to tame the myriad USB ports I have on the system. However Hackingtool is showing me some strange USB hosts in addition to the XHC. I'm not sure whether to delete them and leave only the XHC or what to do. See attached for the mess that's in my system.

Hi there.

All looks normal with one exception.

EHC ports are legacy USB2

XHC are current tech USB2/3

PXSX are ports supplied by the add-on ASMedia USB controller.

These are all present because of the Z97 chipset (EHC and XHC) and ASUS's choice to add even more ports using an extra controller (ASMedia).

The PXSX/ASMedia ports do not count in your 15-limit and are not easy to confirgure so we usually ignore them. They will very often work fine although there is no power regulation.

Depending on how your mapping of the ports goes, remember that a USB3 port can also act as a USB2 port.

There are controls when using USBInjectAll.kext to make the older EHC ports "invisible" while you confirgure the XHC - and vice-versa. How you might use this would depend on which ports you choose to use and keep.

As for the USB ports causing system instability, in your case it might be caused by the kext or hardware that is showing in the top line of the Hackintool listing. A Vendor ID of 0x1597 and Device ID 0x0004 is odd.

Consider checking what kexts you have in Library/Extensions and EFI/CLOVER/kexts/Other.

:)
 
Last edited:
Hi, first of all thank you for the great tutorial; it was "easy" even if I'm quite a noob.
I'm having some problem right now.
I successfully created my custom usb ssdt in march.
Now I've updated my machine, adding a fenvi 1200m, with the purpose of having wifi and bluetooth.
Of course, the bluetooth is not working (it doesn't even appear in the system report); I suppose it's because of the ssdt ( in march I excluded that part of the mobo, wich was unused).

So I tried to change the configuration on the ssdt, but here's the problem: I'm no longer able to inject all of the usb, and because of that, in iORegistryExp I can only see the ports previously configured.
I followed the guide trying "everything" (USBInjectAll with kextbeast, Port-Limit Removal Patch using MultiBeast), but this time none of that worked.
What should I do? Thanks in advantage
 
Hi, first of all thank you for the great tutorial; it was "easy" even if I'm quite a noob.
I'm having some problem right now.
I successfully created my custom usb ssdt in march.
Now I've updated my machine, adding a fenvi 1200m, with the purpose of having wifi and bluetooth.
Of course, the bluetooth is not working (it doesn't even appear in the system report); I suppose it's because of the ssdt ( in march I excluded that part of the mobo, wich was unused).

So I tried to change the configuration on the ssdt, but here's the problem: I'm no longer able to inject all of the usb, and because of that, in iORegistryExp I can only see the ports previously configured.
I followed the guide trying "everything" (USBInjectAll with kextbeast, Port-Limit Removal Patch using MultiBeast), but this time none of that worked.
What should I do? Thanks in advantage

Hi there.

Assuming a Clover bootloader...

Ensure USBInjectAll.kext is installed in EFI/CLOVER/kext/Other - instead of using KextBeast which only offers S/L/E or L/E as location options.

Enable any port-limit removal patch you might have tried for your macOS version.

Remove any SSDT you may have created previously.

Reboot and check Hackintool or IORegistryExplorer. You should now see all available ports (26?). The Bluetooth header port should now be visible in the list. Note the port number.

Now you can recreate your SSDT and sacrifice one of the other ports so you can enable the BT header :thumbup:
 
Having trouble with my XHC results in OpenCore 0.6.3. The pair of pics below shows IORegistryExplorer displays when booted from Clover R5126 and when booted via USB flash drive from OpenCore 0.6.3. As far as I can tell, MacOS 10.5.7 (build 19H15) works just fine in all respects with either booter, except for the discrepancy in my USB ports-enabled setup. I use the identical SSDT in both cases, but results are unacceptable in OpenCore. I have been advised that since OpenCore has no "automerge" function, that the "ACPI/Delete" function operating on my DSDT's "SSDT-6-AMI.aml" file has to be run before my edited "SSDT-6-AMI.aml" file is installed in OpenCore's "ACPI/Add" area in the config.plist. But it doesn't work, and I cannot find any reference in the GitHub Guides anywhere about this problem. Any advice or comments here would be appreciated, thanks!

[Edit: Attached my OpenCore EFI folder located on the USB flash drive.]

XHC Clover vs OC.jpg
 

Attachments

  • EFI.zip
    1.8 MB · Views: 78
Last edited:
Having trouble with my XHC results in OpenCore 0.6.3. The pair of pics below shows IORegistryExplorer displays when booted from Clover R5126 and when booted via USB flash drive from OpenCore 0.6.3. As far as I can tell, MacOS 10.5.7 (build 19H15) works just fine in all respects with either booter, except for the discrepancy in my USB ports-enabled setup. I use the identical SSDT in both cases, but results are unacceptable in OpenCore. I have been advised that since OpenCore has no "automerge" function, that the "ACPI/Delete" function operating on my DSDT's "SSDT-6-AMI.aml" file has to be run before my edited "SSDT-6-AMI.aml" file is installed in OpenCore's "ACPI/Add" area in the config.plist. But it doesn't work, and I cannot find any reference in the GitHub Guides anywhere about this problem. Any advice or comments here would be appreciated, thanks!

[Edit: Attached my OpenCore EFI folder located on the USB flash drive.]

View attachment 499021

Hi there.

Interesting problem.

As an alternative to your SSDT-6-A M I.aml why not build a USBPorts.kext using Hackintool for the same ports you require, and installing that instead? You can disable/remove the SSDT and test.

Your method above is purer but if OC is preventing merging then this is a viable alternative. My own Catalina build uses this method and the ports are configured correctly, so worth trying.

:)
 
Nope. Hackintool technique gives same results; see attached IORegistryExplorer display and my current EFI folder. If I'm doing something wrong, I don't know what it is. BTW, Hackintool initially showed duplicate entries of all my HSxx and SSxx ports except for HS13 (the USB-C port). Don't know why. Pic of that attached too.
OpenCore per Hackintool.jpg
 

Attachments

  • EFI.zip
    1.8 MB · Views: 72
  • Too Many Ports Shown.jpg
    Too Many Ports Shown.jpg
    168.9 KB · Views: 62
Last edited:
Nope. Hackintool technique gives same results; see attached IORegistryExplorer display and my current EFI folder. If I'm doing something wrong, I don't know what it is. BTW, Hackintool initially showed duplicate entries of all my HSxx and SSxx ports except for HS13 (the USB-C port). Don't know why. Pic of that attached too.
View attachment 499258

Gosh yes. That's one Hackintool mess alright.

Okay, it looks as though you have created a fine USBPorts.kext despite what you've shown us. I checked it over and it looks spot-on.

What you don't appear to have done is declare the USBPorts.kext in your OC config.plist, so it is not being used. All the other kexts in your OC/kexts folder are listed, just not the one we need.

:)
 
Okay, I selected USBPorts.kext from the ACPI folder and dragged it into the config.plist's "Kernel" window. Now OpenCore won't boot MacOS at all. It hangs up with an Apple icon but no progress bar. And it doesn't matter whether or not my "SSDT-USB.aml" file is in the ACPI folder or not... same either way. Here is the latest EFI folder for your perusal. What now?
 

Attachments

  • EFI.zip
    1.8 MB · Views: 71
Back
Top