Contribute
Register

[Guide] USB power property injection for Sierra (and later)

I followed the "easy guide" attached to the first post but I'm not seeing the four lines when connecting my phone (I see Available: 500 Required: 500 Extra Operating Current 500 and Built-In: Yes) and my iPad is not loading.

Does that have to do with mapping my USB ports as per this thread since the original post speaks of the AppleBusPowerController contained in USBInjectAll, which I replaced with USBPorts.kexts? Or does USBPorts.kext include the Controller?
 
Thank you so very much Rehabman.
My issue is I have an Asus Sandybridge low resolution Laptop with only USB2.0. --Legacy
When I look at IOReg, USBX@0 does not appear. No USB's do in that tree you have.

This laptop: It's own USB tree apart from PNLF; SLPB and the other

USB1, USB2, USB3, USB4, > USB7. First three on EHC2, last Four on EHC1

Also no sleep modes, just wake

I'm running currently Mojave 10.14.6.

In El Capitan and Sierra had no problems. During install would lose the keyboard or mouse depending on DSDT in config.plist. sometimes PS2 keyboard.

I have thought to using the SSDT-USBX.dsl and change a few things:
USB1, USB2, or the device or scope portion to EHC1, EHC2 so that OS can Make it sleep and wake

For instance: for SMBUS patch it was applied to BUS0 instead of SBUS. just an example
 

Attachments

  • Screen Shot 2020-05-21 at 5.02.35 PM.png
    Screen Shot 2020-05-21 at 5.02.35 PM.png
    124 KB · Views: 178
  • Screen Shot 2020-05-21 at 5.02.58 PM.png
    Screen Shot 2020-05-21 at 5.02.58 PM.png
    127.8 KB · Views: 165
I figured out what you were referring to about USBX@0 I just put the SSDT in and it showed up in ioreg

But, the interesting thing is the USB port on the left side shutoff when I logged into the Desktop. Sometimes, it does it during boot up. but this time after I logged in.

I have been having issues with the trackpad, I never use it because it gets in the way to typing. I have always had this turned off.

I use Emildinesh ApplePS2SmartTouchPad.kext and the AsusNBFnkeys.kext because they work on this laptop and I had to edit the DSDT too many times to get the FN keys to work.

I'm understanding the whole thing little by little, it's all about spoofing and faking. For some reason this thought never occurred to me. Silly. Still trail and error.

Thank you so much for all your time, kexts, information beyond recognition.

Have a good weekend.
 

Attachments

  • Screen Shot 2020-05-21 at 5.40.31 PM.png
    Screen Shot 2020-05-21 at 5.40.31 PM.png
    110.2 KB · Views: 147
Thank you for the findings and for writing this guide RehabMan, I could make it work on my build! :clap:

I wrote a shorter guide for beginners not familiar with Hackintosh topics and the common inspector tools we use:
  • 1.) You can read "ioreg" several places but I cannot find a link or description at post #1 what ioreg actually is... So if you're wondering how you can view ioreg, there is an application called IORegistryExplorer (version 2.1 !), which you can download from here: https://www.tonymacx86.com/threads/guide-how-to-make-a-copy-of-ioreg.58368/ If you open it up it will show you a list in alphabetical order.. Look for the name "EC" (Embedded Controller), it will be before the FAN labels... If you can find the element called "EC" in there, continue with step 5.)
  • 2.) If the "EC" element is not there in the IORegistryExplorer, you need to check if you have EC0 or the H_EC name (or neither) under the hood in so called ACPI. There is another application to check that: MaciASL. It's also not mentioned in post #1, you can download it from here: RehabMan / OS-X-MaciASL-patchmatic / Downloads — Bitbucket. Open it up, press Command + F, and search for these terms: "Device (H_EC)" and "Device (EC0)". You will hopefully find the H_EC or the EC0 code block (not both). Don't bother with the meaning of the code you see, you don't have to understand it. There will be a code block in a few lines down, starting with "Method (_STA, ....". If you see a "Return (Zero)" in this {} block, then it means it's ignored as per post #1.
    So what we done in this step: You have to check if you have EC0 or H_EC device or neither in MaciASL. If you find EC0 or H_EC you need to check if it's ignored: "Return (Zero)" or not. Remember your findings...
  • 3.) Now you know what you have under the hood...
    • If you didn't have EC0 or H_EC device or it's returning Zero in method _STA, then you need to copy the file SSDT-EC.aml (attached to this post) to your main macOS drive's EFI partition, under EFI/CLOVER/ACPI/patched.
    • If you have found the EC0 or H_EC device in IORegistryExplorer and it's not returning Zero in method _STA, then you need to add a Clover config patch in EFI/CLOVER/config.plist to rename "EC0 to EC" or "H_EC to EC". Choose which one you have. The patch can be seen in post #1, under the title: "Insuring AppleBusPowerControllerUSB loads". In the picture, the config.plist file was opened in an application called Xcode, available free from the Mac App Store.
  • 4.) Restart you PC. Once macOS is loaded, open IORegistryExplorer again and check weather you see EC in the list. If "EC" shows up, everything is fine, continue with step 5.) If the name "EC" is still not there in IORegistryExplorer, start it over from 1.), more carefully.
  • 5.) Check your system definition in a built in macOS app called "System Information". Under the "Hardware Overview" section, you can find your system definition at "Model identifier", for example: iMac 18,3
    • If you have newer system definition than Macbook8,1 or MacBookAir7,2 or MacBookPro12,1 or MacPro6,1 or MacMini7,1 or iMac15,2 THEN copy the file SSDT-USBX.aml (attached to this post) to your main macOS drive's EFI partition, under EFI/CLOVER/ACPI/patched.
    • If you use one of the system def listed above or older, then you have nothing to do, continue with step 6.)
  • 6.) Restart your PC. Once macOS is loaded, plug in an iPhone or iPad to your Hackintosh with a USB cable. Open System Information app and choose the "USB" section from the left sidebar. Click on the iPhone or iPad in the list. If you can see all 4 lines you're won! ;)
    • Current Available (mA):
    • Current Required (mA):
    • Extra Operating Current (mA):
    • Sleep current (mA):
If all 4 lines are there, it's the obvious indicator of working USB power under macOS.​
Hope this post will help others to understand the process described in post #1.

Sir, I come from 2020 and I have to say, you are a genius. Thank you very much, solved my issues on ASUS TUF z390-PLUS GAMING. iPAD working like charm now ;)
 
Sir, I come from 2020 and I have to say, you are a genius. Thank you very much, solved my issues on ASUS TUF z390-PLUS GAMING. iPAD working like charm now ;)

Cheers! :)
 
Hey guys! Sorry for the ignorance, noob here. Trying my best! Just wanted to know if having both EC0 and H_EC can cause the problem?. Thanks!
 

Attachments

  • image.jpg
    image.jpg
    5.4 MB · Views: 200
Last edited:
Back
Top