Contribute
Register

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

Status
Not open for further replies.
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.
 
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?
 
Yes. Built in injectors have to be left disabled.
Usbinjectall and your custom DSDT are taking care of injecting correct ports.
 
Last edited:
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
 
  • 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
 
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

  • CLOVER.zip
    3.3 MB · Views: 106
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:
 
So question, I have the same motherboard as you as well as a very similar case. The files should be same right? The USB 3 ports don't work. USB 2 works fine. The aml file is in the ACPI>patched and I ran the command for the kext. What else am I missing? I'm running Mojave if that's useful.
 
Sorry, I didn't know about that. Attached is that file. Let me know if you need any other info! Thanks!
 

Attachments

  • debug_29682.zip
    1.9 MB · Views: 76
Status
Not open for further replies.
Back
Top