Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Hello, I have a question: If my laptop already has 15 usb ports (without custom ssdt) do still I have to do a custom usb ssdt?

View attachment 412555

Thanks to this super easy guide @UtterDisbelief

Hi there.

No, you don't need to configure your ports if the ones you do have work as expected :thumbup:

There are two parts to the guide really. Firstly, to reduce the number of ports to 15 or less and the other to amend how each port operates: USB2 or USB3. Does bluetooth wake the machine? Are all devices recognised?

Glad the guide helped!

:)
 
Hi! I am attempting to follow the guide but I am noticing that my internal USB as well as my Front Panel USB ports are not being recognized at all in IO Registry Explorer. I am not sure how to get these ports to show up. I have used the USBInjectAll kext, FakePCIID kext, & FakePCIID_XHCIMux kext but I cannot get my front and internal ports to show up. Can anyone assist?

My set up is i7-4790K, Asus Z97-K, MSI GTX 1060 6GB

Hi there.

Okay. we'll need a bit more information, but to start with here are a couple of observations ...

1) You have 7 port-limit removal patches in place and active. This is probably not causing the problems but remove 6 of them.

2) The Z97 chipset includes both EHC and XHC controllers. Check your BIOS to ensure that XHC Handoff is Enabled.

What you can try:

Remove FakePCIID_XHCIMux.kext from Library/Extensions and rebuild the caches with Terminal command:
Code:
sudo kextcache -I /

Once done, reboot your machine and run IORegistryExplorer again and either post a screengrab of the XHC section or export the data and upload :thumbup:
 
Firstly, to reduce the number of ports to 15 or less and the other to amend how each port operates: USB2 or USB3. Does bluetooth wake the machine? Are all devices recognised?

I know they work, but I have not tried which ports work on USB2/USB3. I will do it later.
Everything is working now after applying some patches (Trackpad, sound, touchpad, backlight) but I am having problems with the wake on my machine. Basically black screen after wake. So I am applying some solutions. BTW, how do I know if my bluetooth wake my machine? (syslog grep |.... )

I will tell you when I can solve my wake

Thanks for reply me.
 
Hi there.

Okay. we'll need a bit more information, but to start with here are a couple of observations ...

1) You have 7 port-limit removal patches in place and active. This is probably not causing the problems but remove 6 of them.

2) The Z97 chipset includes both EHC and XHC controllers. Check your BIOS to ensure that XHC Handoff is Enabled.

What you can try:

Remove FakePCIID_XHCIMux.kext from Library/Extensions and rebuild the caches with Terminal command:
Code:
sudo kextcache -I /

Once done, reboot your machine and run IORegistryExplorer again and either post a screengrab of the XHC section or export the data and upload :thumbup:

OMG Thank you! I was not aware that I had so many Port limit patches. (DOH!) My front ports and internal Headers are showing up! I will try and continue with the guide now to set up the USB SSDT!
 

Attachments

  • IOReg.png
    IOReg.png
    211.3 KB · Views: 64
  • Bliss' iMac.ioreg
    7.7 MB · Views: 50
Hi there.

Okay. we'll need a bit more information, but to start with here are a couple of observations ...

1) You have 7 port-limit removal patches in place and active. This is probably not causing the problems but remove 6 of them.

2) The Z97 chipset includes both EHC and XHC controllers. Check your BIOS to ensure that XHC Handoff is Enabled.

What you can try:

Remove FakePCIID_XHCIMux.kext from Library/Extensions and rebuild the caches with Terminal command:
Code:
sudo kextcache -I /

Once done, reboot your machine and run IORegistryExplorer again and either post a screengrab of the XHC section or export the data and upload :thumbup:
Once again thank you so much! I was able to get the ports I needed set up and my SSDT is all configured. My fenvi t919 is now working for wifi and bluetooth because I was able to access the internal USB Headers! For anyone who may have an Asus Z97-K / i7 4790K combo like me I will attach my SSDT and Config so that you can have a starting point if needed!
 

Attachments

  • SSDT_USB.aml
    618 bytes · Views: 57
  • config.plist
    6.6 KB · Views: 69
Just to let you know, I have this working with the following setup,

CPU:i7-8700k
MOBO: Gigabyte Z370 Aorus Ultra Gaming WiFi
RAM: G.SKILL RipjawsV 2x8GB F4-2400C15D-16GVR
GPU: XFX Radeon RX 570 Black
PSU: SeaSonic 650W SSR-650RM
CPU cooler: Corsair Hydro H110i 280mm
OS drive: 250GB SAMSUNG 970 EVO
Project drive: 250GB SAMSUNG 970 EVO
Archive drive: Seagate Barracuda 4TB ST4000DM004
External backup drive: WD Blue 4TB HDD WD40EZRZ
External enclosure: Rosewill Armer RX304-APU3-35B
Optical: Lite-On DVD Burner
Card Reader: Rosewill RDCR-11004 5.25" Data Hub
Monitor: LG 32MP58HQ-P Black 31.5"
Case: FSP CMT230 ATX Mid Tower PC Computer Gaming Case
OS: MacOS 10.13.6 (17G5019)

I am using 19,2 for the system definition because of the i7-8700k. I used the version of USBInjectAll.kext in post #295 in this thread and the following install method.

1. copy the .zip to the desktop and extract
2. open a terminal
3. sudo rm -R /Library/Extensions/USBInjectAll.kext
4. sudo cp -R ~/Desktop/USBInjectAll.kext /Library/Extensions
5. sudo chown -v -R root:wheel /Library/Extensions
6. sudo touch /System/Library/Extensions && sudo kextcache -u /
7. restart

