Contribute
Register

[Guide] 10.11+ USB changes and solutions

Status
Not open for further replies.
You have no Intel XHC, so this topic is not much help to you (it is mostly specific to Intel USB3 xHCI controller).
GenericUSBXHCI.kext is likely to be unreliable.
You should add a compatible USB3 controller card (FL1100-based).

Thanks for the guidance. I'll search out for the controller card to purchase.
 
I am trying to get USB keyboard to work after a fresh install of High Sierra and am having issues with keeping the connection to the Keyboard. If the keyboard is plugged in on boot up, it will work fine as long as the computer doesn't go into deep sleep. If it goes to deep sleep then is awoken, the computer will not respond to keystrokes. This also occurs if I boot up with the keyboard in one usb port and swap ports after macOS has loaded up. It's quite frustrating. I tried creating a custom SSDT and all the USB ports are properly mapped. In IOREG, the keyboard is still showing as being plugged in to whichever port I swap to but it still doesn't respond after a swap or being woken from sleep. Is there something I'm missing? I thought I followed post#1 pretty religiously.

Also, I tried to remove the port limit patch after creating my SSDT and when I did that, the changes created by the SSDT disappeared and all the ports that were there before were visible again (less the injected ones). When I reinstalled the patch, the ports were selectively disabled as per the SSDT. Is it safe to leave the port limit kext if the SSDT is there to enable the proper ports?
 

Attachments

  • Requested FIles.zip
    4.8 MB · Views: 83
Last edited:
I am trying to get USB keyboard to work after a fresh install of High Sierra and am having issues with keeping the connection to the Keyboard. If the keyboard is plugged in on boot up, it will work fine as long as the computer doesn't go into deep sleep. If it goes to deep sleep then is awoken, the computer will not respond to keystrokes. This also occurs if I boot up with the keyboard in one usb port and swap ports after macOS has loaded up. It's quite frustrating. I tried creating a custom SSDT and all the USB ports are properly mapped. In IOREG, the keyboard is still showing as being plugged in to whichever port I swap to but it still doesn't respond after a swap or being woken from sleep. Is there something I'm missing? I thought I followed post#1 pretty religiously.

Also, I tried to remove the port limit patch after creating my SSDT and when I did that, the changes created by the SSDT disappeared and all the ports that were there before were visible again (less the injected ones). When I reinstalled the patch, the ports were selectively disabled as per the SSDT. Is it safe to leave the port limit kext if the SSDT is there to enable the proper ports?

"Problem Reporting" files are incomplete.
Read FAQ, "Problem Reporting" again. Carefully. Attach all requested files/output.
https://www.tonymacx86.com/threads/faq-read-first-laptop-frequent-questions.164990/
Use the tool mentioned in the FAQ, that way it is less likely you'll omit something.
 
I have updated my original post with the requested output files but I'll attach here as well. Thanks for your help Rehabman!
 

Attachments

  • Requested FIles.zip
    4.8 MB · Views: 66
I have updated my original post with the requested output files but I'll attach here as well. Thanks for your help Rehabman!

Your USB configuration is wrong.
You're injecting 16 ports, which is one more than the allowed 15 port limit.
Also, you should check that your UsbConnector values are correct.
Read here:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

Also, power properties are not implemented.
Read here:
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/
 
Your USB configuration is wrong.
You're injecting 16 ports, which is one more than the allowed 15 port limit.
Also, you should check that your UsbConnector values are correct.
Read here:
https://www.tonymacx86.com/threads/guide-creating-a-custom-ssdt-for-usbinjectall-kext.211311/

Also, power properties are not implemented.
Read here:
https://www.tonymacx86.com/threads/guide-usb-power-property-injection-for-sierra-and-later.222266/

Ok so first of all thanks for getting back to me so quickly!

1. My comp has actually 17 ports because I missed one as I was inspecting more closely. I redid the SSDT to factor in that extra port and removed two SS0 ports - those 2 will only work as USB2, correct? If I removed to HS ports instead, they will be USB3 only...does that mean a USB2 device won't be usable on those ports?

2. I read in your SSDT creation guide that USB2 sharing a USB 3 should be left as connector 3. All the ones I listed are this way. How would I determine what number to use for UsbConnector if they are all like this? (I think 1 is different actually...). Also what do you mean by "Internal" using 255 value? What is Internal? Would that be a port that plugs into my Power Supply for example that goes directly to the Mobo which my Mobo manual indicates is a USB2 only connection? (That's the one I missed originally).

3. In regards to my first post, I mentioned I tried to remove the port limit patch after creating my SSDT and when I did that, the changes created by the SSDT disappeared and all the ports that were there before were visible again (less the injected ones). When I reinstalled the patch, the ports were selectively disabled as per the SSDT. Is it safe to leave the port limit kext if the SSDT is there to enable the proper ports?

4. I think I managed to get the USBX injected, but in your guide you used iMac 17,3. My computer is using iMac18,3. How would I determine what the correct values to use for kUSBSleepPortCurrentLimit, kUSBSleepPowerSupply, kUSBWakePortCurrentLimit, kUSBWakePowerSupply are?

After adding this entry to the SSDT, do I also need to modify config.plist? I wasn't sure about that part.

Thanks again for your help!



update: Attached are the problem files and output - USB Keyboard still still seems to be giving me a problem even though ports are now limited to 15 and injected properly (as far as I can tell). I also have power property injection going (I think). Whenever I unplug the keyboard and plug it back in (same port or different) it will not work. If I keep trying for up to 5 minutes I might find a port that randomly works. I will update this post after I have tried waking from sleep though I'm not too confident. I can't figure out where to go from here...
 

Attachments

  • Requested Files.zip
    4.8 MB · Views: 70
Last edited:
For the Gigabyte BRIX, I didn't need to patch DSDT so I used Clover config.plist-based patches in config.plist/ACPI/DSDT/Patches:

Item 1:
Comment: change EHC1 to EH01
Find: <45484331>
Replace: <45483031>

Item 2:
Comment: change EHC2 to EH02
Find: <45484332>
Replace: <45483032>

I finally upgraded to High Sierra from Yosemite and I didn't need to patch the DSDT for my Gigabyte Z77N-WIFI either. The ACPI USB ports were correct. Only thing I needed to do was to rename ECH1/ECH2 to EH01 and EH02.

Thanks.
 
1. My comp has actually 17 ports because I missed one as I was inspecting more closely. I redid the SSDT to factor in that extra port and removed two SS0 ports - those 2 will only work as USB2, correct? If I removed to HS ports instead, they will be USB3 only...does that mean a USB2 device won't be usable on those ports?

You can experiment with such trickery, but I would recommend eliminating an entire SS/HS set.

2. I read in your SSDT creation guide that USB2 sharing a USB 3 should be left as connector 3. All the ones I listed are this way. How would I determine what number to use for UsbConnector if they are all like this? (I think 1 is different actually...). Also what do you mean by "Internal" using 255 value? What is Internal? Would that be a port that plugs into my Power Supply for example that goes directly to the Mobo which my Mobo manual indicates is a USB2 only connection? (That's the one I missed originally).

Internal devices are devices which are connected internally... always connected at startup, and cannot be disconnected while running.

3. In regards to my first post, I mentioned I tried to remove the port limit patch after creating my SSDT and when I did that, the changes created by the SSDT disappeared and all the ports that were there before were visible again (less the injected ones). When I reinstalled the patch, the ports were selectively disabled as per the SSDT. Is it safe to leave the port limit kext if the SSDT is there to enable the proper ports?

No "Problem Reporting" files attached showing this situation.

4. I think I managed to get the USBX injected, but in your guide you used iMac 17,3. My computer is using iMac18,3. How would I determine what the correct values to use for kUSBSleepPortCurrentLimit, kUSBSleepPowerSupply, kUSBWakePortCurrentLimit, kUSBWakePowerSupply are?

If you wanted iMac18,3 values, you will need to find an Apple iMac18,3 ioreg and/or ACPI set.

After adding this entry to the SSDT, do I also need to modify config.plist?

No idea what you mean by "this entry".

update: Attached are the problem files and output - USB Keyboard still still seems to be giving me a problem even though ports are now limited to 15 and injected properly (as far as I can tell). I also have power property injection going (I think). Whenever I unplug the keyboard and plug it back in (same port or different) it will not work. If I keep trying for up to 5 minutes I might find a port that randomly works. I will update this post after I have tried waking from sleep though I'm not too confident. I can't figure out where to go from here...

See above.

Note that in 10.13.2, 8086:a2af is native. No need for XHCI-200-series-injector.kext:
[code
u430:~ Admin$ grep -y a2af -R /System/Library/Extensions/IOUSBHostFamily.kext/
/System/Library/Extensions/IOUSBHostFamily.kext//Contents/PlugIns/AppleUSBXHCIPCI.kext/Contents/Info.plist: <string>0xa2af8086</string>
[/code]

It is using the same IOClass though, so it havng XHCI-200-series-injector.kext should have no adverse effect.

If your issue only happens with a specific USB device (the keyboard you mention), it may be a device specific problem.
 
I cannot get all of my XHC1's renamed to XHC I assume this is key to getting my USB 3.0 and 3.1 slots working.
 

Attachments

  • Screen Shot 2018-01-17 at 3.42.53 PM.png
    Screen Shot 2018-01-17 at 3.42.53 PM.png
    462.4 KB · Views: 89
  • Screen Shot 2018-01-17 at 3.42.53 PM.png
    Screen Shot 2018-01-17 at 3.42.53 PM.png
    462.4 KB · Views: 93
Status
Not open for further replies.
Back
Top