Contribute
Register

A Beginner's Guide to Creating a Custom USB SSDT

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,632
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I configured in the past, but i still have same problem with Bluetooth , so i was trying again , this motherboard is driving me crazy....

I have the follow :

HS09 HSS2/SSS2 HS02/SS08 . HS14/SS05
HS10 HSS1/SSS1 HS01/SS07 . HS13/SS06




View attachment 416861

The port Highlighted in red i do not understand why are not corresponding ?
What i am doing wrong?
The ports you have highlighted in orange are the two ASMedia ports I pointed-out. If you have configured them in the past then excellent work.

Ports HS09 and HS10 are listed on the XHC tree in your IORegistryExplorer screengrab and appear to have devices plugged into them.

How does this relate to your Bluetooth problem?
 
Joined
Dec 16, 2016
Messages
109
Motherboard
Msi z270 pro carbon
CPU
i7 7700k
Graphics
RX 580 + GTX 1080
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
Android
Thank you for your fast answer

No i never configured them in the past they just work , Ports HS09 and HS10 are Mouse and KEyboard.
the Bluetooth and cooling are internal named HS12 , HS 07 . ( to be set as USB 2.0 with 255)
How came i have HS02 with USB 2 and SS08 with USB 3 should i have HS02 instead
I have a doubt how to configure

HS02/SS08 . HS14/SS05
HS01/SS07 . HS13/SS06


HS09 HSS2/SSS2 HS02/SS08 . HS14/SS05
HS10 HSS1/SSS1 HS01/SS07 . HS13/SS06

Screenshot 2019-07-16 at 22.15.22.png



My problem is that my Bluetooth after sleep same tie disconnect and freeze and USB connected are slower at weak up
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,632
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
No i never configured them in the past they just work
Okay. That is what I would expect :thumbup:

Looking at your screengrab from IORegistryExplorer you have all USB ports available. I would expect HS02 to also be SS02 but 16 addresses higher for the Z270 chipset, so 02,00,00,00 and 12,00,00,00 etc, unless MSI has done something unusual. HS08 would be SS08 - 08,00,00,00 & 18,00,00,00 etc.

You say you have configured the Internal ports as "UsbConnector" type 255. So have you created an SSDT for all 26 ports?
 
Joined
Dec 16, 2016
Messages
109
Motherboard
Msi z270 pro carbon
CPU
i7 7700k
Graphics
RX 580 + GTX 1080
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
Android
I have all port available because i delete all old SSDT and triyng again to set up, but what is blocking me is the difference between the usb 2 and 3 port i am wondered if is that the problem of my bluetooth and slow external usb after weak up from sleep
 
Joined
Dec 16, 2016
Messages
109
Motherboard
Msi z270 pro carbon
CPU
i7 7700k
Graphics
RX 580 + GTX 1080
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
Android
I just checked port HS13/SS06 . 0d 00 00 00 / 16 00 00 00 i dont understand
HS14/SS05 . 0e 00 00 00 / 15 00 00 00 i dont understand
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,632
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
I just checked port HS13/SS06 . 0d 00 00 00 / 16 00 00 00 i dont understand
HS14/SS05 . 0e 00 00 00 / 15 00 00 00 i dont understand
I don't see how USB2 port HS13 could also be USB3 port SS06...

Check which version of USBInjectAll.kext you are using.

Next, I would re-test your ports with a USB Flash-drive or hub.

Do you have any other *aml files in the "patched" directory?
 
Joined
Dec 16, 2016
Messages
109
Motherboard
Msi z270 pro carbon
CPU
i7 7700k
Graphics
RX 580 + GTX 1080
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
Android
No i dont have any aml in the patched directory, i am using last USBInjectAll.kext from Multibeast and Kext Updater, i was just creating the new aml file and replacing the port number with correct one, see in red below




