Contribute
Register

[SUCCESS] ASUS Maximus VII Hero - HIGH SIERRA - 10.13.4 - Custom SSDT for USBInjectAll.kext

Joined
Feb 4, 2017
Messages
168
Motherboard
Dell XPS 13 9350 - BIOS 1.7
CPU
i7-6600U
Graphics
HD 520, 3200 x 1800
Mac
iMac, MacBook Air, Mac mini
Mobile Phone
iOS
This is super helpful - I've been using this in tandem with @RehabMan's guides. I noticed that you didn't enable the USB2 ports that pair with your SSP3,4,5, and 6 ports. I'm assuming that the only issue with doing this is that those ports will be USB3 only i.e. USB2 devices won't be recognized?
That is correct, to stay under the 15 port limit I had to make some choices , I choose to have USB 3 ports only for ssp3-6 locations.
But I could have chosen 2xUSB2 and 2xUSB3 for example, or some other combo.
 
Joined
Apr 11, 2013
Messages
2
Motherboard
Asus Z87 Maximus VI Hero
CPU
i7-4770K @ 4.5
Graphics
Nvidia GTX 1080 Ti
Mac
iMac, MacBook
Mobile Phone
iOS
Success! Thanks so much YoshiMac.

I disabled the port limit patch in my config.plist using Clover Configurator, but is it best to leave the built-in port injectors disabled?
 
Joined
Feb 10, 2018
Messages
27
Motherboard
ASUS Maximus Ranger VII Z97
CPU
i7-4790K
Graphics
GTX 1060
Mac
MacBook Pro
Mobile Phone
iOS
Followed this guide with Asus Maximus Ranger VII and NZXT S340 Elite. All ports are now functional. I added HS11 as 15th port.

HS01/HS02 UsbConnector 3 : usb2 ports that are on usb3
HS05/HS06/HS12/HS14 UsbConnector 0 : usb2 ports only
HS07/HS08/HS11 Usbconnector 255 : internal
SSP1/SPP2/SSP3/SSP4/SSP5/SSP6 Usbconnector 3 : usb 3 ports
 
Joined
Feb 27, 2015
Messages
145
Motherboard
ASUS Z370 Prime P
CPU
i7-8700K
Graphics
RX-580
Mac
MacBook Air
Mobile Phone
iOS
nice guid my ssdt for rear ports without chasis ports
 

Attachments

Joined
May 12, 2019
Messages
2
Motherboard
Asus Maximus 7 Ranger
CPU
i5-4460
Graphics
GTX 960 4Gb
  • 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/

Downloading latest USBInjectAll.kext
https://bitbucket.org/RehabMan/os-x-usb-inject-all/downloads/


as per title this DDST.aml is only for ASUS Maximus Vii Hero mob



Prologue

I started my first Customac (CustoMacMini) build last year in February. I was a completely noob and it was quite a learning experience but I got it to work.
At that time I came across the posts by RehabMan re: usb custom ssdt and to be honest I could not really get it.
Fast forward one year later and having just installed a second Customac (April 2018) (I had a windows/gaming PC - and wanted to have to ability to use it as a Mac).
I was experiencing problems with USB on this machine.
So I reread and reread (and reread …you get the idea) the posts by RRehabMan, and now they totally make sense. I can’t say I understand all the detail but a lot more than last year. They are very comprehensive and detailed posts. So my advice is, you may not get it the first time you read it but keep on reading and trying to understand all that is there and looking up terms you don’t understand etc. I can now understand why RehabMan keeps telling us to read the post… last year for me though I could just not get it even after reading and reading, I just had to build up more understanding over time.

this is my second hackingtosh/customac
View attachment 324912

* note : the SSDT creates 6 external USB3 ports - 6 external USB2 ports - and 2 internal USB2 ports
(one is used by Corsair link dongle in my case , keeping one internal free just in case when I install wifi/bluetooth combo card in future and bluetooth needs an internal)
**note: I choose to have 14 ports under XHCI only (not using FakePCIID_XHCIMux.kext )



1. Bios Options

XHCI - Smart auto
View attachment 323222


2. Disabling the default injectors

Patches ACPI/DSDT in Config.plist (use clover configurator (list of patches in ACPI) or plisteditor.pro)

Item 1:
Comment: change EHC1 to EH01
Find: <45484331>
Replace: <45483031>

Item 2:
Comment: change EHC2 to EH02
Find: <45484332>
Replace: <45483032># rename EHCI2 to EH02

View attachment 323224


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 for High Sierra 10.13.4

You can find the patch in the file
config_patches.plist @ https://github.com/RehabMan/OS-X-USB-Inject-All
Open the file, copy the section for 10.13.4 disable port limit in XHCI kext.
Note: the patch can be different for each version of OS, this patch is for 10.13.4.

<dict>
<key>Comment</key>
<string>disable port limit in XHCI kext (credit PMHeart)</string>
<key>MatchOS</key>
<string>10.13.4</string>
<key>Name</key>
<string>com.apple.driver.usb.AppleUSBXHCI</string>
<key>Find</key>
<data>g32UDw+DlwQAAA==</data>
<key>Replace</key>
<data>g32UD5CQkJCQkA==</data>
</dict>



Open your config.plist on your EFI partition with PlistEditPro and add an entry under KernelAndKextPatches/KextstoPatch

View attachment 323225
ONLY INSTALL PATCH TEMPORARILY - after finding all the ports info you need - remove port limit patch *********




5. Testing ports


After rebooting
Open your IoRegistryExplorer
Under iMac14,2-IOResources/PCI0@0/AppleACPIPCO/XHC@14/XHC@14000000
You will see all your ports under XHC

View attachment 323226


