Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
Okay, understood :thumbup:

1) Create a USBPorts.kext to replace USBInjectAll and the SSDTs
or
2) Create a pair of SSDTs that do work with, and need, USBInjectAll.

It's much more 'visual' method and smoothes the rough edges off doing the job completely manually.

:)
If by "visual" you mean "easier for someone who really doesn't know what he is doing" then let's do visual. What's next? Does this fall within the scope of this thread?
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,865
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
If by "visual" you mean "easier for someone who really doesn't know what he is doing" then let's do visual. What's next? Does this fall within the scope of this thread?
You're doing pretty well so far :thumbup:

No, sadly I can't support someone else's work here. Hackintool is a brilliant and comprehensive tool, covering way more than just USB, you would need to look to its thread if you want guidance.

However take a look at this:

HT.jpg

Click on the icon, bottom-right to output the configuration files.

Use the SSDTs, files 1 & 2, with USBInjectAll instead of your own SSDT - OR - Remove your SSDT and the USBInjectAll.kext and install USBPorts.kext, file 3, instead.

For more detail head on over to the thread.

:)
 
Joined
May 15, 2013
Messages
56
Motherboard
Asus Sabertooth X79
CPU
Xeon E5 1650 v2
Graphics
GT 740
You're doing pretty well so far :thumbup:

However take a look at this:


Click on the icon, bottom-right to output the configuration files.

Use the SSDTs, files 1 & 2, with USBInjectAll instead of your own SSDT - OR - Remove your SSDT and the USBInjectAll.kext and install USBPorts.kext, file 3, instead.

For more detail head on over to the thread.

:)
I clicked on the bottom right icon and a message came up to rename EC0>EC & SAT0>SATA. I found USBPorts.kext & SSDT-UIAC.aml on the desktop & put them in appropriate places in EFI/Clover/... I deleted my SSDT-USB-Template.aml, USBInjectAll & uia_exclude command, added GenericUSBXHCI. (The older IOReg had EH01 > PR11 > HP11 to HP18 all coming off PR11, then PR12-18 continued branching from EH01.)

Now HP11-18 ports are all directly coming off EH01. And off the EH02 node are ports HP21-22 followed by several PRxx ports...

Everything USB seems to be working. I'm going to read up on Hackintool. Thank you for shining the light!
 
Last edited:
Joined
Mar 4, 2014
Messages
318
Motherboard
GA-Z87-HD3
CPU
i5-4570
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi @UtterDisbelief

I'm having some issues with setting up my USB, I thought it was good but I'm starting from scratch. Would appreciate help if you have the time....

To prepare for port discovery, I have done this rename:
Screenshot 2019-08-30 at 23.06.50.png

Then I installed the port limit patches using Multibeast:
Screenshot 2019-08-30 at 23.09.50.png

Then I installed USBInjectAll Kext to library/extensions. I already have FakePCIID_XHCIMux.kext and FakePCIID.kext installed, then rebooted

Questions:

1. Do I need the XHC1 rename with my hardware?
2. I plan to now do port discovery with Hackintool, have I done everything I need to do? When I look in ioReg I see devices on EH01 and EH02 and XHC, is this as it should be?

Many thanks for help, problem reporting files attached
 

Attachments

Last edited:

UtterDisbelief

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

I'm having some issues with setting up my USB, I thought it was good but I'm starting from scratch. Would appreciate help if you have the time....

To prepare for port discovery, I have done this rename:
View attachment 423851

Then I installed the port limit patches using Multibeast:
View attachment 423852

Then I installed USBInjectAll Kext to library/extensions. I already have FakePCIID_XHCIMux.kext and FakePCIID.kext installed, then rebooted

Questions:

1. Do I need the XHC1 rename with my hardware?
2. I plan to now do port discovery with Hackintool, have I done everything I need to do? When I look in ioReg I see devices on EH01 and EH02 and XHC, is this as it should be?

Many thanks for help, problem reporting files attached
Hello there.

I don't offer support for Hackintool here. That's an excellent utility, but someone else's work with its own thread. It also has a very useful built-in Help system.

However, I'll try and work through some points for you:

1) The Z87 chipset has an XHCI controller. You would only need to use the rename if, when checking with IOReg, the controller was indeed showing as XHC1. If it's XHC then no.

2) Your motherboard has 8x USB2 ports and 6x USB3. This makes for a grand total of 20x ports configurable.

3) Your IOReg output is showing 34x ports - 20x on XHC and 14x on EHC. Not likely to work reliably. Using FakePCIID_XHCIMux.kext in your case shunts the USB2 ports away from the XHC controller for macOS, and onto the EH01/EH02 EHCI controllers. This is a common 'trick' to allow more USB3 ports to be included in the XHC tree. Confusingly though, they still look to be included on XHC too. The SSDT-EC.aml you are using might have something to do with this as it is a spoofed embedded controller.

