- Joined
- Jul 22, 2018
- Messages
- 3,424
- Motherboard
- Supermicro X11SPA-T
- CPU
- Intel Xeon W-3275 28 Core
- Graphics
- 2xAMD RX 580 8GB
- OS X/macOS
- 11.0.x
- Bootloader
-
- OpenCore
- Mac
-
- Mac mini
- MacBook Pro
- Mobile Phone
-
- Android
- iOS
How to Fix USB Ports on macOS
An EliteMacx86 Exclusive Guide - This guide covers fixing of USB Ports on macOS
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.
Fixing USB Ports
To fix the USB ports, follow the steps below.
STEP 1: BIOS Settings
The BIOS settings have been provided in a separate thread. For more information on BIOS settings, refer to the thread linked below.
STEP 2: Fixing EC and USB Power
To enable USB ports, you'll need to fix EC and USB Power.
1. Download the OpenCore boot loader 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.plist
STEP 3: Adding ACPI Renames
The first step is to add the ACPI renames for USB functionality.
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.
USB Controllers needing additional Kext(s)
For a few USB controllers, you may need to add additional kext(s) to enable USB Port.
STEP 4: Add Missing Controller
For 600 Series USB XHC Controller, you need add 600 Series Controller info. Follow the steps below to add the controller info.
1. Download XHCI-Unsupported.kext from the download section of this forum.
2. Right click on XHCI-Unsupported.ket and select Show Package Contents
3. Open Info.plist from Contents folder.
4. Find the line 126 and add the following
5. Save the Info.plist file.
STEP 5: Adding Required Kext
The next step is to add the required kexts to enable USB ports.
1. Download USBInjectAll 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.
STEP 6: 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 7: 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 8: Restart your System
After performing all the above steps, restart your system for the applied changes to take effect.
Mapping USB Ports
To map your USB ports, follow the guide linked below.
An EliteMacx86 Exclusive Guide - This guide covers fixing of USB Ports on macOS
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.
Fixing USB Ports
To fix the USB ports, follow the steps below.
STEP 1: BIOS Settings
The BIOS settings have been provided in a separate thread. For more information on BIOS settings, refer to the thread linked below.
STEP 2: Fixing EC and USB Power
To enable USB ports, you'll need to fix EC and USB Power.
1. Download the OpenCore boot loader 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.plist
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 |
NOTES:
|
STEP 3: Adding ACPI Renames
The first step is to add the ACPI renames for USB functionality.
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:
|
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 |
|
|
ASMedia |
|
|
NOTES:
|
STEP 4: Add Missing Controller
For 600 Series USB XHC Controller, you need add 600 Series Controller info. Follow the steps below to add the controller info.
1. Download XHCI-Unsupported.kext from the download section of this forum.
2. Right click on XHCI-Unsupported.ket and select Show Package Contents
3. Open Info.plist from Contents folder.
4. Find the line 126 and add the following
XML:
<key>AppleUSBXHCISPT 600</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.usb.AppleUSBXHCIPCI</string>
<key>IOClass</key>
<string>AppleUSBXHCISPT</string>
<key>IOPCIPauseCompatible</key>
<true/>
<key>IOPCIPrimaryMatch</key>
<string>0x7ae08086</string>
<key>IOPCITunnelCompatible</key>
<true/>
<key>IOProbeScore</key>
<integer>900</integer>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
</dict>
STEP 5: Adding Required Kext
The next step is to add the required kexts to enable USB ports.
1. Download USBInjectAll 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:
|
STEP 6: 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 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
STEP 7: 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 8: Restart your System
After performing all the above steps, restart your system for the applied changes to take effect.
Mapping 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. Overview Often, the USB ports are not well recognized or have certain issues. To fix that, USBInjectAll.kext from Rehabman was serving the purpose along with the USB port...
www.elitemacx86.com
Last edited: