Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

Just one question. I am using 10.14.6, does the USBInjectAll.kext go into L/E? I can't find it in System Info, but hackintool reports it is installed, and Clover log reads that it was injected.
where do you have your other kexts?
 
I put the ones that i am injecting into the Clover Other folder.
 

Attachments

  • Screen Shot 2020-03-27 at 1.21.10 PM.png
    Screen Shot 2020-03-27 at 1.21.10 PM.png
    139.7 KB · Views: 59
hey everyone :)
I starting to loose my mind with this :banghead: I have read over and over again the instruction but with out any success to makes my SSDT work My Mother board Is Asus Z370-I so I have some questions, sorry if I ask some very stupid questions:roll2:


"HS09",
Package () What is this Package I have check some other SSDT and some peoples have nothing ?
{
"UsbConnector",
0x00,
"port",
Buffer (0x04) What is this Buffer I have check some other SSDT and some peoples have nothing?
{0x09, 0x00, 0x00, 0x00}
},

"HS10",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x0A, 0x00, 0x00, 0x00}. does a letter instead of a number is correct, the app IORegistryExplorer give me this adresse ?
},



here you can find my entire code



DefinitionBlock ("SSDT-USB.aml", "SSDT", 1, "sample", "USBFix", 0x00003000)
{
// "USBInjectAllConfiguration" : override settings for USBInjectAll.kext
Device(UIAC)
{
Name(_HID, "UIA00000")
// "RehabManConFiguration"
Name(RMCF, Package()
{
// XHC overrides for 100-series boards
"8086_a2af", Package()
{
"port-count",
Buffer ()
{0x15, 0x00, 0x00, 0x00},

"ports",
Package ()
{
"HS01", // USB C FRONT
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer ()
{0x01, 0x00, 0x00, 0x00}
},

"HS03",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer ()
{0x03, 0x00, 0x00, 0x00}
},

"HS04",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x04, 0x00, 0x00, 0x00}
},

"HS05",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x05, 0x00, 0x00, 0x00}
},

"HS06", // USB C BACK
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer (0x04)
{0x06, 0x00, 0x00, 0x00}
},

"HS07",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x07, 0x00, 0x00, 0x00}
},

"HS08",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x08, 0x00, 0x00, 0x00}
},

"HS09",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x09, 0x00, 0x00, 0x00}
},

"HS10",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x0A, 0x00, 0x00, 0x00}
},

"HS13", // AURA LED
Package ()
{
"UsbConnector",
0x255,
"port",
Buffer (0x04)
{0x0D, 0x00, 0x00, 0x00}
},

"HS14", //BCM
Package ()
{
"UsbConnector",
0x255,
"port",
Buffer (0x04)
{0x0E, 0x00, 0x00, 0x00}
},

"SS01", // USB C FRONT
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer (0x04)
{0x11, 0x00, 0x00, 0x00}
},

"SS03",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x13, 0x00, 0x00, 0x00}
},

"SS04",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x14, 0x00, 0x00, 0x00}
},

"SS05",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x15, 0x00, 0x00, 0x00}
},
}
}
})
}
}
 
hey everyone :)
I starting to loose my mind with this :banghead: I have read over and over again the instruction but with out any success to makes my SSDT work My Mother board Is Asus Z370-I so I have some questions, sorry if I ask some very stupid questions:roll2:


"HS09",
Package () What is this Package I have check some other SSDT and some peoples have nothing ?
{
"UsbConnector",
0x00,
"port",
Buffer (0x04) What is this Buffer I have check some other SSDT and some peoples have nothing?
{0x09, 0x00, 0x00, 0x00}
},

"HS10",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x0A, 0x00, 0x00, 0x00}. does a letter instead of a number is correct, the app IORegistryExplorer give me this adresse ?
},



here you can find my entire code



DefinitionBlock ("SSDT-USB.aml", "SSDT", 1, "sample", "USBFix", 0x00003000)
{
// "USBInjectAllConfiguration" : override settings for USBInjectAll.kext
Device(UIAC)
{
Name(_HID, "UIA00000")
// "RehabManConFiguration"
Name(RMCF, Package()
{
// XHC overrides for 100-series boards
"8086_a2af", Package()
{
"port-count",
Buffer ()
{0x15, 0x00, 0x00, 0x00},

"ports",
Package ()
{
"HS01", // USB C FRONT
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer ()
{0x01, 0x00, 0x00, 0x00}
},

"HS03",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer ()
{0x03, 0x00, 0x00, 0x00}
},

"HS04",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x04, 0x00, 0x00, 0x00}
},

"HS05",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x05, 0x00, 0x00, 0x00}
},

"HS06", // USB C BACK
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer (0x04)
{0x06, 0x00, 0x00, 0x00}
},

"HS07",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x07, 0x00, 0x00, 0x00}
},

"HS08",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x08, 0x00, 0x00, 0x00}
},

"HS09",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x09, 0x00, 0x00, 0x00}
},

"HS10",
Package ()
{
"UsbConnector",
0x00,
"port",
Buffer (0x04)
{0x0A, 0x00, 0x00, 0x00}
},

"HS13", // AURA LED
Package ()
{
"UsbConnector",
0x255,
"port",
Buffer (0x04)
{0x0D, 0x00, 0x00, 0x00}
},

