Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Unspecified buffer/package sizes allow the compiler to calculate the size, eliminating one source of human error.
Thanks.
one more question on my Motherboard most of the USB3 ports are present on the backplate and 1 USB2 and 2 USB3 port is made available for the front of the case via a cable which I have to plug on the motherboard.
So what value (0, 3, 255) I have to use for the backplate and for the front of the case?
 
USBInjectAll is great for port discovery. But after that, you really should do a custom SSDT to get things working 100% correctly.

Note that USBInjectAll.kext still required after creating the SSDT. The SSDT provides configuration data *for* USBInjectAll.kext (read the guide title carefully).
 
So what value (0, 3, 255) I have to use for the backplate


The backplate ports would be external. As per post #1, USB2=0, USB3=3.

and for the front of the case?

Depends on whether the front case has a built-in hub. If there is a built-in hub, the ports would be marked 255 due to them being connected to an internal device (the hub). If no hub, then the ports would be external... as per post#1, USB2=0, USB3=3.
 
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 phyisical hardware/ports

EDIT: Got it, keep the closest config with the device id. Go from there.

@RehabMan : I'm at this step.
USB test gives me HS01->HS08 for USB2.0 and SS01 -> SS08 for USB3.0 and HS10 for bluetooth.

Now how to I remove configuration sections that don't apply to the target hardware.
I understand I need to remove HS09 and above, keep HS01->HS08. But there are many HS01->HS08 to keep. How do I know what 'package' to keep?. Sorry if I missed something.
 
Last edited:
I just finished the tutorial.
So far in IORegistryExplorer I have now 15 ports enabled. And all my USB ports work. (Except the usb-C port that I don't have any device to check).

I'd appreciate if someone can help check this PR attached to see if everything is good now.
 

Attachments

  • debug_32204.zip
    1.8 MB · Views: 57
EDIT: Got it, keep the closest config with the device id. Go from there.

@RehabMan : I'm at this step.
USB test gives me HS01->HS08 for USB2.0 and SS01 -> SS08 for USB3.0 and HS10 for bluetooth.

Now how to I remove configuration sections that don't apply to the target hardware.
I understand I need to remove HS09 and above, keep HS01->HS08. But there are many HS01->HS08 to keep. How do I know what 'package' to keep?. Sorry if I missed something.

Read post #1.
If you actually have 8 USB3 ports, you must sacrifice at least one to stay within the 15-port limit.

I just finished the tutorial.
So far in IORegistryExplorer I have now 15 ports enabled. And all my USB ports work. (Except the usb-C port that I don't have any device to check).

I'd appreciate if someone can help check this PR attached to see if everything is good now.

You're injecting 17 ports. 2 over the 15-port limit.
Your UsbConnector values are wrong. HSxx that are associated with external USB3 ports should be 3.
Ports which are attached to internal devices (BT on HS10) should be marked 255.

Read post #1. Stay within the 15-port limit so you can remove the port limit patch.
 
@RehabMan: I swear I knew the 15 limit (I mean, the whole point I'm doing this). But my math told me 8 + 8 + 1 = 15..
My HSxx ports are all USB2.0 USB3.0 are all on SSxx though.

New PR attached, please check if things are ok now.
 

Attachments

  • debug_20463.zip
    1.8 MB · Views: 61
@RehabMan: I swear I knew the 15 limit (I mean, the whole point I'm doing this). But my math told me 8 + 8 + 1 = 15..

Math aside, the ioreg from your previous ioreg showed more than 15 ports injected...

My HSxx ports are all USB2.0 USB3.0 are all on SSxx though.

New PR attached, please check if things are ok now.

Your UsbConnector values are wrong.
As per post #1, HSxx ports associated with USB3 should be UsbConnector=3.
 
Ok I changed the UsbConnector=3 for some HSxx ports too.
Can you check if everything is correct now?

Thanks.
 

Attachments

  • debug_24869.zip
    1.7 MB · Views: 60
Ok I changed the UsbConnector=3 for some HSxx ports too.
Can you check if everything is correct now?

Thanks.

Still obviously wrong.
Unless the BT on HS10 is a dongle plugged to an external port, should be marked UsbConnector=255 (not 3).

And you have 6 SSxx ports with UsbConnector=3, therefore should be matched by exactly 6 HSxx ports marked UsbConnector=3.
 
Back
Top