Contribute
Register

[Guide] Creating a Custom SSDT for USBInjectAll.kext

I've gone through the steps and found these ports:
HS01 (SS01) - HS06 (SS06) external
HS08 internal bluetooth

Created the SSDT and dropped it in.

Code:
// SSDT-UIAC-GA-Z170N-WIFI_2.0.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//

// 2017-04-09 BLT

// Gigabyte GA-Z170N-wifi rev 2.0 motherboard

// backplane
// to the left / above the DVI port
// top / right: HS06/SS06
// bottom / left: HS05/SS05
// to the left / below the right-most ethernet port
// top / right: HS04/SS04
// bottom / left: HS03/SS03
// USB 3.0 / Type C... no device with this connector to test :(

// case connector (2 ports)
// #1 (front left): HS01/SS01
// #2 (front right): HS02/SS02

// trimmed SSDT-UIAC.dsl for
// 1. Skylake
// 2. 8086_a12f
// 3. ports above
// HS01(SS01) - HS06(SS06), HS08

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()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS08", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "SS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SS04", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SS05", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                    "SS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 22, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
//EOF


I *think* I've removed everything following the discovery phase (including stuff in /S/L/E and /L/E), but I still have HS07, HS09 - HS14 showing up in ioRegExplorer. (What to remove was a little bit unclear for me.)

Can someone have a look at my config?

thanks in advance...
 

Attachments

  • hackintosh01_EFI_2017-04-09.zip
    19.7 MB · Views: 94
  • hackintosh01_UIAC_2017-04-09.ioreg
    4.8 MB · Views: 144
I've gone through the steps and found these ports:
HS01 (SS01) - HS06 (SS06) external
HS08 internal bluetooth

Created the SSDT and dropped it in.

Code:
// SSDT-UIAC-GA-Z170N-WIFI_2.0.dsl
//
// This SSDT can be used as a template to build your own
// customization for USBInjectAll.kext.
//
// This SSDT contains all ports, so using it is the same as without
// a custom SSDT.  Delete ports that are not connected or ports you
// do not need.
//
// Change the UsbConnector or portType as needed to match your
// actual USB configuration.
//

// 2017-04-09 BLT

// Gigabyte GA-Z170N-wifi rev 2.0 motherboard

// backplane
// to the left / above the DVI port
// top / right: HS06/SS06
// bottom / left: HS05/SS05
// to the left / below the right-most ethernet port
// top / right: HS04/SS04
// bottom / left: HS03/SS03
// USB 3.0 / Type C... no device with this connector to test :(

// case connector (2 ports)
// #1 (front left): HS01/SS01
// #2 (front right): HS02/SS02

// trimmed SSDT-UIAC.dsl for
// 1. Skylake
// 2. 8086_a12f
// 3. ports above
// HS01(SS01) - HS06(SS06), HS08

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()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 3, 0, 0, 0 },
                    },
                    "HS04", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 4, 0, 0, 0 },
                    },
                    "HS05", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS08", Package()
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "SS01", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SS02", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SS03", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SS04", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SS05", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 0, 0, 0 },
                    },
                    "SS06", Package()
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 22, 0, 0, 0 },
                    },
                },
            },
        })
    }
}
//EOF


I *think* I've removed everything following the discovery phase (including stuff in /S/L/E and /L/E), but I still have HS07, HS09 - HS14 showing up in ioRegExplorer. (What to remove was a little bit unclear for me.)

Can someone have a look at my config?

thanks in advance...

Your ioreg shows USBInjectAll.kext is not installed.
Also, your config.plist is corrupt.
Code:
SPEEDY-NUC:Downloads rehabman$ plutil -lint /Users/rehabman/Downloads/EFI/CLOVER/config.plist 
/Users/rehabman/Downloads/EFI/CLOVER/config.plist: Encountered unexpected character k on line 403 while looking for close tag
 
Your ioreg shows USBInjectAll.kext is not installed.
Also, your config.plist is corrupt.
Code:
SPEEDY-NUC:Downloads rehabman$ plutil -lint /Users/rehabman/Downloads/EFI/CLOVER/config.plist
/Users/rehabman/Downloads/EFI/CLOVER/config.plist: Encountered unexpected character k on line 403 while looking for close tag

Thanks for the quick look @RehabMan ... appreciate it.

It was not clear to me what needed to stay and what needed to go based on the instructions. ;)

I've fixed config.plist - it was just a missing angle bracket from me scrubbing the serial numbers from the file. See attached.

I moved USBInjectAll.kext back into the EFI/CLOVER/kexts/Other folder and ioregistryexplorer looks good to me now. Can you have another look please?

thanks in advance...
 

Attachments

  • config.plist
    7.7 KB · Views: 240
  • hackintosh01_UIAC_2017-04-10.ioreg
    4.9 MB · Views: 107
and ioregistryexplorer looks good to me now. Can you have another look please?

This looks as you would expect. Note that the port configuration on XHC is now as you (presumably) have in your SSDT.
 
Tried to follow the guide. However the EHC1 / EH01 are missing.
Is this a problem?
IOReg is attached.
 

Attachments

  • Mac Pro 6.1.zip
    1.2 MB · Views: 115
Tried to follow the guide. However the EHC1 / EH01 are missing.
Is this a problem?
IOReg is attached.

That is common. EH01, EH02 is routed through XHC Controller. From looking at ioreg HS Ports are USB 2.0, SSP Ports are USB 3.0. Need to remove ports that are not being used you will notice that Ports which are used have an >. HS01, HS07, HS09, SSP5 are being used. Note that Bluetooth comes under Internal (225).
 
Tried to follow the guide. However the EHC1 / EH01 are missing.
Is this a problem?
IOReg is attached.

If you disable the EHCI controller, then you will find no EHCx/EH0x in ioreg.
You should look carefully at your BIOS settings for XHCI (XHCI enabled, vs. XHCI "auto" and/or "smart auto").
"enabled" will disable the EHCI controller.
Note: If you can fit all the ports you need within the 15-port limit on XHC, it is actually the preferred way...
 
Hello RehabMan.... that is helpful thanks.
I have configured as follows:
  • Intel xHCI Mode Enabled
  • EHCI Legacy Support Disable
  • xHCI Hand-off Enabled
  • EHCI Hand-off Disable
What is interesting.... if I disable xHCI Handoff..... it does not boot anymore. Can you imagine why.... is it even a problem i should investigate? My hope in sorting these USB issues out is that I have random resets when waking from sleep.
Will try with different EHCI settings....and look at the ports I need as you recommend.

Best, Mikel
 
if I disable xHCI Handoff..... it does not boot anymore. Can you imagine why....

I guess you're booting from USB and don't have config.plist/Devices/USB/FixOwnership=true.
 
Back
Top