Jump to content
1 post in this topic

Recommended Posts

USB port mapping on the Z390 Aorus Elite motherboard so that they do not exceed the limit imposed by macOS Catalina (15 ports). Setting the type of each port so that it works at the correct speed. Following the method proposed in the help integrated in headkaze Hackintool app.

Note: USB2 ports are referred as HSxx (HighSpeed) and USB3 as SS (SuperSpeed). Onboard USB2 hubs are shown as PRxx or USRxx.

macOS Catalina by design only can handle 15 USB ports maximum. No Mac exceeds or even comes close to that number but any motherboard we use to build a Hackintosh exceeds that number. For example, my Z390 Aorus Elite board comes with 4 USB2 ports + 1 USB3 Type-C port + 7 USB3 ports + 2 USB2 hubs. To count the ports, you have to know that that each USB2 port counts as 1 but each USB3 port (classic or type C) counts as 2, the USB2 part and the USB3 part. So my board comes with 14 USB3 ports (7 USB3 + 7 USB2) + 3 USB2 ports + 2 Type-C ports (1 USB3 + 1 USB2) + 2 USB2 hubs, total 21 ports. You can let the system work like this, but it is most likely that some ports do not work well or do not work at the appropriate speed and even that this affects other functions such as boot or sleep.

RehabMan has an extension, USBInjectAll.kext, which used in conjunction with the patch, written by pmheart and others, which removes the 15-port limit (Port-Limit Removal Patch, PLRP onwards), allows loading all ports on the motherboard however high their number is. Some users use their system with this configuration for the convenience of having all the ports on the board active but it is an unstable configuration intended only to work during port mapping but not permanently. USBInjectAll together with PLRP are the most widely used option to configure and mapping ports up to the number at 15 with their right speeds. To follow this method there is an excellent guide from UtterDisbelief titled "The New Beginner's Guide to USB Port Configuration".

In this article I am going to comment on another method, the one proposed in the Hackintool help instructions that, although it uses USBInjectAll, instead it does not use PLRP but commands included in USBInjectAll to exclude groups of ports at startup so that we can boot only with USB2 or USB3 active and assign ports to each of the 2 groups separately.

 

Thanks to headkaze, Rehabman, pmheart, UtterDisbelief and others who make these modifications possible.

Prerequisite: this board has the "Canon Lake PCH USB 3.1 xHCI" controller with device identifier A36D (8086: A36D) so it requires XHCI-unsupported.kext installed for the driver to be well recognized.

1. USBInjectAll

Copy the USBInjectAll extension to the EFI / CLOVER / kexts / Other folder. USBInjectAll requires that we have in Clover> DSDT some patches to rename XHCI to XHC / XHC1 to XHC / EHC1 to EH01 / EHC2 to EH02. From Skylake onwards there are no EHCI controllers so in my system (Coffee Lake) this change is not necessary. It is also not required to rename XHC1 to XHC. The only change that can be useful is the one from XHCI to XHC although I have tried with and without it and have observed no differences. To rename XHCI to XHC, add these lines in the DSDT> Patches section:

        <key>DSDT</key>
        <dict>
            <key>Patches</key>
            <array>
                <dict>
                    <key>Find</key>
                    <data>WEhDSQ==</data>
                    <key>Replace</key>
                    <data>WEhDXw==</data>
                    <key>Disabled</key>
                    <false/>
                    <key>Comment</key>
                    <string>change XHCI to XHC</string>
                </dict>
            </array>

Then you have to restart.

2. Hackintool

In the USB tab, you have to write down the ports in which you have the mouse and keyboard permanently connected and perhaps the bluetooth (for example HS11, HS12 and HS13 in my case). Select all the ports, press the Delete button and then the Refresh button that will fill the list of ports with all those detected by the tool, without limit.

In Clover Configurator> Boot> Boot Arguments add this command so that, when booting, the USB3 ports are discarded but the ones we have noted for keyboard, mouse, etc are included:

-uia_exclude_ss uia_include=HS11,HS12,HS13

Then you have to restart.

Go back to Hackintool> USB tab. A USB2 device must be plugged and unplugged on each of the ports on the board. When finished, active ports are highlighted in green. Select the ones that are NOT highlighted in green and press the Delete button.

In Clover Configurator> Boot> Boot Arguments delete the command added in the previous step and add this command so that when booting the USB2 ports are discarded but the ones we have noted for keyboard, mouse, etc. are included:

-uia_exclude_hs uia_include=HS11,HS12,HS13

Then you have to restart.

Go back to Hackintool> USB tab. A USB3 device must be plugged and unplugged on each of the ports on the board. If you use the Type C connector you also have to connect a Type C device in that port, remember to connect it both ways. When finished, active ports are highlighted in green. Select the ones that are NOT highlighted in green and press the Delete button.

In the list that we have now completed, it is the turn to assign the appropriate connector type to each port:

  • ports that have a permanently connected device (ex: bluetooth) are set to "Internal"
  • HS ports connected to USB3 ports are set as "USB3"
  • SS ports are set as "USB3"
  • the Type C port can use identical HSxx / SSxx in both directions, in which case it is set as "TypeC + Sw" but if it uses different HSxx / SSxx in each orientation, it is set as "TypeC ".
     

If the number of elements in the list is greater than 15, you have to choose ports to discard. To stay at number 15, I have deleted the HS03 and HS04 (USB2) ports from the red rear connectors so they will only recognize USB3 devices.

 

1608607546_Hackintool15ports.png.f04a3dab80eda9bfe290d81e0766c86d.png

 

Click on the Export button to generate on the Desktop some files from which we are going to take 3: SSDT-EC-USBX.aml, SSDT-UIAC.aml and USBPorts.kext. The .aml files must be copied to the EFI / CLOVER / ACPI / patched folder and the extension to the EFI / CLOVER / kexts / Other folder. In theory the USBPorts.kext extension and the SSDT-UIAC.aml file are redundant and both perform the same modification from different places, but in practice it has been better for me to use both.

In Clover Configurator> Boot> Boot Arguments delete the added command to exclude ports and also delete the USBInjectAll.kext extension.

Then you have to restart.

Go back to Hackintool> USB tab. Select all the items that appear in the list of ports, press the Delete button and then the Refresh button to load the current configuration. Here you can check that everything works correctly. If you need to make corrections, you have to export the files again and replace the existing ones.

 

Last picture shows the ports on my Z390 Aorus Elite board. Modified from an original of u/afchvs en Reddit.

 

88680713_Z390AorusEliteyo.thumb.jpg.615aa3128808f5fbca598dda9ee044c7.jpg

 

 

Perfil del sistema.png

Edited by miliuco
×
×
  • Create New...