Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

Joined
Nov 26, 2012
Messages
1,217
Motherboard
Gigabyte Z370 Aorus Gaming 5
CPU
i7-8700K
Graphics
RX 580
Mac
iMac, MacBook Pro
Mobile Phone
iOS
It appears to be connecting at USB3 (SS07).
But keep in mind USB flash drives are quite slow.

If you're trying to test USB3 speeds, use a fast device such as a USB3 SSD.
Top image is an 250gb 850 EVO SSD with a StarTech.com USB3 to SATA3 adaptor.
Bottom is a 1Tb Silicon Power external SSD USB3. I know which drive I'm taking with me on my next trip.
Screen Shot 2018-11-13 at 6.50.11 PM.png
Screen Shot 2018-11-13 at 6.52.56 PM.png
 
Joined
Nov 14, 2018
Messages
2
Motherboard
Gigabyte Z370N
CPU
i5-8600K
Graphics
AMD RX580
Hi all. I have tried lots of guides to make my USB work on Mojave. I tried this guide twice with no success. I am currently on 10.14.1 and I cannot get my machine to recognize 3.0 speeds (no SSXX shown on IORegistryExplorer after excluding HS). I can't even get that include flag to work. I have installed the last USBInjectAll kext (at least I think it is, as November 9th).
I attach the files generated by the useful script by black.dragon74. I hope someone can help me.
 

Attachments

Joined
Nov 8, 2014
Messages
119
Motherboard
Z370M DS3H
CPU
i5-8400
Graphics
RX 560
Mac
MacBook Pro
Mobile Phone
iOS
As mentioned in post #2555, It is because your not using the correct version of USBInjectAll.kext.

The correct version of USBInjectAll.kext is linked by post #1.
Must read post #1 carefully.
Redone all my kext in the way you specified ... misinterpreted the part where you wrote 'install to system volume' and redownloaded latest usbinjectall.kext (which I thought I already had ??) and reinstalled to L/E instead of S/L/E.

After that it was pretty much a breeze ... thanks ones again for your time and patience!!
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,123
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Hi all. I have tried lots of guides to make my USB work on Mojave. I tried this guide twice with no success. I am currently on 10.14.1 and I cannot get my machine to recognize 3.0 speeds (no SSXX shown on IORegistryExplorer after excluding HS). I can't even get that include flag to work. I have installed the last USBInjectAll kext (at least I think it is, as November 9th).
I attach the files generated by the useful script by black.dragon74. I hope someone can help me.
Just guessing that you might have a USB keyboard/mouse at HS03/HS14, respectively.

Boot with: -uia_exclude_hs uia_include=HS03,HS14

That will exclude the HSxx ports that are not SSxx so you'll be able to test the SSxx ports.

Be careful to spell the kernel flags correctly.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,123
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Sorry, here you go.
It seems like you are booting with -uia_ignore_rmcf. Why?
Also, your files in ACPI/patched are not up-to-date with respect to github.
Neither is your config.plist.

Please update everything, then boot without -uia_ignore_rmcf.
I want to insure that everything is correct regarding the ProBook github project.
 
Joined
Nov 14, 2018
Messages
2
Motherboard
Gigabyte Z370N
CPU
i5-8600K
Graphics
AMD RX580
Just guessing that you might have a USB keyboard/mouse at HS03/HS14, respectively.

Boot with: -uia_exclude_hs uia_include=HS03,HS14

That will exclude the HSxx ports that are not SSxx so you'll be able to test the SSxx ports.

Be careful to spell the kernel flags correctly.
It seems I was not spelling the flags correctly. I could boot with HS excluded and test my SS ports. However, after making the SSDT only half of them are working at full USB 3 speeds. How is that possible?

I have 2 front, 6 rear USB 3 ports and 1 type C port (plus 2 internal). Since I have my keyboard and a charging cable connected I excluded their respective SSXX in the SSDT. The result was only both front and 2 rear full speed working, leaving other 2 and the type C at 2.0 speeds.

In addition, only 3.0 external drives work at full speed. My little 3.1 samsung flash drive only works at 2.0 speeds even if connected to one SS working port.

Is this something related to the port limit? I attach debug files again, using the freshly generated SSDT.
 

Attachments

Joined
Sep 22, 2016
Messages
289
Motherboard
Z170X-UD5 TH - Clover
CPU
i7-6700K
Graphics
GTX 970
Mac
Mac mini
Mobile Phone
iOS
Is this something related to the port limit?
I reccomend to start from scratch! Remove everything that might affect your USB, use latest USBInjectAll.kext with port limit patch. Remove all USB devices you can, except mouse and keyboard if you don't have Bluetooth accessories. Reboot. Also make sure that you have valid BIOS settings for your board.