As you can see fully injected I have
HS01 to HS14: USB2 ports
SSP1 to SSP6 : USB3 ports
By plugging in a USB2/3 hub into the ports you can see which ports correspond to which ports.

As you know physical USB3 ports also have USB2 ports:
So the ports pair up like this SSP1-HS01, SSP2-HS02, SSP3-HS03, SSP4-HS04, SPP5-HS09, SPP6-HS10

Here are pictures showing where the ports are located on the Asus Maximus VII hero.

View attachment 324824 View attachment 324825

6. Choosing ports for custom SSDT

To stay underneath the 14 port limit of XHC
I choose to allocate following 14 ports

HS01 - HS02: two USB2 ports on the top of my case NZXT H440 (these are the combined USB2/3 ports)
HS05 - HS06 : two USB2 only ports on the top of my case
HS12 - HS14 : two USB2 only ports at the back of my case
HS07: internal USB2 connected to my corsair link PSU
HS08: internal USB2 unused (possibly for future bluetooth)

***update 12/4/18 I changed HS08 to HS11 - when you look at photos of where HS08 and HS11 are, you can see why I would choose HS11 over HS08

SSP1 - SSP2: two USB3 ports on the top of my case (relating to HS01/HS02)
SSP3 - SSP4: two USB3 only ports at the back
SSP5 - SSP6: two USB3 only ports at the back


View attachment 329724 View attachment 323230

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)
  • load the file in MaciASL.app
  • remove configuration sections that don't apply to the target hardware, in this case the target hardware is pci8086,8cB1 (see IOName property for XHC14 in ioregiststry explorer, picture above) so just kept the 8086_8xxx", Package()
  • remove ports from the various sections that are not needed: just keeping HS01, HS02, HS05,HS06,HS07,HS08, SSP1, SSP2,SSP3,SSP4,SSP5,SSP6
  • change UsbConnector values to match physical hardware/ports

HS01/HS02 UsbConnector 3 : usb2 ports that are on usb3
HS05/HS06/HS12/HS14 UsbConnector 0 : usb2 ports only
HS07/HS08 Usbconnector 255 : internal
SSP1/SPP2/SSP3/SSP4/SSP5/SSP6 Usbconnector 3 : usb 3 ports





The final SSDT-UIAC.dsl is:

Code:
// SSDT-UIAC-ASUS MAXIMUS VII XHI only 14 ports.dsl
//
// Maximus VII Hero MB only 6 USB3 and 8 USB2 defined on
// customization for USBInjectAll.kext.


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

        Name(RMCF, Package()
        {
                       "8086_8xxx", Package()
            {
                "port-count", Buffer() { 21, 0, 0, 0 },
                "ports", Package()
                {
                    "HS01", Package() // USB2 of USB3 top of case left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 1, 0, 0, 0 },
                    },
                    "HS02", Package() // USB2 of USB 3 top of case right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 2, 0, 0, 0 },
                    },
                    "HS05", Package() // USB2 top of case right
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 5, 0, 0, 0 },
                    },
                    "HS06", Package() // USB2 top of case left
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 6, 0, 0, 0 },
                    },
                    "HS07", Package() // corsair link dongle
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 7, 0, 0, 0 },
                    },
                    "HS08", Package() // USB2 internal USB 2
                    {
                        "UsbConnector", 255,
                        "port", Buffer() { 8, 0, 0, 0 },
                    },
                    "HS12", Package() // USB2 back of case top
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 12, 0, 0, 0 },
                    },
                    "HS14", Package() // USB 2 back of case bottom
                    {
                        "UsbConnector", 0,
                        "port", Buffer() { 14, 0, 0, 0 },
                    },
                    //HS15 is phantom port (port address 15 not used)
                    "SSP1", Package() // USB3 top of case left
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 16, 0, 0, 0 },
                    },
                    "SSP2", Package() // USB3 top of case right
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 17, 0, 0, 0 },
                    },
                    "SSP3", Package() // USB3 back of case middle top
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 18, 0, 0, 0 },
                    },
                    "SSP4", Package() // USB3 back of case middle bottom
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 19, 0, 0, 0 },
                    },
                    "SSP5", Package() // USB3 back of case right most top
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 20, 0, 0, 0 },
                    },
                    "SSP6", Package() // USB 3 back of case right most bottom
                    {
                        "UsbConnector", 3,
                        "port", Buffer() { 21, 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).
View attachment 326053 View attachment 326054


Then mount your EFI partition and copy it to EFI/Clover/ACPI/patched. You can use any name for the .aml file in /patched folder so mine is called SSDt-UIAC - Asus Maximus VII 14 ports.aml

***update
I have attached the .aml (replaced HS08 with HS11) 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

View attachment 323231

Working!

9. Remove the port limit patch

from entry under KernelAndKextPatches/KextstoPatch in your config.plist
I would like to ask if you could share your EFI folder with the installer because my computer configuration is identical to yours, but I can’t figure out how to configure USB
 
Joined
Feb 4, 2017
Messages
168
Motherboard
Dell XPS 13 9350 - BIOS 1.7
CPU
i7-6600U
Graphics
HD 520, 3200 x 1800
Mac
iMac, MacBook Air, Mac mini
Mobile Phone
iOS
here is the clover directory...

I would like to ask if you could share your EFI folder with the installer because my computer configuration is identical to yours, but I can’t figure out how to configure USB
just be aware serial numbers have been masked.
USB inject all should be installed to L/E
 

Attachments

Joined
May 12, 2019
Messages
2
Motherboard
Asus Maximus 7 Ranger
CPU
i5-4460
Graphics
GTX 960 4Gb
here is the clover directory...



just be aware serial numbers have been masked.
USB inject all should be installed to L/E
Thank you very much. You saved me :thumbup::clap:
 
Top