Contribute
Register

The New Beginner's Guide to USB Port Configuration

As @Feartech points out, you need to update your hardware profile more accurately.

If you have an Intel i5-1035G1 CPU I think you might not have an Iris Plus iGPU. Intel support states it is a "UHD Graphics for 10th Gen Intel", which is usually a 620/630.

But could be wrong.

As Ice Lake CPUs are not Comet Lake, the USB stack is different and I too have experienced USB de-activation on all ports using one of these systems. I'm not sure anyone has found a way around this yet for non-desktop CPUs.

Happy to learn more.

:)
@UtterDisbelief @Vockocodrilo,

I am happy to assist in this instance.

Sometime last year I was handed a MSI GF63 Thin 11UC (11th gen) laptop to play around with by one of my family members, and I took the liberty to see if I could run Ventura on it (just for fun). It turns out that I could! And this is how I did it.

Following from my Acer Nitro 5 and Z590I Vision D board settings for Monterey, for the ACPI I used the following:

Screen Shot 2023-06-16 at 8.00.56 AM.png


For the USB to work, I used a USBPorts.kext setup, but I had to apply the following patches especially for USB power:

Screen Shot 2023-06-16 at 8.01.11 AM.png


Screen Shot 2023-06-16 at 8.10.42 AM.png


Screen Shot 2023-06-16 at 8.11.48 AM.png


For the IGPU I used these settings:

Screen Shot 2023-06-16 at 8.08.29 AM.png


For the rest I used iMac20,1 as the SMBIOS and for the boot-arg the following:

dart=0 -v -x -no_compat_check kext-dev-mode=1 debug=0x100 keepsyms=1 -igfxcdc alcid=1

CPUID was spoofed to Comet Lake 55060A and Voodoo2CHID & VoodooPS2Controller kexts were added for the mouse and keyboard.

Screen Shot 2022-06-22 at 10.17.30 PM-2.png
 
@UtterDisbelief @Vockocodrilo,

I am happy to assist in this instance.

Sometime last year I was handed a MSI GF63 Thin 11UC (11th gen) laptop to play around with by one of my family members, and I took the liberty to see if I could run Ventura on it (just for fun). It turns out that I could! And this is how I did it.

Following from my Acer Nitro 5 and Z590I Vision D board settings for Monterey, for the ACPI I used the following:

View attachment 567893

For the USB to work, I used a USBPorts.kext setup, but I had to apply the following patches especially for USB power:

View attachment 567892

View attachment 567902

View attachment 567904

For the IGPU I used these settings:

View attachment 567900

For the rest I used iMac20,1 as the SMBIOS and for the boot-arg the following:

dart=0 -v -x -no_compat_check kext-dev-mode=1 debug=0x100 keepsyms=1 -igfxcdc alcid=1

CPUID was spoofed to Comet Lake 55060A and Voodoo2CHID & VoodooPS2Controller kexts were added for the mouse and keyboard.

View attachment 567905

Thank you for the help and considerable effort on this one. Much appreciated. The more input the better. :thumbup:

I guess the iGPU will be something the OP needs to check for us, as Intel seems to suggest that's not Iris.
(By the way, did you disable the RTX GPU in your MSI BIOS before installing macOS?)

Surprised you went for the iMac20,1 sys-def considering it was a laptop, but if it works that's fine by me. Live and learn! :D
 
Thank you for the help and considerable effort on this one. Much appreciated. The more input the better. :thumbup:

I guess the iGPU will be something the OP needs to check for us, as Intel seems to suggest that's not Iris.
(By the way, did you disable the RTX GPU in your MSI BIOS before installing macOS?)

Surprised you went for the iMac20,1 sys-def considering it was a laptop, but if it works that's fine by me. Live and learn! :D
Thanks! Yes I disabled the RTX for sure before the install! We do things by the book here don't you know? :lol:
Yes indeed live and learn! (am still learning stuff after all these years) - just managed to stabilise the latest Ventura on my Z590I Vision D earlier today. You're welcome! :thumbup:
 
Hi, my USB ports are working in general but my iPhone is not recognized when plugged into any of those ports. USB-Drives connect without problems. I do not know where to start fixing this problem. Do you have any advice.

I'm running macOS 13.4.1 on OC 0.8.4

Thank you
 
Last edited:
What do you mean by "my USB ports are working in general"?
Is your USBPorts.kext configured correctly?
Post a copy of your USBPorts.kext so we can see what you are using.