Create an image or drawing of all mapped ports (an example below) by using IORegistryExplorer 2.1. Inject USB device (use USB3 device) into port and see what port is used for that item. Finally you should have proper map. Then start testing desired port for speed etc by using various USB devices to see how devices on this port will perform.

port-mapping-01.jpg
 
Joined
Aug 5, 2012
Messages
43
Motherboard
Gigabyte GA-Z170X-Gaming 7
CPU
i7 7700K
Graphics
Sapphire AMD Radeon RX 580 4GB NITRO+
Mac
Mac Pro
Classic Mac
iMac
Mobile Phone
iOS
I'm having a little dificulty making my SSDT work. Let me explain.
I followed the instructions, to the letter, from post one.
I used the method where I firstly disabled SS0x & USR1 & 2 and found and logged all the HS ports / UsbConnector values with comments.
Secondly I excluded the HS and logged all the SS ports / UsbConnector values.
So far so good, this is the end product:
DefinitionBlock ("", "SSDT", 2, "hack", "_UIAC", 0)
{
Device(UIAC)
{
Name(_HID, "UIA00000")

Name(RMCF, Package()
{
"8086_a12f", Package()
{
"port-count", Buffer() { 26, 0, 0, 0 },
"ports", Package()
{
"HS01", Package() // Front & Rear riser 1 & 2 (hub)
{
"UsbConnector", 3,
"port", Buffer() { 1, 0, 0, 0 },
},
"HS02", Package() // 3rd Row Right
{
"UsbConnector", 3,
"port", Buffer() { 2, 0, 0, 0 },
},
"HS03", Package() // Rear Top Left
{
"UsbConnector", 3,
"port", Buffer() { 3, 0, 0, 0 },
},
"HS04", Package() // Rear Top Right
{
"UsbConnector", 3,
"port", Buffer() { 4, 0, 0, 0 },
},
"HS05", Package() // 2nd Row Left
{
"UsbConnector", 3,
"port", Buffer() { 5, 0, 0, 0 },
},
"HS06", Package() // 2nd Row Right
{
"UsbConnector", 3,
"port", Buffer() { 6, 0, 0, 0 },
},
"HS07", Package() // USB2 Riser Rear Right
{
"UsbConnector", 3,
"port", Buffer() { 7, 0, 0, 0 },
},
"HS08", Package() // USB2 Riser Rear Left
{
"UsbConnector", 3,
"port", Buffer() { 8, 0, 0, 0 },
},
"SS01", Package() // Front -rear riser - USB 01
{
"UsbConnector", 3,
"port", Buffer() { 11, 0, 0, 0 },
},
"SS02", Package() // 3rd Row Right
{
"UsbConnector", 3,
"port", Buffer() { 12, 0, 0, 0 },
},
"SS03", Package() // Rear Top Left
{
"UsbConnector", 3,
"port", Buffer() { 13, 0, 0, 0 },
},
"SS04", Package() // Rear Top Right
{
"UsbConnector", 3,
"port", Buffer() { 14, 0, 0, 0 },
},
"SS05", Package() // 2nd Row Left
{
"UsbConnector", 3,
"port", Buffer() { 15, 0, 0, 0 },
},
"SS06", Package() // 2nd Row Right
{
"UsbConnector", 3,
"port", Buffer() { 16, 0, 0, 0 },
},
},
},
})
}
}
//EOF
I then proceeded to create the AML file, copying it into the /clover/ACPI/patched folder as directed.
I then rebooted.
In the IORegistryExplorer all the ports were listed as expected but none of the USB3 ports were functioning at all. The HS ports were exactly as they should have been.
I then tried re-installing the XHCI-unsupported.kext, then rebooting.... same thing USB2 fine, USB3 no-show. The SS0 ports were all listed, but dorment.

Long story short I have now been battling this for a total of about eight hours, I'm in my seventies and really don't have enough hours of my life left to continue!!! :D
Been through the whole procedure three times in total, trying all variations (with port patch, without port patch, with XHCI-unsupported.kext, then without etc)
I must be going wrong somewhere, but I really have no idea where, suggestions would be so useful.
Thank you in advance.

One question I forgot to ask, when using the method I mentioned first (splitting HS then SS) am I supposed to leave the kexts USBInjectAll.kext and XHCI-unsupported.kext in place or remove them?
 
Last edited:
Top