Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Often RehabMan answers questions in this thread with "Read #1 carefully".

While carefully reading #1 I created an SSDT for my system, easily reducing the port count to bellow 15. However, after all configuration and rebooting, the SSDT was not activated. The IOregistry showed all ports in their full beauty as if the SSDT was not there.

The root cause was not reading #1 carefully enough. I had installed USBInjectAll.kext in /Library/Extentions instead of /System/Library/Extentions. Shame on me - the post says "(install to the system volume)".

Requirements:
- EHC1->EH01 and EHC2->EH02 rename (in config.plist), if applicable (your chipset may not have EHCI, or it may be disabled)
- XHCI controller must be named XHC (for most PCs it is default)
- port limit patch (in config.plist)
- install USBInjectAll.kext (install to the system volume)
- if you plan to use it, install FakePCIID.kext + FakePCIID_XHCIMux.kext. FakePCIID_XHCIMux only applicable if you have enabled EHCI controller(s).
- if you have an existing SSDT for USBInjectAll, use -uia_ignore_rmcf
- XHCI injector kext, if required (200-series need XHCI-200-series-injector.kext, 300-series need XHCI-300-series-injector.kext)

After installing the kext in the correct location with KextBeast, everything works like a charm and I can even boot from an USB3 disk (with the kext in its /S/L/E dir) that failed to boot after the port limit patch got stale some time ago.

I am posting this because searching for SSDT USBInjectAll Fails and SSDT USBInjectAll no change did not give me any hints and this may help others troubleshooting. And because I am still a bit puzzled as I recall that during troubleshooting I established that the kext was loaded when it was in /Library/Extentions/.

Hat tip to RehabMan for the excellent tools, good Howtos, and community engagement.

--OMK
 
Last edited:
i tried my best, but i can`t see port above 15.
i spent about 3 hours using diff kexts and etc
i literally tried everything

what i`m doing wrong?
 

Attachments

  • 2018-07-28_20-07-04.png
    2018-07-28_20-07-04.png
    102.2 KB · Views: 80
  • my config and ioreg.zip
    5.2 MB · Views: 90
i tried my best, but i can`t see port above 15.
i spent about 3 hours using diff kexts and etc
i literally tried everything

what i`m doing wrong?
problem reporting files are incomplete, please re read the bottom of post 1
 
I have tried alot of things, but can't seem to get all the USB ports working on the motherboard that was mentioned on buyers guide. My signature has all the information, can someone help me with it? @RehabMan

I don't know if my chipset has EHCI, it is H370. There is no mention of EHCI on the intel spec page for it. I have 2 USB ports on the front through my casing, one is usb 3 and the other is usb 2. Sorry if this sounds noob, but it's been a while I have made a custom mac and I was not expecting so much issue with usbs lol. Everything else seems to be working fine.

I currently have the usbinjectall kext installed using multibeast, don't know if I even need it. Some of my usb ports started working after I upgraded my bords bios to F3 (latest). But all still do not work. Any help is highly appreciated. Thanks.
 
ok, my fault
as i mentioned before
i have a problem

i tried my best, but i can`t see port above 15.
i spent about 3 hours using diff kexts and etc
i literally tried everything

what i`m doing wrong?

so if someone solved this kinda problem, please help me
and i hope this time i`m attaching the right files
 

Attachments

  • clover + ioreg.zip
    8.1 MB · Views: 86
well i got it.
i was so stupid, didnt know that usbinject.kext has newer version (maybe RehabMan should mention that for stupids like me).
so i took new one put it in my clover and /System/Library/Extensions folders,
double checked my config.plist (code for increasing port limit was different, so i copy/pasted RehabMan`s again) and it worked
Didn`t create custom ssdt just flaged it in boot section with
uia_exclude=HS02;HS03;HS04;HS05;HS06;HS13;HS14 (thats only for me, you should discover ports you need yourself as mentioned in post#1)
Now all my ports recognise my usb3.0 hard drive
My hackintosh able to shut down
And its sleeps well xD

Thanks @RehabMan for your work!

p.s. for idiots like me msi z370 pc pro
2018-07-30_01-18-06.png
 
Hi rehabman, im attaching my ioreg to fix a sleep/wake issue with a GA-Z68M-D2H board and a BCM94360CS2 card in an adapter running via PCIe with a usb header for bluetooth.
Not sure what port the usb header is on or what to edit once i find the appropriate port?
 

Attachments

  • Z68-iMAC.ioreg
    7.5 MB · Views: 74
@RehabMan

First of all thanks for the great thread and your great work! Your posts are an amazing treasure of knowledge!

I have a skylake system that I have been using for a year now with the USBInjectAll and decided to try a build a custom SSDT for the USB ports. My specs are: Mobo: HP 8053/U3E1 (Clover), CPU: i7-6700/Q170, Graphics: Gigabyte GeForce GTX 1050 OC Low Profile, 2 monitors (1920x1200)

I followed your first post of the thread and as you can see on the screenshot, I am missing the SS?? devices on the left part of the screen. Whenever I try to plug USB2 or USB3 devices I always see them under the HS??. Is this something expected for my system? Also when I try to plug in a USB3 device on a USB3 port I do not see it anywhere. I only see it when I plug it on a USB2 port.


Thanks!

View attachment 342935

Read post #1 regarding the port limit patch.
 
Often RehabMan answers questions in this thread with "Read #1 carefully".

While carefully reading #1 I created an SSDT for my system, easily reducing the port count to bellow 15. However, after all configuration and rebooting, the SSDT was not activated. The IOregistry showed all ports in their full beauty as if the SSDT was not there.

The root cause was not reading #1 carefully enough. I had installed USBInjectAll.kext in /Library/Extentions instead of /System/Library/Extentions. Shame on me - the post says "(install to the system volume)".



After installing the kext in the correct location with KextBeast, everything works like a charm and I can even boot from an USB3 disk (with the kext in its /S/L/E dir) that failed to boot after the port limit patch got stale some time ago.

I am posting this because searching for SSDT USBInjectAll Fails and SSDT USBInjectAll no change did not give me any hints and this may help others troubleshooting. And because I am still a bit puzzled as I recall that during troubleshooting I established that the kext was loaded when it was in /Library/Extentions/.

Hat tip to RehabMan for the excellent tools, good Howtos, and community engagement.

--OMK

As per FAQ, kexts on 10.11 and later are installed to /L/E (/Library/Extensions), not /S/L/E.
Although USBInjectAll.kext will work from either.

Kexts should never be installed to /Library/Extentions, macOS/OS X will ignore anything you place there.
 
Back
Top