// SSDT-UIAC-ALL.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.
//
// Note:
// portType=0 seems to indicate normal external USB2 port (as seen in MacBookPro8,1)
// portType=2 seems to indicate "internal device" (as seen in MacBookPro8,1)
// portType=4 is used by MacBookPro8,3 (reason/purpose unknown)
//

DefinitionBlock ("", "SSDT", 2, "hack", "_UIAC", 0)
{
Device(UIAC)
{
Name(_HID, "UIA00000")

Name(RMCF, Package()
{
"8086_a2af", Package()
{
"port-count", Buffer() { 26, 0, 0, 0 },
"ports", Package()
{
"HS01", Package()
{
"UsbConnector", 0,
"port", Buffer() { 1, 0, 0, 0 },
},
"HS02", Package()
{
"UsbConnector", 0,
"port", Buffer() { 2, 0, 0, 0 },
},
"HS03", Package()
{
"UsbConnector", 3,
"port", Buffer() { 3, 0, 0, 0 },
},
"HS04", Package()
{
"UsbConnector", 10,
"port", Buffer() { 4, 0, 0, 0 },
},
"HS07", Package()
{
"UsbConnector", 255,
"port", Buffer() { 7, 0, 0, 0 },
},
"HS09", Package()
{
"UsbConnector", 0,
"port", Buffer() { 9, 0, 0, 0 },
},
"HS10", Package()
{
"UsbConnector", 0,
"port", Buffer() { 0a, 0, 0, 0 },
},
"HS12", Package()
{
"UsbConnector", 255,
"port", Buffer() { 0c, 0, 0, 0 },
},
"HS13", Package()
{
"UsbConnector", 3,
"port", Buffer() { 0d, 0, 0, 0 },
},
"HS14", Package()
{
"UsbConnector", 3,
"port", Buffer() { 0e, 0, 0, 0 },
},
"SS03", Package()
{
"UsbConnector", 10,
"port", Buffer() { 13, 0, 0, 0 },
},
"SS04", Package()
{
"UsbConnector", 3,
"port", Buffer() { 14, 0, 0, 0 },
},
"SS05", Package()
{
"UsbConnector", 3,
"port", Buffer() { 15, 0, 0, 0 },
},
"SS06", Package()
{
"UsbConnector", 3,
"port", Buffer() { 16, 0, 0, 0 },
},
},
},
})
}
}
//EOF
 

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,632
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
No i dont have any aml in the patched directory, i am using last USBInjectAll.kext from Multibeast and Kext Updater, i was just creating the new aml file and replacing the port number with correct one, see in red below




// SSDT-UIAC-ALL.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.
//
// Note:
// portType=0 seems to indicate normal external USB2 port (as seen in MacBookPro8,1)
// portType=2 seems to indicate "internal device" (as seen in MacBookPro8,1)
// portType=4 is used by MacBookPro8,3 (reason/purpose unknown)
//

DefinitionBlock ("", "SSDT", 2, "hack", "_UIAC", 0)
{
Device(UIAC)
{
Name(_HID, "UIA00000")

Name(RMCF, Package()
{
"8086_a2af", Package()
{
"port-count", Buffer() { 26, 0, 0, 0 },
"ports", Package()
{
"HS01", Package()
{
"UsbConnector", 0,
"port", Buffer() { 1, 0, 0, 0 },
},
"HS02", Package()
{
"UsbConnector", 0,
"port", Buffer() { 2, 0, 0, 0 },
},
"HS03", Package()
{
"UsbConnector", 3,
"port", Buffer() { 3, 0, 0, 0 },
},
"HS04", Package()
{
"UsbConnector", 10,
"port", Buffer() { 4, 0, 0, 0 },
},
"HS07", Package()
{
"UsbConnector", 255,
"port", Buffer() { 7, 0, 0, 0 },
},
"HS09", Package()
{
"UsbConnector", 0,
"port", Buffer() { 9, 0, 0, 0 },
},
"HS10", Package()
{
"UsbConnector", 0,
"port", Buffer() { 0a, 0, 0, 0 },
},
"HS12", Package()
{
"UsbConnector", 255,
"port", Buffer() { 0c, 0, 0, 0 },
},
"HS13", Package()
{
"UsbConnector", 3,
"port", Buffer() { 0d, 0, 0, 0 },
},
"HS14", Package()
{
"UsbConnector", 3,
"port", Buffer() { 0e, 0, 0, 0 },
},
"SS03", Package()
{
"UsbConnector", 10,
"port", Buffer() { 13, 0, 0, 0 },
},
"SS04", Package()
{
"UsbConnector", 3,
"port", Buffer() { 14, 0, 0, 0 },
},
"SS05", Package()
{
"UsbConnector", 3,
"port", Buffer() { 15, 0, 0, 0 },
},
"SS06", Package()
{
"UsbConnector", 3,
"port", Buffer() { 16, 0, 0, 0 },
},
},
},
})
}
}
//EOF
Okay ...