You have 14x possible USB2 port configurations, along with 6x USB3 (their USB2 component included in the 14 etc). And that's it. So remember 8x of those 14 ports - HS01 to HS14 - are UsbConnector type '0' (USB2 contacts) not '3' (USB3 contacts).

4) So as a first-step test I think I would remove FakePCIID_XHCIMux.kext and see how the landscape looks afterwards. With any luck the EHC controller items will be gone. YMMV.

5) One further thought - is Audio working for you?

:)
 
Last edited:
Joined
Mar 4, 2014
Messages
318
Motherboard
GA-Z87-HD3
CPU
i5-4570
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hello there.

I don't offer support for Hackintool here. That's an excellent utility, but someone else's work with its own thread. It also has a very useful built-in Help system.
No worries, I just thought it was easier for port identification than IOReg, but I'll follow your guide

1) The Z87 chipset has an XHCI controller. You would only need to use the rename if, when checking with IOReg, the controller was indeed showing as XHC1. If it's XHC then no.
It is showing as XHC

4) So as a first-step test I think I would remove FakePCIID_XHCIMux.kext and see how the landscape looks afterwards. With any luck the EHC controller items will be gone. YMMV.
So now, I am seeing devices in IOReg on XHC when I plug them in. I do have two devices though PR11 on EH01 and PR21 on EH02, both showing AppleUSB20InternalHub@1d100000 and @1a100000 - should these be there?

One further thought - is Audio working for you?
Yes, audio working

New IOREG attached
 

Attachments

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
2,865
Motherboard
Gigabyte Z370M D3H
CPU
i3-8350K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
No worries, I just thought it was easier for port identification than IOReg, but I'll follow your guide



It is showing as XHC


So now, I am seeing devices in IOReg on XHC when I plug them in. I do have two devices though PR11 on EH01 and PR21 on EH02, both showing AppleUSB20InternalHub@1d100000 and @1a100000 - should these be there?



Yes, audio working

New IOREG attached
Hello again.

1) The latest IOReg uploaded above still shows the 8+6 ports on EH01/EH02 as well as the 20 on XHC. Did you remove FakePCIID_XHCMux.kext and rebuild the kext-caches?

2) As audio is working then I think it would be interesting to see what is in your Drive: Library/Extensions folder. I know that's not the reason for your initial post but it is a pointer ...

:)
 
Joined
Mar 4, 2014
Messages
318
Motherboard
GA-Z87-HD3
CPU
i5-4570
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hello again.

1) The latest IOReg uploaded above still shows the 8+6 ports on EH01/EH02 as well as the 20 on XHC. Did you remove FakePCIID_XHCMux.kext and rebuild the kext-caches?
Yes, I did

) As audio is working then I think it would be interesting to see what is in your Drive: Library/Extensions folder. I know that's not the reason for your initial post but it is a pointer ...

:)
Here is a screenshot of my l/e folder
Screenshot 2019-08-31 at 12.28.31.png

FYI, I only install kexts to l/e as a rule, the only exception at the moment is FakeSMC I also have in CLOVER/kexts/Other

Wish I understood this better and thanks for your help. I've attached latest prob reporting files
 

Attachments

UtterDisbelief

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



Here is a screenshot of my l/e folder
View attachment 423882

FYI, I only install kexts to l/e as a rule, the only exception at the moment is FakeSMC I also have in CLOVER/kexts/Other

Wish I understood this better and thanks for your help. I've attached latest prob reporting files
Hi there. Thanks for all the extra info.

Well you said in your initial post that you were 'having some issues' - what are they, exactly?

It looks as though you used Hackintool but removed the SSDTs. Apart from that you haven't otherwise configured your USB ports and there are too many.

:)
 
Last edited:
Joined
Mar 4, 2014
Messages
318
Motherboard
GA-Z87-HD3
CPU
i5-4570
Graphics
RX 580
Mac
iMac
Mobile Phone
iOS
Hi there. Thanks for all the extra info.

Well you said in your initial post that you were 'having some issues' - what are they, exactly?

It looks as though you used Hackintool but removed the SSDTs. Apart from that you haven't otherwise configured your USB ports and there are too many.

:)
So I initially thought I had configured things correctly, I created a kext with Hackintool back on High Sierra. I then upgraded to Mojave and checked with Feartech and he said I could use the kext I created in HS

I was then checking things and I noticed that I had configured my 15 ports including PR11 and PR21 which are on EH01 and EH02, they show as “AppleUSB20InternalHub” - I included these when I created the kext with Hackintool and I now think this is wrong as everything should be on XHC no?

I thought I would start from scratch as I said but I think I’m now confusing myself more

I hope this makes sense
 
Top