I'm a bit lost on the work required to get USB working seamlessly:
Here are the Hackintool 3.0x directions:
- Place the USBInjectAll.kext (for port discovery) into EFI/CLOVER/kexts/Other
- USBInjectAll.kext Requirements:
- Clover->DSDT Renames (if detected)
- XHCI -> XHC
- XHC1 -> XHC
- EHC1 -> EH01
- EHC2 -> EH02
- Reboot
- Run Hackintool then go to General->Installed to check USBInjectAll is installed correctly
- Eg. USBInjectAll: Yes (Release-0.7.1)
So do we need to focus on only using .71, or is .73 or .74 OK nowadays?
- Go to the General->USB tab to check your USB Controllers list. Based on your USB Controller you may need to install additional kexts:
- 8086:8CB1 and macOS < 10.11.1 -> XHCI-9-series.kext
- 8086:8D31, 8086:A2AF, 8086:A36D, 8086:9DED -> XHCI-unsupported.kext
- 8086:1E31, 8086:8C31, 8086:8CB1, 8086:8D31, 8086:9C31, 8086:9CB1 -> FakePCIID.kext + FakePCIID_XHCIMux.kext
......so this means we need to include XHCI-unsupported.kext, because 8086-A2AF appears in General/USB. No worries, I found it somewhere (is it the right one, right version? Who knows...) .... moving on...
- Reboot if you need to install one of the additional kexts then run Hackintool again
- Go to the General->USB tab
- Select all items in the USB Ports list and select the “Delete” then the “Refresh” button
- Reboot with -uia_exclude_ss uia_include=HS01,HS02 boot flags
- Change the HS01,HS02 ports to the ones you have your mouse and keyboard attached
- Run Hackintool and go to the General->USB tab
- Plug and unplug a USB 2.0 device into all ports on your system
- The ports that are active will remain highlighted green
- Delete all ports that are not highlighted green
Fine to this point. Mouse and keyboard work as I've excluded those ports successfully in boot args. I do take this to mean "Plug in something USB2 to ALL available USB ports" - which strikes me as odd due to the 15 port limit... (why enable what you know you won't use as a USB2 port, after all?)
- Reboot with -uia_exclude_hs boot flag and remove the -uia_exclude_ss boot flag
First point of confusion. I noticed when I rebooted that Clover Configurator shows the two items I added in step 4 above as two distinct lines. So do I remove .. both? Just the -uia_exclude_ss line? If I remove both, won't I lose mouse/keyboard control?
- Run Hackintool and go to the General->USB tab
- Plug and unplug a USB 3.0 device into all ports on your system
- Plug and unplug a TypeC device into all ports (in both orientations)
- The ports that are active will remain highlighted green
- Delete all ports that are not highlighted green
- Set each port to the appropriate Connector using the drop down list
- USB ports with devices permanently attached (eg. M.2 Bluetooth card) should be set to “Internal”
- HSxx ports connected to USB3 ports should be set to USB3
- Internal HUBs are typically connected to ports PR11 and PR21 and therefore should be set to “Internal”
- TypeC:
- If it uses the same HSxx/SSxx in both orientations, then it has an internal switch (use “TypeC+Sw”)
- If it uses a different HSxx/SSxx in each orientation, then it has no switch (use “TypeC”)
So I'm confused here. How do I know what the appropriate connector is? Remember, I'm looking at Hackintool where only the USB3 devices are showing; everything else is green-but-blank or green-but-showing-"AppleUSBXHCI Root Hub Simulation". Was I supposed to write down the previous page (during the USB2 test) to see what devices were in use in which ports? So confused here...
- Use the “Export” button to generate files to your Desktop
- Copy SSDT-EC.aml (if created) to EFI/CLOVER/ACPI/patched
- Choose one of the following two:
- Copy USBPorts.kext to EFI/CLOVER/kexts/Other or;
- Copy SSDT-UIAC.aml and SSDT-USBX.aml (if created) to EFI/CLOVER/ACPI/patched
- You can now perform a clean up and remove unnecessary files:
- Remove custom boot flags (-uia_exclude_ss -uia_exclude_hs uia_include=x)
- Remove USBInjectAll.kext (if using USBPorts.kext)
So what about the XHCI-unsupported.kext? Does that stay, or do we get rid of that, too?
- Reboot
- Run Hackintool and go to the General->USB tab
- Select all items in the USB Ports list and select the “Delete” then the “Refresh” button
- Now you can check all ports are working correctly
- If you need to change a Connector type you will need to export your USBPorts.kext over the current one
- If you made a mistake delete USBPorts.kext and start from the beginning of the instructions again
What's the overall goal - to only test USB3 and USB2 devices in the ports in which we expect to use them? So it behooves us to put USB2 *AND* USB3 devices into the front ports (where assumedly we will plug in many things over the course of device ownership) but for the back ports, perhaps we only enable the HS/SS ports with the USB2/USB3 devices located where we expect to use them? (In other words, for the back ports, make some ports USB2 or USB3 only, to keep under the 15 device limit) ?
USB setup is still a touch messy.