- Joined
- Jul 22, 2018
- Messages
- 8,153
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 13.x
- Bootloader
- OpenCore (UEFI)
- Mac
- Mac mini
- MacBook Pro
- Mobile Phone
- Android
- iOS
How to Fix USB Ports on macOS
This guide covers fixing of USB Ports on macOS. By following this guide, you'll be able to fix your USB Ports on macOS. This guide is applicable for both Desktops and Laptops and supports Clover and OpenCore Bootloader.
Overview
When using macOS, the USB ports may not work as desired. This is due to missing the Device ID of the USB Controller present in your system, no renames available and incorrect or no power properties available. macOS expects certain renames and power properties for the USB ports to work.
Starting from OS X El Capitan (10.11), Apple uses a new "closed IOUSBHostFamily" with its own specs instead of the open IOUSBHostFamily driver. With this new adaption, the following changes can be observed:
- None of the platforms can have no more than 15 active USB Ports;
- Most
- A new
- The use of original devices names in the ACPI Table (such as
- Problems with system boot/sleep/hibernation.
Fixing USB Ports
To fix the USB ports, follow the steps below.
STEP 1: Setup BIOS
The very first step is to set up BIOS to have the USB Ports Enabled on your System. Follow the steps below to set up your BIOS for USB Ports.
1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Set the following parameters as shown.
3. Save & Exit Setup
STEP 2: Fix EC and USB Power
To enable USB ports, you'll need to fix EC and USB Power. To fix EC and USB Power, follow the steps below
1. Download the OpenCore Bootloader from the downloads section of this forum.
2. Copy the USB SSDT as per your platform (reference given below) from
3. Mount your ESP
For Clover:
If you're using Clover, copy SSDT to
For OpenCore:
If you're using OpenCore, copy SSDT to
SSDT Reference
STEP 3: Add ACPI Renames
The next step is to add the ACPI renames for USB functionality. To add the ACPI renames for USB, follow the steps below.
1. Depending on the Bootloader you use, add the following patch in the ACPI section of your config.plist. For Clover, it is
ACPI Renames
Depending on the system type, use the ACPI renames in your config.plist.
STEP 4: Add Required Kext
The next step is to add the required kext to enable USB Ports. Until you map USB Ports, it is strongly recommended to use this kext. Once mapped, it is advised to remove this kext.
1. Download USBInjectAll.kext from the downloads section of this forum.
2. Mount your ESP.
For Clover:
If you're using Clover, copy the kext to
For OpenCore:
If you're using OpenCore, copy the kext to
3. Save your config.plist
USB Controllers needing additional Kext(s)
For a few USB controllers, you may need to add additional kext(s) to enable USB Port.
STEP 5: Enable XHCI Port Limit
The next step is to enable XHCI Port Limit which will enable all the ports on a system. To enable XHCI Port Limit, follow the steps below.
1. Mount your ESP.
For Clover:
If you're using Clover, enable
For OpenCore:
If you're using OpenCore, enable
2. Save your config.plist
STEP 6: Setup SMBIOS
The next step is to set up an appropriate SMBIOS for your system. To set up SMBIOS for your system, follow the guide linked below.
STEP 7: Restart your System
After performing all the above steps, restart your system for the applied changes to take effect.
STEP 8: Map your USB Ports
The final step is to map your USB Ports. To map your USB ports, follow the guide linked below.
This guide covers fixing of USB Ports on macOS. By following this guide, you'll be able to fix your USB Ports on macOS. This guide is applicable for both Desktops and Laptops and supports Clover and OpenCore Bootloader.
Overview
When using macOS, the USB ports may not work as desired. This is due to missing the Device ID of the USB Controller present in your system, no renames available and incorrect or no power properties available. macOS expects certain renames and power properties for the USB ports to work.
Starting from OS X El Capitan (10.11), Apple uses a new "closed IOUSBHostFamily" with its own specs instead of the open IOUSBHostFamily driver. With this new adaption, the following changes can be observed:
- None of the platforms can have no more than 15 active USB Ports;
- Most
AAPL properties
(including for current control) are ignored;- A new
USBX
device has appeared for new platforms (Skylake and later);- The use of original devices names in the ACPI Table (such as
EHC1
, EHC2
, XHCI
, XHC1
, XHC2
) can lead to a conflict;- Problems with system boot/sleep/hibernation.
Fixing USB Ports
To fix the USB ports, follow the steps below.
STEP 1: Setup BIOS
The very first step is to set up BIOS to have the USB Ports Enabled on your System. Follow the steps below to set up your BIOS for USB Ports.
1. On your target computer, boot to BIOS. Refer to your user manual for the BIOS Key
2. Set the following parameters as shown.
Settings | Value | Notes |
---|---|---|
Legacy USB Support | Enabled | Enables USB Support during System Boot when the operating system isn't fully loaded |
USB 3.0 Support | Enabled | Enables USB 3.0 Support |
OnBoard USB 3.0 Controller | Enabled | Enables USB 3.0 Controller (Typically non-Intel Chipsets such as AsMedia or FrescoLogic) |
EHCI Hand-off | Auto/Enabled | Enables USB 2.0 Ports Depending on your System's BIOS, use one of the Values available |
XHCI Hand-off | Enabled | Enables USB 3.0 Ports |
3. Save & Exit Setup
NOTES:
- The above settings are for USB only. See BIOS Settings for more information.
- If your system does not have any of the above settings in BIOS, ignore such settings.
STEP 2: Fix EC and USB Power
To enable USB ports, you'll need to fix EC and USB Power. To fix EC and USB Power, follow the steps below
1. Download the OpenCore Bootloader from the downloads section of this forum.
2. Copy the USB SSDT as per your platform (reference given below) from
Docs>AcpiSamples>Binaries
3. Mount your ESP
For Clover:
If you're using Clover, copy SSDT to
EFI/Clover/ACPI/patched
For OpenCore:
If you're using OpenCore, copy SSDT to
EFI/OC/ACPI
. You'll also need to add the ACPI entry in ACPI>Add
section of your config.plistSSDT Reference
Platform | SSDT |
---|---|
Penryn | SSDT-EC |
Lynfield | SSDT-EC |
Clarkdale | SSDT-EC |
Nehalem | SSDT-EC |
Westmere | SSDT-EC |
Sandy Bridge | SSDT-EC |
Ivy Bridge and Ivy Bridge-E | SSDT-EC |
Haswell | SSDT-EC |
Haswell-E | SSDT-EC-USBX |
Broadwell | SSDT-EC |
Broadwell-E | SSDT-EC-USBX |
Skylake | SSDT-EC-USBX |
Skylake-X/W | SSDT-EC-USBX |
Kaby Lake | SSDT-EC-USBX |
Coffee Lake | SSDT-EC-USBX |
Comet Lake | SSDT-EC-USBX |
AMD Ryzen | SSDT-EC-USBX |
NOTE:
|
STEP 3: Add ACPI Renames
The next step is to add the ACPI renames for USB functionality. To add the ACPI renames for USB, follow the steps below.
1. Depending on the Bootloader you use, add the following patch in the ACPI section of your config.plist. For Clover, it is
Acpi>DSDT
. For OpenCore, it is ACPI>Patch
.ACPI Renames
Depending on the system type, use the ACPI renames in your config.plist.
Find | Replace | Comment | Notes |
---|---|---|---|
45484331 | 45483031 | Rename EHC1 to EH01* |
|
45484332 | 45483032 | Rename EHC2 to EH02* |
|
45484330 | 45483032 | change EHC0 to EH02 |
|
45555342 | 45483031 | change EUSB to EH01* |
|
55534245 | 45483032 | change USBE to EH02* |
|
NOTES:
|
STEP 4: Add Required Kext
The next step is to add the required kext to enable USB Ports. Until you map USB Ports, it is strongly recommended to use this kext. Once mapped, it is advised to remove this kext.
1. Download USBInjectAll.kext from the downloads section of this forum.
2. Mount your ESP.
For Clover:
If you're using Clover, copy the kext to
EFI/Clover/Kext/Others
For OpenCore:
If you're using OpenCore, copy the kext to
EFI/OC/Kexts
. You'll also need to add the kext entry in the Kernel
section of your config.plist.NOTES:
|
3. Save your config.plist
QUICK INFO:
- If you have any USB Controller which requires additional kexts (see the reference table below) add the required kexts accordingly.
USB Controllers needing additional Kext(s)
For a few USB controllers, you may need to add additional kext(s) to enable USB Port.
Controller | Series | DEV ID:VEN ID | Kexts |
---|---|---|---|
Intel | 7 Series |
|
|
Intel | 8 and 9 Series |
|
|
Intel | X99 Series |
|
|
Intel | 200, X299 Series |
|
|
Intel | 300 Series |
|
|
Intel | 400 Series |
|
|
Intel | 500 Series |
|
|
Intel | 600 Series |
|
|
Intel | 700 Series |
| XHCI-Unsupported.kext |
ASMedia |
|
|
NOTES:
|
STEP 5: Enable XHCI Port Limit
The next step is to enable XHCI Port Limit which will enable all the ports on a system. To enable XHCI Port Limit, follow the steps below.
1. Mount your ESP.
For Clover:
If you're using Clover, enable
XhciPortLimit
in the Quirks>Kernel
section of your config.plistFor OpenCore:
If you're using OpenCore, enable
XhciPortLimit
in the Kernel>Quirks
section of your config.plist2. Save your config.plist
NOTE:
- Due to the broken PortLimit Quirk on Big Sur 11.3 and above, enabling the XhciPortLimit will enable USB 3.0 ports and disabling will enable all USB 2.0 ports.
STEP 6: Setup SMBIOS
The next step is to set up an appropriate SMBIOS for your system. To set up SMBIOS for your system, follow the guide linked below.
STEP 7: Restart your System
After performing all the above steps, restart your system for the applied changes to take effect.
STEP 8: Map your USB Ports
The final step is to map your USB Ports. To map your USB ports, follow the guide linked below.
GUIDE - How to Map your USB Ports on macOS
How to Map your USB Ports on macOS An EliteMacx86 Exclusive Guide - This guide covers the mapping of USB Ports on macOS. By following this guide, you'll be able to map your USB ports and can also achieve a proper speed for your USB ports. I. Overview Often, the USB ports are not well...
elitemacx86.com
Last edited: