Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Creating custom SSDT for USBInjectAll.kext

In order to effect our changes, we must modify the SSDT-UIAC-ALL.dsl so it contains only the ports we need.

The steps are as follows:
- use SSDT-UIAC-ALL.dsl as a template (https://github.com/RehabMan/OS-X-USB-Inject-All/raw/master/SSDT-UIAC-ALL.dsl)
- remove configuration sections that don't apply to the target hardware
- remove ports from the various sections that are not needed
- change UsbConnector values to match physical hardware/ports

The first step is to eliminate configuration data from SSDT-UIAC-ALL.dsl that don't apply to the target hardware and USB configuration.

Okay this is part where I'm lost.
How do I edit the SSDT-UIAC-ALL.dsl template? When I click on the link it brings me to a webpage. So what do I do next?
I copy the text from the webpage and edit it where? In Textedit?
Textedit won't let me save it as a .dsl, so something tells me that Textedit is the wrong place to edit the template?
There's no instruction on how to edit the template. I'm not a noob, but c'mon, I'm not a psychic either.
If someone could advise me on how to edit the template and then what I'm supposed to do next, that would be awesome.

Anyway this is what I found when I did port discovery.

Composite Results:
HS01/SSP1: USB3 Front Left
HS02/SSP2: USB3 Front Right
HS03/SSP3: USB3 Rear Top Left Port, Rear Top Right Port, Rear Middle Left Port, Rear Middle Right Port
HS09/SSP5: USB3 Rear Bottom Left Port
HS10/SSP6: USB3 Rear Bottom Right Port

I get no USB 3.0 recognition on HS03, HS09, HS10. But USB 3.0 is recognized on SSP3, SSP5 and SSP6.

I'm using a Gigabyte GA-Z97X-UD7-TH "Series 9" motherboard.

(Note: I can't use FakePCIID.kext or FakePCIID_XHCIMux.kext because it kills all USB functionality. I used to be able to use these kexts prior to 10.13.x)
 
Okay this is part where I'm lost.
How do I edit the SSDT-UIAC-ALL.dsl template? When I click on the link it brings me to a webpage. So what do I do next?
I copy the text from the webpage and edit it where? In Textedit?
Textedit won't let me save it as a .dsl, so something tells me that Textedit is the wrong place to edit the template?
There's no instruction on how to edit the template. I'm not a noob, but c'mon, I'm not a psychic either.
If someone could advise me on how to edit the template and then what I'm supposed to do next, that would be awesome.

Anyway this is what I found when I did port discovery.

Composite Results:
HS01/SSP1: USB3 Front Left
HS02/SSP2: USB3 Front Right
HS03/SSP3: USB3 Rear Top Left Port, Rear Top Right Port, Rear Middle Left Port, Rear Middle Right Port
HS09/SSP5: USB3 Rear Bottom Left Port
HS10/SSP6: USB3 Rear Bottom Right Port

I'm using a Gigabyte GA-Z97X-UD7-TH "Series 9" motherboard.

(Note: I can't use FakePCIID.kext or FakePCIID_XHCIMux.kext because it kills all USB functionality. I used to be able to use these kexts prior to 10.13.x)
MaciASL is required (i am sure it is mentioned in post 1)
 
Okay so how do I get the text from the webpage into MacASL?
Rehabman provides no instruction on how we're supposed to proceed.
copy and paste?
 
Okay so how do I get the text from the webpage into MacASL?
Rehabman provides no instruction in Post #1 on how we're supposed to proceed.
Download the repo ZIP or use git clone or use save link as.
 
Download the repo ZIP or use git clone or use save link as.

I don't know what repo ZIP is or git clone is since the link just loads a text page.
I did follow Feartech advice of copy & paste into a "New" file in MacASL and that worked.
The instructions about the Device ID were a little confusing, but after staring at it for a little bit, I saw what you were doing there. Anyway I can report "SUCCESS". I now have all 8 of my USB ports working for both USB 2.0 and 3.0 and all USB 3 devices are reporting speeds "Up to 5 Gb/sec" in "About This Mac/System Info".
Thanks Rehabman and thanks Feartech for filling in the blanks.
 
As per post #1, do not use the port limit patch... not even during port discovery.
Use the various exclude flags (eg. use uia_exclude_hs while testing SSPx).

Thanks heaps for your help, I got it all working, ended up being HS10 -> SSP6. I do have one question, not to fix anything, just for my own understanding.

When I made the SSDT with -:
HS01
HS02
HS03
HS05
HS06
HS07
HS08
HS09
HS10
SSP1
SSP2
SSP3
SSP4 (not used but included anyway to experiment)
SSP5
SSP6

I had a total of 15 ports, no USB3 devices would attach to SSP6, even though it was listed in ioreg, (instead they would attach to HS10 as USB2). When I made the exact same SSDT but removed SSP4 (which isnt being used), bringing the count down to 14, SSP6 started to work fine. Just wondering what the explanation for that could be?
 
I have an issue with "bluetooth not available" that is driving me nuts. Before I head over to that thread, please could you check that my USB implementation is correct as I want to be sure that is all in order?

Attached are the usual reporting files and the SSDT-UIAC.aml created with help from this guide and rehabman.
 

Attachments

  • Debug.zip
    3.4 MB · Views: 72
I have an issue with "bluetooth not available" that is driving me nuts. Before I head over to that thread, please could you check that my USB implementation is correct as I want to be sure that is all in order?

Attached are the usual reporting files and the SSDT-UIAC.aml created with help from this guide and rehabman.

Why such an old version of Clover?
You have 5x HSxx/UsbConnector=3 but 6x SSxx/UsbConnector=3. Expect matching counts.
 
Why such an old version of Clover?
You have 5x HSxx/UsbConnector=3 but 6x SSxx/UsbConnector=3. Expect matching counts.
I've just checked and double checked SSDT-UIAC.aml and I see the following:

HS01, 03, 04, 09, 10 all set to 3 (5 in total)
SSP01, 02, 03, 04, 05 all set to 3 (5 in total)
HS05, 06,14 set to 0
HS08, 12 set to 255

15 USB ports total, am I missing something?

I'll update Clover now
 

Attachments

  • SSDT-UIAC.aml.zip
    989 bytes · Views: 68
Back
Top