As far a I can see the two items you have highlighted in red are correct.

There are errors though:

1) "port-count", Buffer() { 26, 0, 0, 0 }, - that should be "16,0,0,0"

2) Your graphic doesn't tell me what the port designations are, but are both HS04 and SS03 really the USB-C ports?

:)
 
Joined
Dec 16, 2016
Messages
109
Motherboard
Msi z270 pro carbon
CPU
i7 7700k
Graphics
RX 580 + GTX 1080
Mac
iMac, MacBook Pro, Mac mini
Mobile Phone
Android
Thank you for your help , I decide to use the hackintosh tool procedures and I get the attached file , everything's is working perfectly.
The method with a single all file was acting strange after restart same port was changing address and same were disappiring

After I post in patch the attached file i removed the port limit patch in kernel.

Now i have another small issue , if im using an hub connected to the internal port the machine is not going to sleep.
I need this hub for connect the RGB fan +H100i cooling, and Bluetooth, if i remove the hub i have to sacrifice the RGB fan, as soon I remove the hub everything's is back to normal , i tried with 2 different hub, is very strange.

I saw in the forum that different users are using this hub with out problem , it's possible that I cannot increase internal port with out have sleep issue
 

Attachments

Last edited:

UtterDisbelief

Moderator
Joined
Feb 13, 2012
Messages
3,632
Motherboard
Gigabyte Z390M Gaming
CPU
i5-9600K
Graphics
RX 560
Mac
iMac, Mac mini
Classic Mac
eMac, iBook
Mobile Phone
iOS
Thank you for your help , I decide to use the hackintosh tool procedures and I get the attached file , everything's is working perfectly.
The method with a single all file was acting strange after restart same port was changing address and same were disappiring

After I post in patch the attached file i removed the port limit patch in kernel.

Now i have another small issue , if im using an hub connected to the internal port the machine is not going to sleep.
I need this hub for connect the RGB fan +H100i cooling, and Bluetooth, if i remove the hub i have to sacrifice the RGB fan, as soon I remove the hub everything's is back to normal , i tried with 2 different hub, is very strange.

I saw in the forum that different users are using this hub with out problem , it's possible that I cannot increase internal port with out have sleep issue
It's looks as though you are actually using Hackintool to create your SSDTs. I can't help with that method but there is plenty of guidance from the author of the software.

Having said that, if you create your own SSD following the guide in this thread you should get a working USB system. The boring part is just identifying each port and numbering it.

Plugging-in a hub to an Internal header should work fine. This will not break the 15-port limit because as far as the XHC controller is concerned there is one item attached to the port. The item is a hub and what is attached to that does not use any more motherboard USB ports. Remember you can attach a USB hub to a real Mac too without any problems.

Personally I would set aside an Internal header just for the Bluetooth adapter and connect your hub to a different header. This will avoid the sleep problem you are having. Your motherboard has 4x USB3.1 Gen 1 internal ports and 4x USB2.0 internal ports. So a total of 8x internal ports should give you some freedom there.

:)
 
Last edited:
Top