Questions:
  1. Which model iPhone are you using?
  2. Have you checked the cable Lightning or Type-C cable is fully seated in the USB port and phone?
  3. Which type of USB connector are you using to connect the iPhone to the Hack?
  4. Are you using any USB adapters?
  5. Have you tried a different cable to connect the iPhone to your Hack?
  6. Is the iPhone looking for a charge when you connect it to the hack or is it fully charged before you connect it?
  7. Do you have an SSDT-USBX.aml table in your /EFI/OC/ACPI folder and config.plist?
 
What do you mean by "my USB ports are working in general"?
Is your USBPorts.kext configured correctly?
Post a copy of your USBPorts.kext so we can see what you are using.

Questions:
  1. Which model iPhone are you using?
  2. Have you checked the cable Lightning or Type-C cable is fully seated in the USB port and phone?
  3. Which type of USB connector are you using to connect the iPhone to the Hack?
  4. Are you using any USB adapters?
  5. Have you tried a different cable to connect the iPhone to your Hack?
  6. Is the iPhone looking for a charge when you connect it to the hack or is it fully charged before you connect it?
  7. Do you have an SSDT-USBX.aml table in your /EFI/OC/ACPI folder and config.plist?
I mean that I can connect and use USB drives at these ports.

1. iPhone 12Pro / iOS 16.5.1

2.-6. I tried Apple USB, Apple USB-C and third party USB cables with no additional adapter. It is fully connected and asked me on both ports (USB / USB-C) if I trust this computer. But it does not charge at the USB port while it does at the USB-C one. And it does not show the phone in the Finder for both types of ports USB and USB-C.

7. I see a file called SSDT-EC-USBX-DESKTOP.aml in /EFI/OC/ACPI, which is referenced in config.plist.

This is my USBPorts.kext
XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleGetInfoString</key>
    <string>1.0 Copyright © 2018-2020 Headsoft. All rights reserved.</string>
    <key>CFBundleIdentifier</key>
    <string>com.Headsoft.USBPorts</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>USBPorts</string>
    <key>CFBundlePackageType</key>
    <string>KEXT</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
    <key>IOKitPersonalities</key>
    <dict>
        <key>iMac19,1-XHC</key>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.apple.driver.AppleUSBMergeNub</string>
            <key>IOClass</key>
            <string>AppleUSBMergeNub</string>
            <key>IONameMatch</key>
            <string>XHC</string>
            <key>IOPCIPrimaryMatch</key>
            <string>0xa36d8086</string>
            <key>IOProbeScore</key>
            <integer>5000</integer>
            <key>IOProviderClass</key>
            <string>AppleIntelCNLUSBXHCI</string>
            <key>IOProviderMergeProperties</key>
            <dict>
                <key>kUSBSleepPortCurrentLimit</key>
                <integer>2100</integer>
                <key>kUSBSleepPowerSupply</key>
                <integer>5100</integer>
                <key>kUSBWakePortCurrentLimit</key>
                <integer>2100</integer>
                <key>kUSBWakePowerSupply</key>
                <integer>5100</integer>
                <key>port-count</key>
                <data>
                GgAAAA==
                </data>
                <key>ports</key>
                <dict>
                    <key>HS12</key>
                    <dict>
                        <key>Comment</key>
                        <string>Internal USB Hub - Bluetooth</string>
                        <key>UsbConnector</key>
                        <integer>255</integer>
                        <key>name</key>
                        <string>HS12</string>
                        <key>port</key>
                        <data>
                        DAAAAA==
                        </data>
                    </dict>
                    <key>HS13</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 2.0 - Top Right (Top Group)</string>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>name</key>
                        <string>HS13</string>
                        <key>port</key>
                        <data>
                        DQAAAA==
                        </data>
                    </dict>
                    <key>HS14</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 2.0 - Top Left (Top Group)</string>
                        <key>UsbConnector</key>
                        <integer>0</integer>
                        <key>name</key>
                        <string>HS14</string>
                        <key>port</key>
                        <data>
                        DgAAAA==
                        </data>
                    </dict>
                    <key>SS01</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 3.0 - Top Right (Bottom Group)</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS01</string>
                        <key>port</key>
                        <data>
                        EQAAAA==
                        </data>
                    </dict>
                    <key>SS02</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 3.0 - Top Left (Bottom Group)</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS02</string>
                        <key>port</key>
                        <data>
                        EgAAAA==
                        </data>
                    </dict>
                    <key>SS03</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 3.0 - Bottom Right (Top Group)</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS03</string>
                        <key>port</key>
                        <data>
                        EwAAAA==
                        </data>
                    </dict>
                    <key>SS07</key>
                    <dict>
                        <key>Comment</key>
                        <string>Front USB 3.0 - Right Side</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS07</string>
                        <key>port</key>
                        <data>
                        FwAAAA==
                        </data>
                    </dict>
                    <key>SS08</key>
                    <dict>
                        <key>Comment</key>
                        <string>Front USB 3.0 - Left Side</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS08</string>
                        <key>port</key>
                        <data>
                        GAAAAA==
                        </data>
                    </dict>
                    <key>SS09</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 3.0 - Bottom Right (Bottom Group)</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS09</string>
                        <key>port</key>
                        <data>
                        GQAAAA==
                        </data>
                    </dict>
                    <key>SS10</key>
                    <dict>
                        <key>Comment</key>
                        <string>Back USB 3.0 - Bottom Left (Bottom Group)</string>
                        <key>UsbConnector</key>
                        <integer>3</integer>
                        <key>name</key>
                        <string>SS10</string>
                        <key>port</key>
                        <data>
                        GgAAAA==
                        </data>
                    </dict>
                </dict>
            </dict>
            <key>model</key>
            <string>iMac19,1</string>
        </dict>
    </dict>
    <key>OSBundleRequired</key>
    <string>Root</string>
