- Joined
- Feb 3, 2017
- Messages
- 183
- Motherboard
- Dell XPS 13 9350 - BIOS 1.7
- CPU
- i7-6500U
- Graphics
- HD 520, 3200 x 1800
- Mac
- Mobile Phone
Update 14/12/19
You can still do below but there is an easier ways to do this now - if you are not interested in the technical background -
USB using Hackintool
This is as per title a custom SSDT GA-Z170N-WIFI Mobo only.
*****
update 12 may 2018
updated my dsl .aml with correct porttypes for USB-C (porttype dec 10 or hex x0A, I have USBC without switch, so this creates an extra SS port when flipping connector over )and Express Card (porttype 2)
incorporated EC object and USBX object to allow correct powerproperties injection
as per link below.
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
you can see my new dsl at post
#7
**********
1. Bios Options
XHCI - Smart auto
2. Disabling the default injectors
There are no EHCI controllers in 100 series so no need to patch for apple’s own default controller injectors.
Not sure about the second class of injectors (hub) (I don’t fully understand that yet) , will look at that if I run into problems.
See
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
3. Install USBInjectAll.Kext
Install to /Library/Extensions
sudo cp -R Release/USBInjectAll.kext /Library/Extensions
sudo touch /Library/Extensions && sudo kextcache -u /
4. Install disable port limit patch
On this machine I have still Sierra 10.12.6 installed.
So find the patch in the file
config_patches.plist @ https://github.com/RehabMan/OS-X-USB-Inject-All
There is a 10.12.x patch for XHCI. (Great!)
<dict>
<key>Comment</key>
<string>change 15 port limit to 26 in XHCI kext</string>
<key>MatchOS</key>
<string>10.12.x</string>
<key>Name</key>
<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
<key>Find</key>
<data>g710////EA==</data>
<key>Replace</key>
<data>g710////Gw==</data>
</dict>
Open your config.plist on your EFI partition with PlistEditPro and add an entry under KernelAndKextPatches/KextstoPatch
5. Testing ports
After rebooting
Open your IoRegistryExplorer
IOResources/PCI0@0/AppleACPIPCO/XHC@14/XHC@14000000
So
HS01 to HS14
SS01 to SS10
USR1 to USR2
By plugging in a USB2/3 hub ( I also had a USB-C hub ) into the ports you can see which ports correspond to which ports.
So I found
HS01 to HS07 , and
SS01 to SS07 , and
HS08 internal connected to my BCM2045A (I replace stock with wifi /BT card Dell 1830 )
6. Choosing ports for custom SSDT
To stay underneath the 14 port limit of XHC
I choose to allocate following 13 ports (you may want to change to others)
HS01/SS01 & HS02/SS02 for easy usb2/3 access at the top of my case
SS03: usb 3 only - have permanent external USB3 HDD attached
SS05 USB 3 only - I have permanent external USB3 HDD attached (so don’t need USB2)
HS04/SS04 & HS06/SS06 - two ports USB2/3 at the back
HS07/SS07: USB -C port
HS08: used for Broadcom B/T mini pcie m2 card
7. Creating Custom SSDT - DSL files
Compile this file and place it in EFI/Clover/ACPI/patched.
In MaciASL, you can compile as AML by using File -> Save As, format: ACPI Machine Language Binary. Save it to a location you know how to navigate to (desktop).
Then mount your EFI partition and copy it to EFI/Clover/ACPI/patched. You can use any name in the patched so I used SSDT-UIAC-Z170N WIFI 13 Ports.aml.
I have attached the .aml if you wanted to use.
***Please be aware that the layout of the ports may not suit your purposes, it serves mine. So if it doesn't create you own .dsl with the ports you like and compile
8. Reboot and check if SSDT is working
HS02 is my USB keyboard
HS08 Still broadcom
SS03 external USB3 HDD
SS05 external USB3 HDD
Working!
9. Remove the port limit patch
from entry under KernelAndKextPatches/KextstoPatch in your config.plist and reboot[/B]
You can still do below but there is an easier ways to do this now - if you are not interested in the technical background -
USB using Hackintool
- Tools/Solutions
I can claim NO credit for finding this solution other than being able to follow the comprehensive guides by ReHabman
All credit to @RehabMan - Thank You! Thank You! Thank You!
Sites used
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
The MaciASL used by this guide is available here:
https://bitbucket.org/RehabMan/os-x-maciasl-patchmatic/downloads/
This is as per title a custom SSDT GA-Z170N-WIFI Mobo only.
*****
update 12 may 2018
updated my dsl .aml with correct porttypes for USB-C (porttype dec 10 or hex x0A, I have USBC without switch, so this creates an extra SS port when flipping connector over )and Express Card (porttype 2)
incorporated EC object and USBX object to allow correct powerproperties injection
as per link below.
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
you can see my new dsl at post
#7
**********
1. Bios Options
XHCI - Smart auto
2. Disabling the default injectors
There are no EHCI controllers in 100 series so no need to patch for apple’s own default controller injectors.
Not sure about the second class of injectors (hub) (I don’t fully understand that yet) , will look at that if I run into problems.
See
https://www.tonymacx86.com/threads/guide-10-11-usb-changes-and-solutions.173616/
3. Install USBInjectAll.Kext
Install to /Library/Extensions
sudo cp -R Release/USBInjectAll.kext /Library/Extensions
sudo touch /Library/Extensions && sudo kextcache -u /
4. Install disable port limit patch
On this machine I have still Sierra 10.12.6 installed.
So find the patch in the file
config_patches.plist @ https://github.com/RehabMan/OS-X-USB-Inject-All
There is a 10.12.x patch for XHCI. (Great!)
<dict>
<key>Comment</key>
<string>change 15 port limit to 26 in XHCI kext</string>
<key>MatchOS</key>
<string>10.12.x</string>
<key>Name</key>
<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
<key>Find</key>
<data>g710////EA==</data>
<key>Replace</key>
<data>g710////Gw==</data>
</dict>
Open your config.plist on your EFI partition with PlistEditPro and add an entry under KernelAndKextPatches/KextstoPatch
5. Testing ports
After rebooting
Open your IoRegistryExplorer
IOResources/PCI0@0/AppleACPIPCO/XHC@14/XHC@14000000
So
HS01 to HS14
SS01 to SS10
USR1 to USR2
By plugging in a USB2/3 hub ( I also had a USB-C hub ) into the ports you can see which ports correspond to which ports.
So I found
HS01 to HS07 , and
SS01 to SS07 , and
HS08 internal connected to my BCM2045A (I replace stock with wifi /BT card Dell 1830 )
6. Choosing ports for custom SSDT
To stay underneath the 14 port limit of XHC
I choose to allocate following 13 ports (you may want to change to others)
HS01/SS01 & HS02/SS02 for easy usb2/3 access at the top of my case
SS03: usb 3 only - have permanent external USB3 HDD attached
SS05 USB 3 only - I have permanent external USB3 HDD attached (so don’t need USB2)
HS04/SS04 & HS06/SS06 - two ports USB2/3 at the back
HS07/SS07: USB -C port
HS08: used for Broadcom B/T mini pcie m2 card
7. Creating Custom SSDT - DSL files
- use SSDT-UIAC-ALL.dsl as a template (https://github.com/RehabMan/OS-X-USB-Inject-All/raw/master/SSDT-UIAC-ALL.dsl)
- open the .dsl file in maciASL
- remove configuration sections that don't apply to the target hardware, in this case the target hardware is pci8086,a12f (see IOName property for XHC14 in ioregiststry explorer, picture above) so just kept the 8086_a12f", Package()
- remove ports from the various sections that are not needed: just keeping HS01, HS02, HS05,HS06,HS07,HS08, SS01, SS02,SS03,SS04,SS05,SS06
- change UsbConnector values to match physical hardware/ports
Code:
// SSDT-UIAC-ALL.dsl GA-Z170N-WIFI 13 Ports chosen
//
// //
// Note:
//
//
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() // see my guide for exact location of this port and other ports
{
"UsbConnector", 3,
"port", Buffer() { 1, 0, 0, 0 },
},
"HS02", Package()
{
"UsbConnector", 3,
"port", Buffer() { 2, 0, 0, 0 },
},
"HS04", Package()
{
"UsbConnector", 3,
"port", Buffer() { 4, 0, 0, 0 },
},
"HS06", Package()
{
"UsbConnector", 3,
"port", Buffer() { 6, 0, 0, 0 },
},
"HS07", Package()
{
"UsbConnector", 3,
"port", Buffer() { 7, 0, 0, 0 },
},
"HS08", Package()
{
"UsbConnector", 0,
"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 },
},
"SS07", Package()
{
"UsbConnector", 3,
"port", Buffer() { 23, 0, 0, 0 },
},
},
},
})
}
}
//EOF
Compile this file and place it in EFI/Clover/ACPI/patched.
In MaciASL, you can compile as AML by using File -> Save As, format: ACPI Machine Language Binary. Save it to a location you know how to navigate to (desktop).
Then mount your EFI partition and copy it to EFI/Clover/ACPI/patched. You can use any name in the patched so I used SSDT-UIAC-Z170N WIFI 13 Ports.aml.
I have attached the .aml if you wanted to use.
***Please be aware that the layout of the ports may not suit your purposes, it serves mine. So if it doesn't create you own .dsl with the ports you like and compile
8. Reboot and check if SSDT is working
HS02 is my USB keyboard
HS08 Still broadcom
SS03 external USB3 HDD
SS05 external USB3 HDD
Working!
9. Remove the port limit patch
from entry under KernelAndKextPatches/KextstoPatch in your config.plist and reboot[/B]
Attachments
Last edited: