Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
Only this method works (change value of UsbConnector to 0). But then no port injection.

Port injection will work on the controller port, but not on the hub probably because you didn't change the IOProviderClass to match. Something to check. Also, not sure if the non-internal hub class pays attention to the injections.

Maybe this is typical problem (double-clicking to wake up) and there are different methods (like dsdt patches or something else) to solve this?

Not sure... haven't run into it. Perhaps you're using darkwake flags or something...
 
i'm experiencing a issue i don't know how to cure, so i'm asking for help by the masters.
after the reading of this thread i've patched my dsdt renaming the usb ports as EC01/EC02 as well XHC
then i've built an injector and installed on S/L/E
i'm running 10.11.1, after the patches i got my usb port working, there are 3 on my laptop, plus one used by the internal webcam. Now i get a problem with the sleep, if the laptop is battery powered it can sleep, if the laptop is connected to the power supply it sleep and wake immediately, as wake reason i can see
[Time 1445785909] [Message Wake reason: XHC
so it has something to do with the patch i did, i did not changed anything on the dsdt other than renaming the usb ports, and sleep was working with yosemite.
attached the zipped injector,the dsdt and a ioregistryexplorer dump taken when the laptop was powered by the power supply, if they can be useful to track the issue.

View attachment n551.zip
 
i'm experiencing a issue i don't know how to cure, so i'm asking for help by the masters.
after the reading of this thread i've patched my dsdt renaming the usb ports as EC01/EC02 as well XHC
then i've built an injector and installed on S/L/E
i'm running 10.11.1, after the patches i got my usb port working, there are 3 on my laptop, plus one used by the internal webcam. Now i get a problem with the sleep, if the laptop is battery powered it can sleep, if the laptop is connected to the power supply it sleep and wake immediately, as wake reason i can see
[Time 1445785909] [Message Wake reason: XHC
so it has something to do with the patch i did, i did not changed anything on the dsdt other than renaming the usb ports, and sleep was working with yosemite.
attached the zipped injector,the dsdt and a ioregistryexplorer dump taken when the laptop was powered by the power supply, if they can be useful to track the issue.

View attachment 158754

Instant wake (_PRW patches) are covered in the ACPI patching guide: http://www.tonymacx86.com/el-capitan-laptop-support/152573-guide-patching-laptop-dsdt-ssdts.html
 
i was missing the patch USB _PRW(0x6D), applied and nothing changed.
out of luck i tried a senseless thing, i have removed ANY reference to USB2 ports on the dsdt, removing the mux lines from xci ports 1-4 as well, as the acpi of the mac model i'm emulating has (macbookpro11,2)
fixed errors, rcompiled and rebooteted, now the system sleep properly, despite the power source and the usb ports works as expected, including the webcam
my system seem to work well even with this hack, currently i have plugged a usb 1.0 mouse key and i tried a usb2 disk and a usb2 usb key, all of them works good.
what troubles i can meet with a such dsdt configuration?
 
Port injection will work on the controller port, but not on the hub probably because you didn't change the IOProviderClass to match. Something to check. Also, not sure if the non-internal hub class pays attention to the injections.

You mean i didn't change IOProviderClass in injector plist in hub section? I did. I'm trying to set AppleUSB20Hub, AppleUSB20InternalHub, AppleUSB20InternalintelHub. It does not change the situation.
 
You mean i didn't change IOProviderClass in injector plist in hub section? I did. I'm trying to set AppleUSB20Hub, AppleUSB20InternalHub, AppleUSB20InternalintelHub. It does not change the situation.

You would need to use whatever classname is being used to serve the hub.

And then verify that the port-count and ports are being injected. If it is not affecting the ports that show under the hub, then the feature is not implemented in that class. I have reason to believe it is only implemented in AppleUSB20InternalHub, or even the derived class AppleUSB20InternalIntelHub, but I have not confirmed with enough testing to be certain.
 
@rehabman,

Thanks for sharing your injector USBinjectAll, tested and works perfectly one my First Generation i7-720QM laptop model G51Jx.
 
@rehabman,

Thanks for sharing your injector USBinjectAll, tested and works perfectly one my First Generation i7-720QM laptop model G51Jx.

Thanks for the feedback.

Note that the next step is to create a custom injector for only the ports that are actually connected...
 
Thanks for the feedback.

Note that the next step is to create a custom injector for only the ports that are actually connected...

My original injector I made from your guide and your help seem to work fine but after running your USBInjectAll I realized that I did not have the right number of ports, I had four for EH01 and three for EH02. USBInjectALL shows 8 for EH01 and 6 for EH02. I made the changes to my injector and everything seems fine.

If I leave Connector type 2 all seems fine. If I change everything to 255 all USB ports still work but Built in Webcam and BT no longer are available. I changed everything back to connector type 2. I don't know which ones should be 2, 0 or 255. Obviously 3 is not a choice since there are no USB3 ports. Would I find that out in Ioreg?

I am a bit confused with IOACPIplane view. Your example shows your Webcam under one of the ports. Neither my Webcam nor BT show under them at all with your kext or mine.

Also I see USB under IOACPIPlane and not sure if any information can be used from them?

Was I correct in using the same number of ports that USBInjectAll showed in IOreg or was I support to physically make connections to see which number of total ports are needed. Maybe I Have too many now? I will go over your readme again,I think I have misread something.

You posted a couple threads up regarding sleep/wake issues have to go over that because It starts to sleep and just never will sleep and monitor stays black.

I attached DSDT and IOreg if that will help and if not I can remove them after you respond.


Edited:

Ok so I only need for EH01 four ports. There are 4 physical ports and each shows up in ioreg, with different numbering but they are 1 through 4. I removed ports 5 through 8. For EH02 this is used only for BT and Internal WebCam both USB2. So I only have port 1 and 2 for them.

USB connector shows 0xff for port 1 both for EH01 and EH01 and the rest shows 0. So I changed the first port to 255 and the rest 0 for EH01 but for EH02. I had to insert 2 for EH02 ports 1 and 2 because internal USB2 BT and Webcam do not show up if I use either 0 or 255 even though that is what Ioreg shows with your kext for EH02.
 

Attachments

  • DSDT_ioreg.zip
    583.8 KB · Views: 71
Status
Not open for further replies.
Back
Top