Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,183
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I have USBInjectAll.kext installed in my ⁨EFI⁩ ▸ ⁨CLOVER⁩ ▸ ⁨kexts⁩ ▸ ⁨Other⁩ folder right now.

Should i leave it there, while installing USBInjectAll.kext to /Library/Extensions like this guide says?
Hi there.

Short answer:

If it is the same version, it should be fine. Double-check by right-clicking etc. :thumbup:

Longer answer:

If you already have it installed in CLOVER/kexts/Other there is no need to install it again. The official guidance states that third-party kexts should always go in L/E, however for kexts needed to boot it is useful to put them in the EFI folder because this helps when updating the system. USBInjectAll is not one needed to boot, but it is needed to get all USB ports operational using an SSDT.

:)
 
Last edited:
Joined
Apr 9, 2017
Messages
68
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
Ok...so during the creation of the SSDT phase, as well as afterwards, leave USBInjectAll.kext in either L/E or Clover/kexts/Other, both location is fine, correct?

also, what about FakePCIID.kext & FakePCIID_XHCIMux.kext? Can they be installed in both locations as well? Do they need to be installed prior to the port discovery? How do I know I need them? My BIOS does have such an option to enable EHCI Hand-Off.
 
Joined
Apr 9, 2017
Messages
68
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
Comment: “Change XHC1 to XHC_” Find*: “58484331” Replace: “5848435f”

where did you get those values?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,183
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Ok...so during the creation of the SSDT phase, as well as afterwards, leave USBInjectAll.kext in either L/E or Clover/kexts/Other, both location is fine, correct?

also, what about FakePCIID.kext & FakePCIID_XHCIMux.kext? Can they be installed in both locations as well? Do they need to be installed prior to the port discovery? How do I know I need them? My BIOS does have such an option to enable EHCI Hand-Off.
Okay.

1) After you have created your SSDT you still need USBInjectAll.kext. Most people keep it in L/E. But as we discussed before... etc

2) The FakePCIID_XHCIMux.kext is used with EHCI controllers. If you have very many USB ports you can divert the USB2 ports to EHC instead, leaving XHCI for USB3. Personally I go with only XHC and have no need for EHC. In your case I would try without EHC first as you have an SSDT ( so no FakePCIID_XHCIMux.kext). But that is your choice. If you are going to use it, put it in L/E.

I am not a fan of duplicate kexts anywhere. However it makes sense to have FakeSMC.kext in EFI/CLOVER/kexts/Other. See this guide for more detail.

:)
 
Last edited:

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,183
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Comment: “Change XHC1 to XHC_” Find*: “58484331” Replace: “5848435f”

where did you get those values?
No need to use anything you do not want to. This is just a Beginner's Guide to USB port config.

Nothing is compulsory. Please do your own research if you would rather use a different method etc:thumbup:
 
Joined
Apr 9, 2017
Messages
68
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
No need to use anything you do not want to. This is just a Beginner's Guide to USB port config.

Nothing is compulsory. Please do your own research if you would rather use a different method etc:thumbup:
Nono i was wondering where you got those values from, and if it should be different for my motherboard.
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,183
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Nono i was wondering where you got those values from, and if it should be different for my motherboard.
Ah, right :thumbup:

The value should be the same. All it is doing is renaming a controller to match what macOS expects. Changing a byte. Check 31 and 5f character codes in hexadecimal :). The chances are you will not need it.

Check IORegistryExplorer and see if XHC shows up before using it. For example I do not need it. You might not either.

:)
 
Joined
Mar 30, 2018
Messages
11
Motherboard
Asus Maximus VII Hero
CPU
i7-4790K
Graphics
HD 4600
I tried my best and follow every instruction but I think it is not working as it should be. When I check it with IORegistryExplorer it shows the same number of ports that were showing before patching. I have attached both the template file and a screenshot of IORegistryExplorer result.

Any help will be highly appreciated. Thank you very much.
 

Attachments

Joined
Apr 9, 2017
Messages
68
Motherboard
ASUS ROG MAXIMUS VI HERO
CPU
i5-4670K OC 4.5 GHz
Graphics
GTX 780, HD 530
I tried disabling the rename XHC patches and looks like the results are the same in IORegistryExplorer.

For my specific motherboard, under System Report, I have 3 USB devices, a USB 2.0 BUS with 8C26 device id, another USB 2.0 BUS with 8C2d device id, and a USB 3.0 BUS with 8C31 device id.

The two USB 2.0 BUS corresponds to two EHCI USB 2.0 Headers on the motherboard. One of them connected to the USB 2.0 ports on the front of the case, the other is connected to the Wifi/BT card.

Please help me with the following questions I have

1) Can I ignore the EHCI kexts? just use XHC? Every single port seems to be showing up under XHC in IORegistryExplorer.

2) How many devices/packages should I have in the SSDT file? Can i simply use 8086_8xxx since all three devices starts with an 8?


402244
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,183
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I tried my best and follow every instruction but I think it is not working as it should be. When I check it with IORegistryExplorer it shows the same number of ports that were showing before patching. I have attached both the template file and a screenshot of IORegistryExplorer result.

Any help will be highly appreciated. Thank you very much.
Hello there.

Please complete your hardware Profile so that we can help you with your problem. It's a part of the site Rules :thumbup:

Okay, well I'm guessing you have a Z97 or similar motherboard (?) But I can't tell which macOS.

Your SSDT has many errors in it. For example you use the same address for many ports. HS01 is 0x01 and so is SS01. Four ports use 0x09 and two ports use 0x0a. Each port should have a unique address. Please check the guide again.

:)
 
Top