</dict>
</plist>
 
You are partway to getting a fully working USB configuration for your system. I say that because you have created a Partial/limited USBPorts.kext.

You have the following USB ports active with your USBPorts.kext
  1. 1 x USB2 Internal motherboard header - HS12 (255)
  2. 2 x USB2 physical ports - HS13 & HS14 (0)
  3. 7 x USB3 physical ports - SS01, SS02, SS03, SS07, SS08, SS09 & SS10 (3)
Screenshot 2023-07-01 at 11.46.13.png Your USBPorts.kext info.plist viewed in ProperTree

What you do not have is any of the companion USB2 virtual ports served from the USB3 physical ports. You could include 5 x USB2 virtual ports in your USBPorts.kext and remain within the 15 port limit. This is why I you have a Partial/limited USBPorts.kext.

With your current setup your USB3 ports will not work with any USB2 or USB1.1 devices. Whereas they are designed to be backwards compatible with both of the older USB standards.

I would suggest you select 5 x USB3 physical ports that you might need to be able to use with a USB2 or USB1.1 (mouse, keyboard, USB2 pen drive etc.) device and add them to your USBPorts.kext, with the connector type USB3 (3), to match the physical USB3 ports properties.

The two case front ports SS07 & SS08, being prime examples of ports that you might want to connect other devices through. I think that HS07 & HS08 would be the companion ports serving the virtual USB2 ports from the motherboard's USB3 header. At least that is how the ports are arranged on my Z390 motherboard.
 
You are partway to getting a fully working USB configuration for your system. I say that because you have created a Partial/limited USBPorts.kext.

You have the following USB ports active with your USBPorts.kext
  1. 1 x USB2 Internal motherboard header - HS12 (255)
  2. 2 x USB2 physical ports - HS13 & HS14 (0)
  3. 7 x USB3 physical ports - SS01, SS02, SS03, SS07, SS08, SS09 & SS10 (3)
View attachment 568552 Your USBPorts.kext info.plist viewed in ProperTree

What you do not have is any of the companion USB2 virtual ports served from the USB3 physical ports. You could include 5 x USB2 virtual ports in your USBPorts.kext and remain within the 15 port limit. This is why I you have a Partial/limited USBPorts.kext.

With your current setup your USB3 ports will not work with any USB2 or USB1.1 devices. Whereas they are designed to be backwards compatible with both of the older USB standards.

I would suggest you select 5 x USB3 physical ports that you might need to be able to use with a USB2 or USB1.1 (mouse, keyboard, USB2 pen drive etc.) device and add them to your USBPorts.kext, with the connector type USB3 (3), to match the physical USB3 ports properties.

The two case front ports SS07 & SS08, being prime examples of ports that you might want to connect other devices through. I think that HS07 & HS08 would be the companion ports serving the virtual USB2 ports from the motherboard's USB3 header. At least that is how the ports are arranged on my Z390 motherboard.
Thanks a lot. Everything is working as expected now.
 
Question... I created my USB port configurations, as detailed here, and it works fine, except I don't have access to all my ports because there are more than I can map. Do I no longer need to use the port configuration kexts I created now that OC 0.9.3 has fixed the XhciPortLimit Quirk? And, if so, would I have access to ALL my ports again that way?
 
Do I no longer need to use the port configuration kexts I created now that OC 0.9.3 has fixed the XhciPortLimit Quirk?
You're still only able to use 15 ports. The XHCI Quirk is for port discovery. It's not enabled longer term.
 
Back
Top