"HS14", //BCM
Package ()
{
"UsbConnector",
0x255,
"port",
Buffer (0x04)
{0x0E, 0x00, 0x00, 0x00}
},

"SS01", // USB C FRONT
Package ()
{
"UsbConnector",
0x09,
"port",
Buffer (0x04)
{0x11, 0x00, 0x00, 0x00}
},

"SS03",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x13, 0x00, 0x00, 0x00}
},

"SS04",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x14, 0x00, 0x00, 0x00}
},

"SS05",
Package ()
{
"UsbConnector",
0x03,
"port",
Buffer (0x04)
{0x15, 0x00, 0x00, 0x00}
},
}
}
})
}
}


Hi there..

Your "Buffer" values should be empty so "Buffer ()" not "Buffer (0x04)". This problem seems to have started at HS04 for some reason.

Yes, "Package" should be empty too, so : "Package ()" etc.

Yes, "0x0A, 0x00, 0x00, 0x00" is fine, as is "0x0a, 0x00, 0x00, 0x00" or you could use "10, 0, 0, 0" etc., etc.

Remember your motherboard features an extra ASMedia chipset for the USB3.1 Gen 2 front-panel port. As such this controller is not managed by macOS, only the Intel ports are.

Try running Hackintool and check the USB section for more detail.

:)
 
Hey
Hi there..

Your "Buffer" values should be empty so "Buffer ()" not "Buffer (0x04)". This problem seems to have started at HS04 for some reason.

Yes, "Package" should be empty too, so : "Package ()" etc.

Yes, "0x0A, 0x00, 0x00, 0x00" is fine, as is "0x0a, 0x00, 0x00, 0x00" or you could use "10, 0, 0, 0" etc., etc.

Remember your motherboard features an extra ASMedia chipset for the USB3.1 Gen 2 front-panel port. As such this controller is not managed by macOS, only the Intel ports are.

Try running Hackintool and check the USB section for more detail.

:)

Hey Thanks you so much for your answers I will try that right now :):)
 
Been trying a few things. FOr some reason I am having trouble getting only the ports I want recognized, recognized. Seems that something is overriding any SSDT I put in. Do I need to Drop tables? Check something in Clover to get it to work? Thank you again.
 

Attachments

  • configPORTS2.plist
    15 KB · Views: 64
Been trying a few things. FOr some reason I am having trouble getting only the ports I want recognized, recognized. Seems that something is overriding any SSDT I put in. Do I need to Drop tables? Check something in Clover to get it to work? Thank you again.


I think you may need to change the format of your boot-arguments - use a comma separator instead of a semi-colon: -uia_exclude=UHC1,UHC2,UHC5,UHC6 etc. I'm not 100% sure this is a problem, but @RehabMan uses commas!

Also use one method or the other - SSDT-UIAC.aml -OR- -uia_include/-uia_exclude boot-arguments etc. It makes no sense to use both. With USBInjectAll.kext and a port-limit removal patches in place you have access to all your USB ports, then you can use boot arguments to reduce the numbers and exclude unwanted ports.

Personally of the options here, I prefer USBInjectAll and an SSDT-UIAC.aml.

:)
 
Thank you. I have been trying so many different things. I will try your syntax for the uia boot flag. If this works, then I can try and figure out how to get my Bluetooth adapter working again, and the ports that don't seem to work if I block ports that are named the same (bridge ports?), but on different controllers.
I have been trying to figure this out so I can update to Catalina and play with that. Thank you once again.
 
Hello, I'm struggling with USB port configuration. I'm on Catalina 10.15.4.

So far I've followed these steps:
- Via Hackintool, on L/E i've got : FakePCIID_XHCIMux.kext, FakePCIID.kext, USBInjectAll.kext
- On Clover Configurator I've added the limit patch:

1585519268053.png

- I added a boot argument "-uia_ignore_rmcf" (seen on Rehabsman guide)

Still, in both Hackintool and IOReg, looks like all my USB devices are under the EHCI controllers. XHCI seems not being used at all.

1585519505923.png
1585519530948.png
 
Last edited:
Hello, I'm struggling with USB port configuration. I'm on Catalina 10.15.4.

So far I've followed these steps:
- Via Hackintool, on L/E i've got : FakePCIID_XHCIMux.kext, FakePCIID.kext, USBInjectAll.kext
- On Clover Configurator I've added the limit patch:
View attachment 458238
- I added a boot argument "-uia_ignore_rmcf" (seen on Rehabsman guide)

Still, in both Hackintool and IOReg, looks like all my USB devices are under the EHCI controllers. XHCI seems not being used at all.

View attachment 458241
View attachment 458242


Hi there.

Okay, I would suggest you remove FakePCIID_XHCIMux.kext, FakePCIID.kext and USBInjectAll.kext from L/E and rebuild your kext caches with the Terminal command:

Code:
sudo kextcache -i /

Once done put only USBInjectAll.kext in the EFI partition EFI/CLOVER/kexts/Other folder. If you need FakePCIID.kext for any other reason put it there also, otherwise don't bother. Do not re-install FakePCIID_XHCIMux.kext.

That should straighten up the XHCI controller.

The only reason to use the "-uia_ignore_rmcf" boot-command with USBInjectAll.kext is if you want to disable an already installed SSDT-UIAC.aml patch.

Come back to us once those steps have been taken :thumbup:
 
Back
Top