Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

No other solution that I know of.
How should i properly edit the file:

1. Copy IOUSBHostFamily.kext into desktop and open it go to /resources/plugins/AppleUSBHub.kext/info.plist and remove the iMac13.1, 13.2, 13.3 line for EH01
Then install the edited kext.

or

2. Open the kext directly from S/L/E do the edit and just rebuild caches ?

Is it also ok to switch to macMini 6.1 SMBIOS instead, would it cause issues for users that use Dedicated GPUs instead of the IGPU, for me Mac Mini 6.1 SMBIOS seems to work fine and it avoids the need to make the edits after every upgrade, im using the HD4000 only.
 
Last edited:
How should i properly edit the file:

1. Copy IOUSBHostFamily.kext into desktop and open it go to /resources/plugins/AppleUSBHub.kext/info.plist and remove the iMac13.1, 13.2, 13.3 line for EH01
Then install the edited kext.

or

2. Open the kext directly from S/L/E do the edit and just rebuild caches ?

Is it also ok to switch to macMini 6.1 SMBIOS instead, would it cause issues for users that use Dedicated GPUs instead of the IGPU, for me Mac Mini 6.1 SMBIOS seems to work fine and it avoids the need to make the edits after every upgrade, im using the HD4000 only.

You can do it either way. Keep in mind to edit an Info.plist in SLE directly is a bit tricky, as it must be done from Terminal (eg. using 'sudo nano', or other Terminal based text editor).

I would probably use Macmini6,1 instead. WhateverGreen.kext can workaround SMBIOS issues with DGPU.
 
I have a Thinkpad T61 running High Sierra 10.13.6 with USBInjectAll.kext version 0.6.5 (April 20, 2018) and a custom SSDT-UIAC-ALL. I discovered a compatibility issue with an external USB drive and tried updating USBInjectAll.kext to 0.7.1 (November 8, 2018) to see if that might be the problem. After installing 0.7.1 and rebooting, attached USB devices were not recognized. Reverting to 0.6.5 restored USB operation.

Should I be able to upgrade from USBInjectAll.kext 0.6.5 to 0.7.1 while retaining the same custom SSDT-UIAC-ALL and same DSDT edits? I'll be glad to spend more time on this, but wanted to ask this simple question first.

Thank you.

EDIT: This laptop dual-boots Sierra and High Sierra. I do not have the USB problem in Sierra with USBInjectAll.kext 0.6.5.

EDIT: @RehabMan - Attached are two debug archives. debug_065 is with USBInjectAll.kext 0.6.5 (UIA_065) and debug_071 is with USBInjectAll.kext 0.7.1 (UIA_071). These archives were extracted from my Thinkpad T61 running High Sierra 10.13.6 (in-place upgrade from Sierra). With UIA_065, USB devices that I connect to my USB ports are recognized in High Sierra. With UIA_071, USB devices that I connect to my USB ports are not recognized (and do not appear in IO_Reg_Explorer).

I typically boot this laptop into Sierra, but now I need High Sierra and am only now discovering issues with USB in High Sierra. Specifically, when I try to backup my High Sierra partition to an external USB Drive (using Carbon Copy), the system freezes. I do not experience any USB problems with Sierra (and USBInjectAll.kext 0.6.5).

Any help/suggestions that you can offer would be greatly appreciated. Thank you.
 

Attachments

  • debug_065.zip
    1.4 MB · Views: 59
  • debug_071.zip
    1.3 MB · Views: 64
Last edited:
I have a Thinkpad T61 running High Sierra 10.13.6 with USBInjectAll.kext version 0.6.5 (April 20, 2018) and a custom SSDT-UIAC-ALL. I discovered a compatibility issue with an external USB drive and tried updating USBInjectAll.kext to 0.7.1 (November 8, 2018) to see if that might be the problem. After installing 0.7.1 and rebooting, attached USB devices were not recognized. Reverting to 0.6.5 restored USB operation.

Should I be able to upgrade from USBInjectAll.kext 0.6.5 to 0.7.1 while retaining the same custom SSDT-UIAC-ALL and same DSDT edits? I'll be glad to spend more time on this, but wanted to ask this simple question first.

Thank you.

EDIT: This laptop dual-boots Sierra and High Sierra. I do not have the USB problem in Sierra with USBInjectAll.kext 0.6.5.
No "Problem Reporting" files attached.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
@RehabMan

These might be dumb questions but I'd like to just make sure I don't do anything wrong..

Since the USBInjectAll.kext was installed to the system folder as part of this guide, do I still need to keep a copy of it on my EFI drive? Should I be installing all these my kext files to the system folder?

Secondly, now that this guide has been implemented, do I still need USB Inject, Add ClockID, and FixOwnership under Devices in clover?

Finally, do I need these fixes originally selected as part of the vanilla guide; FixIPIX, FixHPET, FixRTC, and FixTMR; Drop Table: DMAR; AutoMerge, FixHeaders, PluginType. And which Boot Arguments do I need to keep? I have -v dart=0 debug=0x100 nv_disable=1 kex-dev-mode=1

I'm running on an ASUS Z170 Board with a Skylake Processor, and AMD GPU.

Appreciate your advice in advance.
 
Last edited:
Since the USBInjectAll.kext was installed to the system folder as part of this guide, do I still need to keep a copy of it on my EFI drive? Should I be installing all these my kext files to the system folder?

Depends on whether you want all your USB ports working when you run the installer or recovery.
That's what the kexts in EFI/Clover/kexts are for (scenarios where you cannot install required kexts, but must rely on kext injection).

Secondly, now that this guide has been implemented, do I still need USB Inject, Add ClockID, and FixOwnership under Devices in clover?
...
Finally, do I need these fixes originally selected as part of the vanilla guide; FixIPIX, FixHPET, FixRTC, and FixTMR; Drop Table: DMAR; AutoMerge, FixHeaders, PluginType. And which Boot Arguments do I need to keep? I have -v dart=0 debug=0x100 nv_disable=1 kex-dev-mode=1

Those options serve separate purposes... not related to port injection.
 
Hello I have a question, I made a SSDT for my system and it is working great.
Only I can't seem to find my USB C in IOreg, when I insert a USB C external HDD (this is the only usb C device I have)
It will not show up.

Do I really need a USB C usb stick ?
 
To use USBInjectAll.kext, you must insure the EHCI controllers are named EH01, EH02.
Your ioreg shows EUSB and USBE.

Much better, thank you very much.
My USB 2 ports can now be found on EH01 or EH02, but all USB 3 ports are seen in a PEX5 with no clearly defined port.
I can’t see any XHC item in the device tree, and USB 3 ports only recognize USB 3 devices, not USB 2.
 
"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the gen_debug.sh tool mentioned in the FAQ, that way it is less likely you'll omit something.
Hello again
after starting again from the beginning
now all USB ports and Charge devices work?
but only the USB ones are seen. 2.0 USB 3.0 devices are not mounted
What I can be doing wrong?
I leave my ioreg and SSDT-UIAC
 

Attachments

  • SSDT-UIAC.aml
    695 bytes · Views: 65
  • ioreg.ioreg
    7 MB · Views: 67
Back
Top