It didn't work with the version from post #294. It seems like these should be the same, so possibly I didn't implement it properly the first time. You may want to check and make sure that the versions in #294 and #295 are the same.

I also made sure that onfig.plist > system parameters > InjectKexts = Detect since that was not set properly. I have nothing in the Clover/kext/other folder.

My custom SSDT was not being picked up after changing the system definition from 18,3 to 19,2 and this fixed it.

Thanks to Feartech for helping me to get that sorted. It was an annoying day for a while.

LMHmedchem
 
Just to let you know, I have this working with the following setup,

CPU:i7-8700k
MOBO: Gigabyte Z370 Aorus Ultra Gaming WiFi
RAM: G.SKILL RipjawsV 2x8GB F4-2400C15D-16GVR
GPU: XFX Radeon RX 570 Black
PSU: SeaSonic 650W SSR-650RM
CPU cooler: Corsair Hydro H110i 280mm
OS drive: 250GB SAMSUNG 970 EVO
Project drive: 250GB SAMSUNG 970 EVO
Archive drive: Seagate Barracuda 4TB ST4000DM004
External backup drive: WD Blue 4TB HDD WD40EZRZ
External enclosure: Rosewill Armer RX304-APU3-35B
Optical: Lite-On DVD Burner
Card Reader: Rosewill RDCR-11004 5.25" Data Hub
Monitor: LG 32MP58HQ-P Black 31.5"
Case: FSP CMT230 ATX Mid Tower PC Computer Gaming Case
OS: MacOS 10.13.6 (17G5019)

I am using 19,2 for the system definition because of the i7-8700k. I used the version of USBInjectAll.kext in post #295 in this thread and the following install method.

1. copy the .zip to the desktop and extract
2. open a terminal
3. sudo rm -R /Library/Extensions/USBInjectAll.kext
4. sudo cp -R ~/Desktop/USBInjectAll.kext /Library/Extensions
5. sudo chown -v -R root:wheel /Library/Extensions
6. sudo touch /System/Library/Extensions && sudo kextcache -u /
7. restart

It didn't work with the version from post #294. It seems like these should be the same, so possibly I didn't implement it properly the first time. You may want to check and make sure that the versions in #294 and #295 are the same.

I also made sure that onfig.plist > system parameters > InjectKexts = Detect since that was not set properly. I have nothing in the Clover/kext/other folder.

My custom SSDT was not being picked up after changing the system definition from 18,3 to 19,2 and this fixed it.

Thanks to Feartech for helping me to get that sorted. It was an annoying day for a while.

LMHmedchem

Hi there.

Thank you very much for your feedback. It is appreciated. :thumbup:

Currently it looks as though using 19,2 system definition with High Sierra is unreliable. In my tests it gave a prohibited symbol at boot unless running Mojave. Which is understandable and has some logic to it. The fact you got it working is good news. Did you use the "no compatibility check" command-line?

We are still actively working on this so thanks again for your input.

:)
 
Currently it looks as though using 19,2 system definition with High Sierra is unreliable. In my tests it gave a prohibited symbol at boot unless running Mojave. Which is understandable and has some logic to it.
Yes, I got the same and assumed that apple doesn't ship any 19,2 computers with High Sierra.

The fact you got it working is good news. Did you use the "no compatibility check" command-line?
Yes, adding the -no_compat_check flag in clover configurator allowed the system to boot again.

Are there any potential long term issues in running like this? I went to 19,2 because I really didn't find any other configuration that looked like mine (with a hex i7). Does it make more sense to go back to 18,3 even though it doesn't match my hardware that well?

LMHmedchem
 
Yes, I got the same and assumed that apple doesn't ship any 19,2 computers with High Sierra.

Yes, adding the -no_compat_check flag in clover configurator allowed the system to boot again.

Are there any potential long term issues in running like this? I went to 19,2 because I really didn't find any other configuration that looked like mine (with a hex i7). Does it make more sense to go back to 18,3 even though it doesn't match my hardware that well?

LMHmedchem

Ah good, that puts my mind at rest re the HS+19,2 conundrum :thumbup:

As for running anything other than 19,2 for a hex-core i7, that's a good question. There were CPUs with more than 4-cores way before iMac19,2 came along so my own (non-official) thinking is pick a more general sys-def that is reliable. Remember we used to recommend MacPro3,1 for many years until it became discontinued because it was so reliable and catch-all. However I've seen quite heated arguments against this so I don't push it. If your own tests show a more reliable, power-efficient system I fully accept that.

:)
 
As for running anything other than 19,2 for a hex-core i7, that's a good question. There were CPUs with more than 4-cores way before iMac19,2 came along so my own (non-official) thinking is pick a more general sys-def that is reliable.
I don't really have any idea how I would go about that. I started with 18,3 because I read a thread from a user with a nearly identical system who got it going with that. There was no explanation as to why it was chosen. I didn't get to setting the SMBIOS information until recently.

I have looked through the specs for the non-notebook macs here,


and as far as I can see, the 19,2 is the only model with an i7 hexacore.

Many of the models with more than 4 cores use Xeon processors don't seem to be formally refereed to as i7 (like a MacPro5,1). I don't really have any idea if that matters or not.

I will have to use the app store to buy some software I am going to use but after that, the rig will probably not be on the internet much or get updated.

LMHmedchem
 
Back
Top